Postupak instaliranja a Kubernetes klaster na CentOS 8 gotovo je sličan onom iz CentOS 7 (kroz koje možete proći ovdje), ali proces ovdje ima nekoliko promjena. Ove se promjene uglavnom odnose na instalaciju Lučki radnik.
Počevši od CentOS 8 (i proširenjem RHEL 8), lučki radnik sada je izvorno zamijenjen sa podman i buildah koji su alati iz Crveni šešir. Zapravo, docker paket sada je uklonjen iz zadanog spremišta paketa.
Ovim potezom, Crveni šešir tim želi pojednostaviti proces stvaranja i korištenja spremnika, bez posebnih dozvola, istovremeno, održavajući kompatibilnost sa slikama dockera i upravljajući njima bez potrebe za demon. Podman obećava veću fleksibilnost pri trčanju Kubernetes okruženja, ali žiri ostaje vani.
U ovom ćemo članku proći kroz postupak instalacije Kubernetes na a CentOS 8 platforma, radi dalje Docker-CE (Community Edition). U kasnijem članku također ćemo proći kroz sličnu instalaciju, koristeći podman za naše kontejnere.
Većina čvorova općenito dolazi s jedinstvenim MAC adrese, međutim, u nekim jedinstvenim slučajevima, neki Virtualni strojevi mogu imati identične MAC adrese. Stoga se preporučuje da potvrdite da je Product_UUID i MAC adrese nisu identične ni u jednom čvoru.
Kubernetes koristi ove vrijednosti za jedinstvenu identifikaciju čvorova u klasteru. Ako ove vrijednosti nisu jedinstvene za svaki čvor, postupak instalacije može uspjeti.
Da biste provjerili MAC adresu mrežnog sučelja i usporedili je.
# ip veza.
Da biste provjerili product_uuid i usporedite, pokrenite sljedeću naredbu.
# cat/sys/class/dmi/id/product_uuid
Naša instalacija je dizajnirana tako da ima Glavni čvor kontroliranje Radnički čvorovi. Na kraju ove instalacije naša logička arhitektura izgledat će otprilike ovako.
Glavni čvor - Ovaj stroj općenito djeluje kao upravljačka ravnina i pokreće bazu podataka klastera i API poslužitelj (s kojim kubectl CLI komunicira).
Naš 3 čvor Kubernetes klaster izgledat će otprilike ovako:
Za Kubernetes za rad trebat će vam motor za kontejneriranje. Kao što je spomenuto, koristit ćemo Docker-CE.
Radit će se na sljedećim institucijama Glavni čvor CentOS 8.
Na tvoj Glavni čvor CentOS 8, postavite naziv hosta sustava i ažurirajte DNS u svom /etc/hosts datoteka.
# hostnamectl set-hostname glavni-čvor. # mačka <> /etc /hosts. 192.168.0.47 glavni čvor. 192.168.0.48 čvor-1 radnik-čvor-1. 192.168.0.49 čvor-2 radnik-čvor-2. EOF.
Slijedi ping radnik-čvor-1 i radnik-čvor-2 da biste provjerili radi li ažurirana datoteka hosta ispravno pomoću naredba ping.
# ping 192.168.0.48. # ping 192.168.0.49.
Zatim onemogućite Selinux, jer je to potrebno kako bi se spremnicima omogućilo pristup datotečnom sustavu hosta, što je potrebno pod mrežama i drugim uslugama.
# setenforce 0.
Postavljanje setenforce do 0
učinkovito postavlja SELinux na dopušten, što učinkovito onemogućuje SELinux do sljedećeg ponovnog pokretanja. Da biste ga potpuno onemogućili, upotrijebite naredbu ispod i ponovno pokrenite sustav.
# sed -i --follow -symlinks 's/SELINUX = provođenje/SELINUX = onemogućeno/g'/etc/sysconfig/selinux. # ponovno podizanje sustava.
Kubernetes koristi različite portove za komunikaciju i pristup, a ti portovi moraju biti dostupni Kubernetesu i ne smiju biti ograničeni vatrozidom.
Konfigurirajte pravila vatrozida na portovima.
# 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 --reload. # modprobe br_netfilter. # echo '1'>/proc/sys/net/bridge/bridge-nf-call-iptables.
Morat ćete dodati Lučki radnik spremište prvo jer više nije na zadanim popisima paketa koristeći sljedeće dnf config-manager naredba.
# dnf config-manager --add-repo = https://download.docker.com/linux/centos/docker-ce.repo.
Također instalirajte containerd.io paket koji je dostupan kao demon koji upravlja cjelovitim životnim ciklusom spremnika svog host sustava, od prijenos slika i pohrana u izvršenje spremnika i nadzor na pohranu niske razine u mrežne privitke i Iznad.
# dnf instalacija https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm.
Sada instalirajte najnoviju verziju a docker-ce paket.
# dnf instalirajte docker-ce.
Sada možete omogućiti i pokrenuti uslugu docker.
# systemctl omogući docker. # systemctl start docker.
Zatim ćete morati dodati Kubernetes spremišta ručno jer nisu standardno instalirana na CentOS 8.
# mačka </etc/yum.repos.d/kubernetes.repo. [kubernetes] ime = Kubernetes. baseurl = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. omogućeno = 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 pomaže vam u pokretanju minimalno održivog Kubernetes klastera koji je u skladu s najboljom praksom. S kubeadm, vaš bi klaster trebao proći testove sukladnosti Kubernetesa.
Kubeadm podržava i druge funkcije životnog ciklusa klastera, kao što su nadogradnje, vraćanje na stariju verziju i upravljanje tokenima pokretanja. Kubeadm je također prilagođen integraciji s drugim alatima za orkestraciju poput Odgovorno i Terraform.
Sada kada je repo za paket spreman, možete nastaviti i instalirati kubeadm paket.
# dnf instalirajte kubeadm -y
Kad se instalacija uspješno dovrši, omogućite i pokrenite uslugu.
# systemctl omogućiti kubelet. # systemctl pokrenite kubelet.
Kubernetes majstor koji djeluje kao upravljački avion jer klaster pokreće nekoliko kritičnih usluga potrebnih za klaster. Kao takav, postupak inicijalizacije izvršit će niz provjera kako bi se osiguralo da je stroj spreman za pokretanje Kubernetesa. Ove provjere izlažu upozorenja i izlaze na greške. kubeadm init zatim preuzima i instalira komponente ravni klastera.
Sada je vrijeme za inicijalizaciju Kubernetes master -a, ali prije toga morate onemogućiti swap da biste pokrenuli "kubeadm init“Naredba.
# swapoff -a.
Inicijalizacija Kubernetes master potpuno je automatiziran proces koji kontrolira "kubeadm init“Naredba kako je prikazano.
# kubeadm init.
Zatim kopirajte sljedeću naredbu i spremite je negdje jer smo kasnije morali pokrenuti ovu naredbu na radnim čvorovima.
kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash ha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc8231434
Savjet: Ponekad gornja naredba može izazvati pogreške u vezi s proslijeđenim argumentima, pa da biste izbjegli pogreške, morate ukloniti datoteku ‘\’
lik i vaša posljednja naredba izgledat će ovako.
# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5-token za otkrivanje-ca-cert-hash sha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc823146878
Jednom Kubernetes uspješno inicijaliziran, morate omogućiti korisniku da počne koristiti klaster. U našem scenariju koristit ćemo root korisnika. Također možete pokrenuti klaster pomoću sudo korisnika kao što je prikazano.
Koristiti korijen, trčanje:
# mkdir -p $ HOME/.kube. # cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config. # chown $ (id -u): $ (id -g) $ HOME/.kube/config.
Za korištenje a sudo omogućen korisnik, trčanje:
$ mkdir -p $ HOME/.kube. $ sudo cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config. $ sudo chown $ (id -u): $ (id -g) $ HOME/.kube/config.
Sada potvrdite da je naredba kubectl je aktiviran.
# kubectl get čvorovi.
U ovom trenutku vidjet ćete status glavnog čvora ‘Nije spreman’. To je zato što tek trebamo postaviti mrežu podova u klaster.
Pod mreža je mreža prekrivanja za klaster, koja je postavljena na vrhu sadašnje mreže čvorova. Dizajniran je tako da omogućuje povezivanje preko mahune.
Postavljanje mrežnog klastera vrlo je fleksibilan proces ovisno o vašim potrebama i na raspolaganju je mnogo opcija. Budući da želimo da naša instalacija bude što jednostavnija, koristit ćemo Weavenet dodatak koji ne zahtijeva nikakvu konfiguraciju ili dodatni kôd, a pruža jednu IP adresu po pod -u, što je odlično za nas. Ako želite vidjeti više opcija, provjerite ovdje.
Ove naredbe bit će važne za postavljanje pod mreže.
# izvoz kubever = $ (kubectl verzija | base64 | tr -d '\ n') # kubectl primijeni -f " https://cloud.weave.works/k8s/net? k8s-verzija = $ kubever "
Sada, ako provjerite status svog glavnog čvora, trebao bi biti ‘Spreman’.
# kubectl get čvorovi.
Zatim dodajemo radnički čvorovi do klastera.
Sljedeće upute bit će izvedene za svaku radnički čvor prilikom pridruživanja Kubernetes klasteru.
Najprije postavite naziv hosta na svoj radnik-čvor-1 i radnik-čvor-2, a zatim dodajte unose domaćina u /etc/hosts datoteka.
# hostnamectl set-hostname 'čvor-1' # mačka <> /etc /hosts. 192.168.0.47 glavni čvor. 192.168.0.48 čvor-1 radnik-čvor-1. 192.168.0.49 čvor-2 radnik-čvor-2. EOF.
Slijedi ping glavni čvor od tvojeg radnički čvorovi kako biste potvrdili da ažurirana datoteka hosta radi dobro koristeći naredba ping.
# 192.168.0.47.
Zatim onemogućite SElinux i ažurirajte pravila vatrozida.
# setenforce 0. # sed -i --follow -symlinks 's/SELINUX = provođenje/SELINUX = onemogućeno/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 --reload. # echo '1'>/proc/sys/net/bridge/bridge-nf-call-iptables.
Najprije dodajte spremište Docker koristeći DNF config-manager.
# dnf config-manager --add-repo = https://download.docker.com/linux/centos/docker-ce.repo.
Zatim dodajte containerd.io paket.
# dnf instalacija https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm.
S instalirana ova dva paketa, instalirajte najnoviju verziju docker-ce.
# dnf instalirajte docker-ce.
Omogućite i pokrenite uslugu docker.
# systemctl omogući docker. # systemctl start docker.
Morat ćete dodati Kubernetes spremišta ručno jer nisu unaprijed instalirana CentOS 8.
# mačka </etc/yum.repos.d/kubernetes.repo. [kubernetes] ime = Kubernetes. baseurl = https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. omogućeno = 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.
Sada kada je repo za paket spreman, možete nastaviti i instalirati kubeadm.
# dnf instalirajte kubeadm -y
Pokrenite i omogućite uslugu.
# systemctl omogućiti kubelet. # systemctl pokrenite kubelet.
Sada zahtijevamo žeton koji kubeadm init generirano, za pridruživanje klasteru. Možete ga kopirati i zalijepiti u svoj čvor-1 i čvor-2 da ste ga negdje kopirali.
# kubeadm join 192.168.0.47:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256: f996ea35r4353d342fdea2997a1cf8caeddafd6d4360d606dbc8231434.
Kao što je predloženo u zadnjem retku, vratite se na svoj master-čvor i provjeriti radi li radnik čvor-1 i radnički čvor-2 su se pridružili klasteru pomoću sljedeće naredbe.
# kubectl get čvorovi.
Ako su svi koraci uspješno izvedeni, trebali biste vidjeti čvor-1 i čvor-2 u statusu spremnosti na master-čvor. U ovom ste trenutku sada uspješno postavili Kubernetes klaster na CentOS 8.
Preporučeno čitanje: Kako postaviti Nginx na Kubernetes klaster
Klaster koji smo ovdje stvorili ima jedan Glavni čvor, i kao takav, ako je Glavni čvor ne uspije, vaš klaster može izgubiti podatke i možda će ga trebati ponovno stvoriti od početka.
Iz tog razloga preporučujem visoko dostupno postavljanje.