Jak zainstalować klaster Kubernetes na Centos 8
- 2208
- 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:
Kubernetes Schemat klastraInstalacja 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ą.
Porty KubernetesSkonfiguruj 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 InitZainicjuj Kubernetes Master
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łySprawdź status węzłów
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 "Sieć konfiguracji POD
Teraz, jeśli sprawdzisz status węzła głównego, powinno to być ”Gotowy'.
# kubectl zdobądź węzłySprawdź status węzłów głównych
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łySprawdź status wszystkich węzłów w klastrze Kubernetes
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 »