Proces inštalácie a Klaster Kubernetes na CentOS 8 je takmer podobný tomu z CentOS 7 (ktorou môžete prejsť tu), ale tento proces má niekoľko zmien. Tieto zmeny sa väčšinou týkajú inštalácie Docker.
Začať z CentOS 8 (a dodatočne RHEL 8), dok bol teraz natívne nahradený súborom podman a buildah z ktorých sú nástroje Červený klobúk. V skutočnosti bol docker balík teraz odstránený z predvoleného úložiska balíkov.
Týmto krokom sa Červený klobúk tím sa zameriava na zjednodušenie procesu vytvárania a používania kontajnerov bez toho, aby potreboval špeciálne povolenia, pri súčasnom zachovaní kompatibility s obrázkami ukotvených panelov a ich prevádzke bez toho, aby ste museli a démon. Podman sľubuje, že pri behu ponúkne väčšiu flexibilitu Kubernetes prostredí, ale porota zostáva vonku.
V tomto článku si prejdeme procesom inštalácie Kubernetes na a CentOS 8 platforma, beží na Docker-CE (Komunitná edícia). V neskoršom článku si tiež prevedieme podobnú inštaláciu pomocou podman pre naše kontajnery.
Väčšina uzlov má spravidla jedinečné MAC adresy, v niektorých jedinečných prípadoch však niektoré Virtuálne stroje môžu mať identické adresy MAC. Preto sa odporúča potvrdiť, že Product_UUID a MAC adresa nie je v žiadnom z uzlov identická.
Kubernetes používa tieto hodnoty na jedinečnú identifikáciu uzlov v klastri. Ak tieto hodnoty nie sú jedinečné pre každý uzol, proces inštalácie môže zlyhať.
Ak chcete skontrolovať MAC adresu sieťového rozhrania a porovnať ju.
# ip odkaz.
Ak chcete skontrolovať product_uuid a porovnajte, spustite nasledujúci príkaz.
# cat/sys/class/dmi/id/product_uuid
Naša inštalácia je navrhnutá tak, aby mala Hlavný uzol ovládanie Pracovné uzly. Na konci tejto inštalácie bude naša logická architektúra vyzerať asi takto.
Hlavný uzol - Tento počítač spravidla funguje ako riadiaca rovina a prevádzkuje databázu klastrov a server API (s ktorými komunikuje kubectl CLI).
Náš 3-uzol Klaster Kubernetes bude vyzerať asi takto:
Pre Kubernetes do práce budete potrebovať kontajnerizačný motor. Ako bolo uvedené, budeme používať Docker-CE.
Nasledujúce inštitúcie budú vykonávať dňa CentOS 8 Master-Node.
Na tvojom CentOS 8 Master-Node, nastavte názov hostiteľa systému a aktualizujte server DNS vo svojom serveri /etc/hosts súbor.
# hostnamectl set-hostname master-node. # mačka <> /etc /hosts. 192.168.0.47 hlavný uzol. 192.168.0.48 uzol-1 pracovník-uzol-1. 192.168.0.49 uzol-2 pracovník-uzol-2. EOF.
Ďalej pingujte svoje worker-node-1 a worker-node-2 pomocou súboru. skontrolujte, či váš aktualizovaný hostiteľský súbor funguje správne príkaz ping.
# ping 192.168.0.48. # ping 192.168.0.49.
Ďalej deaktivujte Selinux, pretože je to nevyhnutné na to, aby sa kontajnerom umožnil prístup k hostiteľskému súborovému systému, ktorý je potrebný pre siete pod a ďalšie služby.
# setenforce 0.
Nastavenie setenforce do 0
efektívne nastavuje SELinux na permisívny, čo efektívne deaktivuje SELinux až do nasledujúceho reštartu. Ak ho chcete úplne zakázať, použite nižšie uvedený príkaz a reštartujte počítač.
# sed -i --follow -symlinks 's/SELINUX = vynucovanie/SELINUX = vypnuté/g'/etc/sysconfig/selinux. # reštartovať.
Kubernetes používa na komunikáciu a prístup rôzne porty a tieto porty musia byť prístupné pre Kubernetes a nie sú obmedzené bránou firewall.
Nakonfigurujte pravidlá brány firewall na portoch.
# firewall-cmd --permanent --add-port = 6443/tcp. # firewall-cmd --permanent --add-port = 2379-2380/tcp. # firewall-cmd --permanent --add-port = 10250/tcp. # firewall-cmd --permanent --add-port = 10251/tcp. # firewall-cmd --permanent --add-port = 10252/tcp. # firewall-cmd --permanent --add-port = 10255/tcp. # firewall-cmd-znova načítať. # modprobe br_netfilter. # echo '1'>/proc/sys/net/bridge/bridge-nf-call-iptables.
Budete musieť pridať Docker úložisko, pretože už nie je v predvolenom zozname balíkov pomocou nasledujúceho dnf config-manager príkaz.
# dnf config-manager --add-repo = https://download.docker.com/linux/centos/docker-ce.repo.
Tiež nainštalovať containerd.io balík, ktorý je k dispozícii ako démon, ktorý spravuje celý životný cyklus kontajnera hostiteľského systému od prenos obrazu a ukladanie do kontajnera, vykonávanie a dohľad nad nízkoúrovňovým ukladaním do sieťových príloh a mimo.
# dnf nainštalovať https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm.
Teraz nainštalujte najnovšiu verziu súboru a docker-ce balík.
# dnf nainštalovať docker-ce.
Teraz môžete povoliť a spustiť službu ukotvenia.
# systemctl povoliť docker. # systemctl spustiť docker.
Ďalej budete musieť pridať Kubernetes archívy ručne, pretože nie sú predvolene nainštalované CentOS 8.
# mačka </etc/yum.repos.d/kubernetes.repo. [kubernetes] meno = Kubernetes. baseurl = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. povolené = 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. EOF.
Kubeadm vám pomôže zaviesť minimálny životaschopný klaster Kubernetes, ktorý vyhovuje osvedčeným postupom. S kubeadm, váš klaster by mal prejsť testami zhody Kubernetes.
Kubeadm podporuje aj ďalšie funkcie životného cyklu klastra, ako sú inovácie, downgrade a správa tokenov bootstrapu. Kubeadm je tiež vhodný pre integráciu s inými nástrojmi orchestrácie, ako sú Možné a Terraform.
Keď je repo balíka pripravené, môžete pokračovať kubeadm balík.
# dnf nainštalovať kubeadm -y
Keď sa inštalácia úspešne dokončí, povoľte a spustite službu.
# systemctl povoliť kubelet. # systemctl start kubelet.
Majster Kubernetes, ktorý funguje ako riadiace lietadlo pre klaster beží niekoľko kritických služieb potrebných pre klaster. Inicializačný proces preto vykoná sériu predbežných kontrol, aby sa zabezpečilo, že počítač je pripravený na spustenie programu Kubernetes. Tieto predbežné kontroly odhalia varovania a ukončia chyby. kubeadm init potom stiahne a nainštaluje komponenty roviny riadenia klastra.
Teraz je čas inicializovať program Kubernetes master, ale predtým musíte zakázať výmenu, aby ste mohli spustiť „kubeadm init“Príkaz.
# swapoff -a.
Inicializácia Kubernetes master je úplne automatizovaný proces, ktorý je riadený „kubeadm init“Príkaz, ako je znázornené.
# kubeadm init.
Potom skopírujte nasledujúci príkaz a niekde ho uložte, pretože sme museli tento príkaz spustiť na pracovných uzloch neskôr.
kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash ha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc8231468
Tip: Niekedy môže uvedený príkaz spôsobiť chyby v odovzdaných argumentoch, aby ste sa vyhli chybám, musíte odstrániť príponu ‘\’
postava a váš konečný príkaz bude vyzerať takto.
# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 –discovery token-ca-cert-hash sha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc823146834.
Raz Kubernetes úspešne inicializovaný, musíte svojmu používateľovi umožniť začať používať klaster. V našom scenári použijeme používateľa root. Klaster môžete spustiť aj pomocou sudo user, ako je znázornené na obrázku.
Použit koreň, spustiť:
# mkdir -p $ HOME/.kube. # cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config. # chown $ (id -u): $ (id -g) $ HOME/.kube/config.
Ak chcete použiť a sudo povolený užívateľ, spustiť:
$ mkdir -p $ HOME/.kube. $ sudo cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config. $ sudo chown $ (id -u): $ (id -g) $ HOME/.kube/config.
Teraz potvrďte, že kubectl príkaz je aktivovaný.
# kubectl získať uzly.
V tomto okamihu uvidíte stav hlavného uzla „Nie je pripravený’. Dôvodom je, že ešte len nasadíme sieť pod do klastra.
Sieť pod je prekrývacia sieť pre klaster, ktorá je nasadená v hornej časti súčasnej siete uzlov. Je navrhnutý tak, aby umožňoval pripojenie cez lusk.
Nasadenie sieťového klastra je veľmi flexibilný proces v závislosti od vašich potrieb a je k dispozícii veľa možností. Pretože chceme, aby bola naša inštalácia čo najjednoduchšia, použijeme Weavenet doplnok, ktorý nevyžaduje žiadnu konfiguráciu ani extra kód a poskytuje jednu adresu IP na modul, čo je pre nás skvelé. Ak chcete vidieť viac možností, skontrolujte ich tu.
Tieto príkazy budú dôležité pre nastavenie siete pod.
# export kubever = $ (verzia kubectl | base64 | tr -d '\ n') # kubectl apply -f " https://cloud.weave.works/k8s/net? verzia k8s = $ kubever "
Ak teraz skontrolujete stav svojho hlavného uzla, malo by to byť „Pripravený’.
# kubectl získať uzly.
Ďalej pridáme pracovné uzly do klastra.
Nasledujúce pokyny budú vykonané na každom z nich pracovný uzol pri vstupe do klastra Kubernetes.
Najprv nastavte názov hostiteľa na svojom worker-node-1 a worker-node-2, a potom pridajte položky hostiteľa do súboru /etc/hosts súbor.
# hostnamectl set-hostname 'node-1' # mačka <> /etc /hosts. 192.168.0.47 hlavný uzol. 192.168.0.48 uzol-1 pracovník-uzol-1. 192.168.0.49 uzol-2 pracovník-uzol-2. EOF.
Ďalej pingujte svoje hlavný uzol od tvojho pracovné uzly pomocou príkaz ping.
# 192.168.0.47.
Ďalej deaktivujte SElinux a aktualizujte svoje pravidlá brány firewall.
# setenforce 0. # sed -i --follow -symlinks 's/SELINUX = vynucovanie/SELINUX = vypnuté/g'/etc/sysconfig/selinux. # firewall-cmd --permanent --add-port = 6783/tcp. # firewall-cmd --permanent --add-port = 10250/tcp. # firewall-cmd --permanent --add-port = 10255/tcp. # firewall-cmd --permanent --add-port = 30000-32767/tcp. # firewall-cmd-znova načítať. # echo '1'>/proc/sys/net/bridge/bridge-nf-call-iptables.
Úložisko Docker najskôr pridajte pomocou správcu konfigurácií DNF.
# dnf config-manager --add-repo = https://download.docker.com/linux/centos/docker-ce.repo.
Ďalej pridajte príponu containerd.io balík.
# dnf nainštalovať https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm.
Keď sú tieto dva balíky nainštalované, nainštalujte si najnovšiu verziu docker-ce.
# dnf nainštalovať docker-ce.
Povoľte a spustite službu dokovacej stanice.
# systemctl povoliť docker. # systemctl spustiť docker.
Budete musieť pridať Kubernetes archívy ručne, pretože v nich nie sú predinštalované CentOS 8.
# mačka </etc/yum.repos.d/kubernetes.repo. [kubernetes] meno = Kubernetes. baseurl = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. povolené = 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. EOF.
Keď je repo balíka pripravené, môžete pokračovať kubeadm.
# dnf nainštalovať kubeadm -y
Spustite a povoľte službu.
# systemctl povoliť kubelet. # systemctl start kubelet.
Teraz to požadujeme kubeadm init vygenerovaný, aby sa pridal do klastra. Môžete ho skopírovať a prilepiť do svojho uzol-1 a uzol-2 keby si to niekde skopíroval.
# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc8231468.
Ako bolo navrhnuté v poslednom riadku, vráťte sa k svojmu hlavný uzol a overte, či je pracovník uzol-1 a pracovný uzol-2 sa pripojili ku klastru pomocou nasledujúceho príkazu.
# kubectl získať uzly.
Ak všetky kroky prebehli úspešne, mali by ste to vidieť uzol-1 a uzol-2 v stave pripravenosti na hlavný uzol. V tomto mieste ste teraz úspešne nasadili klaster Kubernetes CentOS 8.
Odporúčame prečítať: Ako nasadiť Nginx na klaster Kubernetes
Klaster, ktorý sme tu vytvorili, má jeden Hlavný uzol, a ako také, ak Hlavný uzol zlyhá, váš klaster môže stratiť údaje a bude ho pravdepodobne potrebné znova vytvoriť od začiatku.
Z tohto dôvodu odporúčam vysoko dostupné nastavenie.