Преглед
Предуслови
Конфигурисање радника и мајстора
Подешавање главног чвора
Раднички чвор
Окончање
Преглед
Овај чланак има за циљ да вам помогне да за кратко време покренете Кубернетес кластер са кубеадм-ом. Овај водич ће применити два сервера, једног главног и једног радног, али можете да примените онолико сервера колико желите.
Шта је кубеадм?
Кубеадм је алатка коју је развио Кубернетес и која вам омогућава да покренете и покренете минимални одрживи кластер пратећи најбоље праксе. То ће само покренути ваш кластер, а не машине за обезбеђивање. Ствари као што су додаци, Кубернетес контролна табла, решења за праћење и тако даље нису нешто што ће кубеадм учинити за вас.
Предуслови
Постоји неколико захтева за сервере које ћемо поставити. Једна или више машина са оперативним системом компатибилним са деб/рпм. Користићемо ЦентОС.
- 2 ГБ или више РАМ-а по машини
- 2 ЦПУ-а или више на мастеру
Потпуна мрежна повезаност између свих машина у кластеру
Два сервера распоређена у овом водичу су следећа: - 1 ЦПУ 2ГБ РАМ са ЦентОС 7 (раднички чвор) - 2 ЦПУ 4ГБ РАМ са ЦентОС 7 (главни чвор)
Са овом количином РАМ-а на оба сервера, Кубернетес ће имати довољно простора за дисање.
Конфигурисање радника и мајстора
Ево корака које ћемо морати да предузмемо и на главном и на радном чвору:
- Иум ажурирање и пакети
- Инсталирајте доцкер
- Онемогући селинук
- Онемогући замену
- Онемогућите заштитни зид
- Ажурирајте ИПТаблес
- Инсталирајте кубелет/кубеадм/кубецтл
Инсталирање Доцкер-а
У 1.14овом водичу ћемо користити верзију Кубернетеса. За ову верзију, Кубернетес препоручује покретање Доцкер верзије 18.06.2. Обавезно проверите препоручену верзију Доцкер-а за вашу верзију Куберенетеса
Додаћемо Доцкер спремиште у иум и посебно инсталирати 18.06.2. Када се Доцкер инсталира, мораћемо да конфигуришемо демон доцкер-а на подешавања која препоручује Кубернетес.
###Add yum-utils, if not installed already
yum install yum-utils
###Add Docker repository.
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
###Install Docker CE.
yum update && yum install docker-ce-18.06.2.ce
###Create /etc/docker directory.
mkdir /etc/docker
###Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
mkdir -p /etc/systemd/system/docker.service.d
###Restart Docker
systemctl daemon-reload
systemctl enable docker.service
systemctl restart docker
Онемогућите СЕЛинук
Пошто користимо ЦентОС, морамо да онемогућимо СЕЛинук. Ово је неопходно да се контејнерима омогући приступ систему датотека хоста.
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disable/' /etc/selinux/config
Онемогући замену
Замена мора бити онемогућена да би се омогућило да кубелет исправно ради.
sed -i '/swap/d' /etc/fstab
swapoff -a
Онемогућите заштитни зид
Кубернетес користи ИПТаблес за руковање улазним и одлазним саобраћајем - тако да да бисмо избегли било какве проблеме, онемогућавамо фиреваллд.
systemctl disable firewalld
systemctl stop firewalld
Ажурирајте ИПТаблес
Кубернетес препоручује да се уверимо да net.bridge.bridge-nf-call-iptablesје подешено на 1. Ово је због проблема у којима је РЕХЛ/ЦентОС 7 имао проблема са погрешним преусмеравањем саобраћаја због заобилажења иптаблес.
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
Инсталирајте кубелет/кубеадм/кубецтл
Мораћемо да додамо кубернетес репо у иум. Када то урадимо, само треба да покренемо команду за инсталацију и омогућимо кубелет.
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet
Сада смо у потпуности конфигурисали и главни и радни чвор. Сада можемо иницијализовати наш главни чвор и придружити наше радне чворове главном!
Напомена Ако желите да додате још радних чворова, горњи процес би такође морао да се уради на свим тим чворовима.
Подешавање главног чвора
Желимо да иницијализујемо наш главни чвор покретањем следеће команде. Желећете да замените ИП адресу свог главног чвора у наредби испод. Поред тога, проследићемо под-нетворк-цидр да би нам било лакше касније када инсталирамо Фланнел мрежни преклоп.
kubeadm init --apiserver-advertise-address=YOUR_IP_HERE --pod-network-cidr=10.244.0.0/16
Ово може потрајати да се заврши, али када се заврши видећете нешто слично на крају излаза као што је следеће.
kubeadm join YOUR_IP:6443 --token 4if8c2.pbqh82zxcg8rswui \
--discovery-token-ca-cert-hash sha256:a0b2bb2b31bf7b06bb5058540f02724240fc9447b0e457e049e59d2ce19fcba2
Ова команда је оно што ваши раднички чворови морају да изврше да би се придружили кластеру, па је обратите пажњу.
Следећи је фланел. Фланел је оно што омогућава комуникацију између махуна. Постоје разне друге врсте мрежних прекривача које можете инсталирати, али ради једноставности овај водич ће користити фланел.
Копирајте kube/configдатотеку у свој $Homeда бисте могли да извршавате kubectlкоманде.
mkdir $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config
Последњи корак на главном чвору је инсталирање Фланнел-а. Покрените следећу команду.
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Са овом копираном конфигурацијом моћи ћете да покренете kubectl get csи добијете одговор.
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true"}
Ваш главни чвор је постављен и спреман за рад. На радни чвор!
Раднички чвор
У овом тренутку нема додатног рада који је неопходан на радном чвору. Све што треба да урадимо је да покренемо kubeadm joinкоманду коју смо добили из нашег kubeadm initизлаза.
Ако сте неким случајем заменили команду кубеадм јоин, можете генерисати још једну на главном чвору покретањем
kubeadm token create --print-join-command
Једном када покренете команду кубеадм јоин, ако покренете kubectl get nodesна мастер, видећете излаз сличан следећем.
NAME STATUS ROLES AGE VERSION
k8-master Ready master 107m v1.14.2
k8-worker Ready <none> 45m v1.14.2
Окончање
Баш тако сте покренули Кубернетес кластер користећи кубеадм. То можете учинити и са приватним мрежама. Вултр, као и други добављачи облака, дозвољавају приватне мреже. Такође, ако желите да извршите кубецтл команде са ваше локалне машине против вашег кластера, то можете постићи тако што ћете локално инсталирати кубецтл и повући .kube/configдатотеку из кластера на вашу локалну машину у $HOME/.kube/config.
Надамо се да ће вам овај водич помоћи да пређете преко кубеадм-а и натераће вас да се играте са кубернетесом за кратко време!
Корисни линкови: