Jak zainstalować klaster Kubernetes na Centos 8

- 2246
- 707
- Maurycy Napierała
Proces instalowania Kubernetes Cluster NA Centos 8 jest prawie podobny do tego Centos 7 (które możesz tutaj przejść), ale proces tutaj ma kilka zmian. Te zmiany, głównie obracają się wokół instalacji Doker.
Zaczynając od Centos 8 (i przez rozszerzenie RHEL 8), doker został teraz natywnie zastąpiony przez Podman I Buildah które są narzędziami Czerwony kapelusz. W rzeczywistości pakiet Docker został teraz usunięty z domyślnego repozytorium pakietów.
Z tym ruchem, Czerwony kapelusz Zespół ma na celu uproszczenie procesu tworzenia i korzystania z kontenerów, bez konieczności specjalnych uprawnień, jednocześnie utrzymując kompatybilność z obrazami Docker i prowadzenie ich bez konieczności demona. Podman obiecuje, że zaoferuje większą elastyczność podczas biegania Kubernetes środowiska, ale jury pozostaje tam.
W tym artykule przechodzimy przez proces instalacji Kubernetes na Centos 8 platforma, działająca Docker-Ce (Wydanie społeczności). W późniejszym artykule będziemy również przechodzić przez podobną instalację, używając Podman dla naszych kontenerów.
Wymagania wstępne
- Trzy serwery z CentoS 8 - 1 węzeł główny I 2 węzły robotnicze.
- Zaleca się, aby Twoje węzły miały co najmniej 2 procesory z 2 GB pamięci RAM lub więcej na maszynę. To nie jest ścisły wymóg, ale w dużej mierze opiera się na potrzebach aplikacji, którą zamierzasz uruchomić.
- Łączność internetowa na wszystkich twoich węzłach. Będziemy pobierać Kubernetes I doker pakiety z repozytorium. Równie musisz upewnić się, że menedżer pakietów DNF jest domyślnie zainstalowany i może zdalnie pobierać pakiety.
- Wszystkie Twoje węzły powinny być również w stanie się ze sobą łączyć, w sieci prywatnej lub publicznej, w zależności od tego, który jest dostępny.
- Będziesz także potrzebował dostępu do konta z uprawnieniami sudo lub root. W tym samouczku będę korzystać z mojego konta głównego.
Ostrożność
Większość węzłów zazwyczaj ma unikalne PROCHOWIEC Adresy jednak w niektórych unikalnych przypadkach niektóre Wirtualne maszyny Może mieć identyczne adresy MAC. Zaleca się zatem potwierdzenie, że Produkt_uuid i PROCHOWIEC Adres nie jest identyczny w żadnym z węzłów.
Kubernetes wykorzystuje te wartości, aby jednoznacznie zidentyfikować węzły w klastrze. Jeśli te wartości nie są unikalne dla każdego węzła, proces instalacji może się nie powieść.
Aby sprawdzić adres MAC interfejsu sieciowego i porównać go.
# link IP
Aby sprawdzić produkt_uuid i porównaj, uruchom następujące polecenie.
# cat/sys/class/dmi/id/produkt_uuid
Logiczna architektura
Nasza instalacja jest zaprojektowana tak, aby mieć Węzeł mistrzowski kontrolowanie Węzły robotnicze. Pod koniec tej instalacji nasza logiczna architektura będzie wyglądać tak tak.
Węzeł główny - Ta maszyna zasadniczo działa jako płaszczyzna sterowania i uruchamia bazę danych klastra i serwer API (z którym komunikuje się Kubectl CLI).
Nasz 3-węzłowy Kubernetes Cluster będzie wyglądać mniej więcej tak:

Instalacja klastra Kubernetes w węźle głównym
Dla Kubernetes Do pracy potrzebujesz silnika kontenerskiego. Jak wspomniano, będziemy używać Docker-Ce.
Na następujących instytucjach zostaną wykonane Węzeł główny Centos 8.
Krok 1: Przygotuj nazwę hosta, zaporę ogniową i Selinux
Na Twoim Węzeł główny Centos 8, Ustaw nazwę hosta systemu i zaktualizuj DN w swoim /etc/hosts plik.
# hostnamectl set-hostname-węzeł master # cat <> /etc /hosts 192.168.0.47 węzeł mistrzów 192.168.0.48 Node-1 Worker-Node-1 192.168.0.49 Node-2-Node-2-Node-2 EOF
Następnie ping your Node-1 pracownika-1 I Node pracownicze-2 Aby sprawdzić, czy zaktualizowany plik hosta działa poprawnie za pomocą polecenia ping.
# ping 192.168.0.48 # ping 192.168.0.49
Następnie wyłącz Selinux, ponieważ jest to wymagane, aby umożliwić kontenerom dostęp do systemu plików hosta, który jest potrzebny w sieciach POD i inne usługi.
# setenforce 0
Ustawienie setenforce Do 0
Skutecznie ustawia Selinux na dopuszczalny, co skutecznie wyłącza SELINUX do następnego ponownego uruchomienia. Aby całkowicie go wyłączyć, użyj poniższego polecenia i uruchom ponownie.
# sed -i - -follow -symlinks 's/selinux = Enforcing/selinux = disabled/g'/etc/sysconfig/selinux # restart
Kubernetes korzysta z różnych portów do komunikacji i dostępu, a te porty muszą być dostępne dla Kubernetes i nie są ograniczone przez zaporę ogniową.

Skonfiguruj reguły zapory na portach.
# Firewall-CMD --PerManent --add-port = 6443/tcp # Firewall-CMD --PerManent --add-Port = 2379-2380/TCP # Firewalll-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 # Firewallll -cmd--reload # modprobe br_netfilter # echo '1'>/proc/sys/net/most/most-nf-call-eptables
Krok 2: Zainstaluj Docker-CE na Centos 8
Będziesz musiał dodać Doker repozytorium najpierw, ponieważ nie jest już na domyślnej liście pakietów za pomocą następujących DNF Config-Manager Komenda.
# dnf config-manager --add-repo = https: // pobierz.doker.com/linux/centos/docker-ce.Repo
Instaluj także kontenerd.io Pakiet, który jest dostępny jako demon zarządzający pełnym cyklem życia kontenera systemu hosta, od transferu obrazu i pamięci po wykonanie i nadzór po kontenerze po przechowywanie na niskim poziomie po załączniki sieciowe i nie tylko.
# DNF Zainstaluj https: // pobierz.doker.com/linux/centos/7/x86_64/stabilne/pakiety/Containerd.IO-1.2.6-3.3.El7.x86_64.RPM
Teraz zainstaluj najnowszą wersję Docker-Ce pakiet.
# DNF instaluj Docker-CE
Możesz teraz włączyć i uruchomić usługę Docker.
# Systemctl Włącz Docker # Systemctl Start Docker
Krok 3: Zainstaluj Kubernetes (Kubeadm) na Centos 8
Następnie musisz dodać Kubernetes repozytoria ręcznie, ponieważ nie są instalowane domyślnie Centos 8.
# kot < /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 EOF
Kubeadm Pomaga odkładać minimalną realną klaster Kubernetes, która jest zgodna z najlepszymi praktykami. Z Kubeadm, Twój klaster powinien przejść testy zgodności Kubernetes.
Kubeadm Obsługuje także inne funkcje cyklu życia klastra, takie jak aktualizacje, obniżenie i zarządzanie tokenami bootstrap. Kubeadm jest również integracyjny z innymi narzędziami orkiestracji, takimi jak Ansible I Terraform.
Dzięki repozytorium pakietu możesz iść naprzód i zainstalować Kubeadm pakiet.
# dnf instaluj kubeadm -y
Gdy instalacja zakończy się pomyślnie, włącz i uruchom usługę.
# Systemctl Włącz Kubelet # Systemctl Start Kubelet
Krok 4: Utwórz mistrz płaszczyzny sterowania z Kubeadm
Kubernetes Master, który działa jak sterowanie samolotem W przypadku klastra działa kilka krytycznych usług niezbędnych dla klastra. Jako taki, proces inicjalizacji wykona serię prechetów, aby zapewnić, że maszyna jest gotowa do uruchomienia Kubernetes. Te precheki ujawniają ostrzeżenia i wychodzą z błędów. Kubeadm Init Następnie pobiera i instaluje komponenty płaszczyzny sterowania klastrem.
Teraz nadszedł czas, aby zainicjować Kubernetes Master, ale wcześniej musisz wyłączyć zamian, aby uruchomić ”Kubeadm Init" Komenda.
# Swapoff -a
Inicjowanie Kubernetes Master to całkowicie zautomatyzowany proces kontrolowany przez „Kubeadm Init„Polecenie jak pokazano.
# Kubeadm Init

Następnie skopiuj następujące polecenie i przechowuj je gdzieś, ponieważ musieliśmy później uruchomić to polecenie w węzłach pracowniczych.
Kubeadm dołącza 192.168.0.47: 6443 -Token NU06LU.XRSUX0SS0IXTNMS5 \--DISCOVERY-TOKE-CA-CERT-HASH HA256: F996EA35R4353D342FDEA2997A1CF8CAEDDAFD6D4360D606DBC82314683478HJMF7
Wskazówka: Czasami powyższe polecenie może powodować błędy dotyczące przekazanych argumentów, więc aby uniknąć błędów, musisz usunąć „\”
postać i twoje ostateczne polecenie będą wyglądać tak.
# Kubeadm dołącz 192.168.0.47: 6443 -Token NU06LU.XRSUX0SS0IXTNMS5 -DODODZINY TEKEN-CA-CERT-HASH SHA256: F9966EA35R4353D342FDEA2997A1CF8CAEDDAFD6D4360D606DBC82314683478HJMF7
Raz Kubernetes Zainicjowano pomyślnie, musisz umożliwić użytkownikowi zacząć korzystanie z klastra. W naszym scenariuszu będziemy używać użytkownika root. Możesz także uruchomić klaster za pomocą użytkownika Sudo, jak pokazano.
Używać źródło, uruchomić:
# mkdir -p $ home/.kube # cp -i/etc/kubernetes/admin.conf $ home/.kube/config # chown $ (id -u): $ (id -g) $ home/.kube/config
Użyć Sudo włączył użytkownika, uruchomić:
$ mkdir -p $ home/.kube $ sudo cp -i/etc/kubernetes/admin.conf $ home/.kube/config $ sudo chown $ (id -u): $ (id -g) $ home/.kube/config
Teraz potwierdź, że polecenie kubectl jest aktywowany.
# kubectl zdobądź węzły

W tej chwili zobaczysz status węzła głównegoNie gotowy'. Dzieje się tak, ponieważ mamy jeszcze wdrożyć sieć POD w klastrze.
Sieć POD to sieć nakładki dla klastra, która jest wdrażana na niniejszej sieci węzłów. Został zaprojektowany, aby umożliwić łączność w całym kapsule.
Krok 5: Skonfiguruj swoją sieć POD
Wdrożenie klastra sieci to wysoce elastyczny proces w zależności od potrzeb i dostępnych jest wiele opcji. Ponieważ chcemy, aby nasza instalacja była tak prosta, jak to możliwe, będziemy używać Weavenet wtyczka, która nie wymaga żadnej konfiguracji ani dodatkowego kodu i zawiera jeden adres IP na POD, co jest dla nas świetne. Jeśli chcesz zobaczyć więcej opcji, sprawdź tutaj.
Te polecenia będą ważne, aby uzyskać konfigurację sieci POD.
# Eksport kubever = $ (wersja kubectl | base64 | tr -d '\ n') # kubectl Apply -f "https: // chmur.splot.Works/k8s/net?K8s-wersja = $ kubever "

Teraz, jeśli sprawdzisz status węzła głównego, powinno to być ”Gotowy'.
# kubectl zdobądź węzły

Następnie dodajemy Węzły robotnicze do klastra.
Dodawanie węzłów pracowniczych do klastra Kubernetes
Na każdym zostaną wykonane następujące instrukcje Węzeł roboczy Podczas dołączania do klastra Kubernetes.
Krok 1: Przygotuj nazwę hosta, zaporę ogniową i Selinux
Najpierw ustaw nazwę hosta na swoim Node-1 pracownika-1 I Node pracownicze-2, a następnie dodaj wpisy hosta do /etc/hosts plik.
# hostnamectl set-hostname 'node-1' # cat <> /etc /hosts 192.168.0.47 węzeł mistrzów 192.168.0.48 Node-1 Worker-Node-1 192.168.0.49 Node-2-Node-2-Node-2 EOF
Następnie ping your Węzeł główny od twojego Węzły robotnicze Aby potwierdzić, że zaktualizowany plik hosta działa dobrze za pomocą polecenia ping.
# 192.168.0.47
Następnie wyłącz Selinux i zaktualizuj zasady zapory.
# setenforce 0 # sed -i--follow-symlinks 's/selinux = Enforcing/selinux = disabled/g'/etc/sysconfig/selinux # firewall-cmd --perMent --add -port = 6783/tcp # firewalll- Cmd --Permanent --add-port = 10250/tcp # Firewall-CMD --Permanent --add-port = 10255/tcp # firewall-cmd --PerManent --add-Port = 30000-32767/tcp # Firewalll- cmd--reload # echo '1'>/proc/sys/net/most/most/most-nf-call-call-eptables
Krok 2: Konfiguruj repozytor
Dodaj najpierw repozytorium Docker za pomocą DNF Config-Manager.
# dnf config-manager --add-repo = https: // pobierz.doker.com/linux/centos/docker-ce.Repo
Następnie dodaj kontenerd.io pakiet.
# DNF Zainstaluj https: // pobierz.doker.com/linux/centos/7/x86_64/stabilne/pakiety/Containerd.IO-1.2.6-3.3.El7.x86_64.RPM
Po zainstalowaniu tych dwóch pakietów zainstaluj najnowszą wersję Docker-Ce.
# DNF instaluj Docker-CE
Włącz i uruchom usługę Docker.
# Systemctl Włącz Docker # Systemctl Start Docker
Będziesz musiał dodać Kubernetes repozytoria ręcznie, ponieważ nie są wstępnie zainstalowane Centos 8.
# kot < /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 EOF
Krok 3: Zainstaluj Kubeadm na Centos 8
Dzięki repozytorium pakietu możesz iść naprzód i zainstalować Kubeadm.
# dnf instaluj kubeadm -y
Rozpocznij i włącz usługę.
# Systemctl Włącz Kubelet # Systemctl Start Kubelet
Krok 4: Dołącz do węzła pracownika do klastra Kubernetes
Teraz potrzebujemy tego tokena Kubeadm Init wygenerowane, aby dołączyć do klastra. Możesz skopiować i wkleić do swojego Węzeł 1 I Node-2 Jeśli gdzieś to skopiowałeś.
# Kubeadm dołącz 192.168.0.47: 6443 -Token NU06LU.XRSUX0S0IXTNMS5--DISCOVERY-TOWL-CA-CERT-HASH SHA256: F996EA35R4353D342FDEA2997A1CF8CAEDDAFD6D4360D606DBC82314683478HJMF78
Jak sugerowano na ostatniej linii, wróć do swojego węzeł mistrzowski i sprawdź, czy pracownik Węzeł 1 I Węzeł pracowniczy-2 dołączyli do klastra za pomocą następującego polecenia.
# kubectl zdobądź węzły

Jeśli wszystkie kroki działają pomyślnie, powinieneś zobaczyć Węzeł 1 I Node-2 w stanie gotowym na węzeł mistrzowski. W tym momencie z powodzeniem wdrożyłeś klaster Kubernetes Centos 8.
Zalecane odczyt: Jak wdrożyć Nginx na klastrze Kubernetes
Pewne ograniczenia
Klaster, który tutaj utworzyliśmy, ma jeden Węzeł główny, i jako taki, jeśli Węzeł główny niepowodzenie, klaster może stracić dane i może wymagać odtworzenia od zera.
Z tego powodu polecam wysoce dostępną konfigurację.
- « Jak zainstalować i skonfigurować Hive z wysoką dostępnością - Część 7
- 8 górnych serwerów proxy typu open source dla Linux »