Ahoj technici, jak víme, Kubernetes (k8s) je bezplatný a open-source systém pro orchestraci kontejnerů. Používá se pro automatizaci nasazení a správy kontejnerových aplikací. V této příručce se budeme zabývat tím, jak nainstalovat cluster kubernetes na Rocky Linux 8 pomocí kubeadm krok za krokem.
Minimální systémové požadavky pro Kubernetes
- 2 nebo více vCPU
- 2 GB RAM nebo více
- Swap zakázán
- Alespoň karta NIC
- Stabilní připojení k internetu
- Jeden běžný uživatel s právy sudo.
Pro demonstraci používám následující systémy
- Once Master Node / Control Plane (2 GB RAM, 2vCPU, 1 NIC karta, Minimal Rocky Linux 8 OS)
- Dva pracovní uzly (2 GB RAM, 2vCPU, 1 síťová karta, minimální operační systém Rocky Linux 8)
- Název hostitele hlavního uzlu – řídicí uzel (192.168.1.240)
- Název hostitele pracovních uzlů – worker-node1(192.168.1.241), worker-node2(192.168.1.242)
Bez dalších okolků se pojďme hlouběji ponořit do kroků instalace Kubernetes.
Poznámka:Tyto kroky platí také pro RHEL 8 a AlmaLinux OS.
Krok 1) Nastavte název hostitele a aktualizujte soubor hostitelů
Pomocí příkazu hostnamectl nastavte název hostitele na řídicí uzel a pracovní uzel.
Spustit pod příkazem na řídicím uzlu
$ sudo hostnamectl set-hostname "control-node"$ exec bash
Proveďte následující příkaz na pracovním uzlu1
$ sudo hostnamectl set-hostname "worker-node1"$ exec bash
Pracovní uzel 2
$ sudo hostnamectl set-hostname "worker-node2"$ exec bash
Přidejte následující položky do souboru /etc/hosts na řídicí a pracovní uzly.
192.168.1.240 control-node192.168.1.241 worker-node1192.168.1.242 worker-node2
Krok 2) Zakažte Swap a nastavte SELinux v permisivním režimu
Vypněte swap, aby kubelet mohl správně fungovat. Spusťte níže uvedené příkazy na všech uzlech, abyste to deaktivovali,
$ sudo swapoff -a$ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
Spusťte příkaz pod sed na všech uzlech a nastavte SELinux do permisivního režimu
$ sudo setenforce 0$ sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
Krok 3) Nakonfigurujte pravidla brány firewall pro hlavní a pracovní uzly
V řídicí rovině musí být ve firewallu povoleny následující porty.
Chcete-li povolit výše uvedené porty v řídicí rovině, spusťte
$ sudo firewall-cmd --permanent --add-port=6443/tcp$ sudo firewall-cmd --permanent --add-port=2379-2380/tcp$ sudo firewall-cmd --permanent --add -port=10250/tcp$ sudo firewall-cmd --permanent --add-port=10251/tcp$ sudo firewall-cmd --permanent --add-port=10252/tcp$ sudo firewall-cmd --reload$ sudo modprobe br_netfilter$ sudo sh -c "echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables"$ sudo sh -c "echo '1'> /proc/sys/net/ipv4/ ip_forward"
Na pracovních uzlech musí být ve firewallu povoleny následující porty
$ sudo firewall-cmd --permanent --add-port=10250/tcp$ sudo firewall-cmd --permanent --add-port=30000-32767/tcp mod cm br_netfilter$ sudo sh -c "echo '1'> /proc/sys/net/bridge/bridge-nf-call-iptables"$ sudo sh -c "echo '1'> /proc/sys/net/ipv4/ip_forward "."
Krok 4) Nainstalujte Docker na hlavní a pracovní uzly
Nainstalujte Docker na hlavní a pracovní uzly. Zde docker poskytne dobu běhu kontejneru (CRI). Chcete-li nainstalovat nejnovější docker, musíme nejprve povolit jeho úložiště spuštěním následujících příkazů.
$ sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Nyní spusťte pod příkazem dnf na všech uzlech a nainstalujte docker-ce (edice komunity docker)
$ sudo dnf nainstalovat docker-ce -y
Výstup
Jakmile je docker a jeho závislosti nainstalovány, spusťte a povolte jeho službu spuštěním následujících příkazů
$ sudo systemctl spustit docker$ sudo systemctl povolit docker
Krok 5) Nainstalujte kubelet, Kubeadm a kubectl
Kubeadm je nástroj, pomocí kterého nainstalujeme cluster Kubernetes. Kubectl je nástroj příkazového řádku používaný k interakci s clusterem Kubernetes. Kubelet je komponenta, která spustí všechny uzly a provede úkoly, jako je spouštění a zastavování modulů nebo kontejnerů.
Chcete-li nainstalovat kubelet, Kubeadm a kubectl na všechny uzly, musíme nejprve povolit úložiště Kubernetes.
Provádějte pod příkazy na hlavním a pracovním uzlu.
$ kočka <Po instalaci výše uvedených balíčků povolte službu kubelet na všech uzlech (řídicí a pracovní uzly), spusťte
$ sudo systemctl enable --now kubeletKrok 6) Nainstalujte Kubernetes Cluster pomocí Kubeadm
Při instalaci clusteru Kubernetes bychom se měli ujistit, že cgroup doby běhu kontejneru (CRI) odpovídá cgroup kubelet. Typicky je v Dockeru cgroup cgroupfs, takže musíme instruovat Kubeadm, aby použil cgroupfs jako cgoup kubelet. To lze provést předáním yaml v příkazu Kubeadm,
Vytvořte soubor kubeadm-config.yaml na řídicí rovině s následujícím obsahem
$ vi kubeadm-config.yaml# kubeadm-config.yamlkind:ClusterConfigurationapiVersion:kubeadm.k8s.io/v1beta3kubernetesVersion:v1.23.4--kind:KubeletConfigurationapiVersion:c.v.8 Driveprebelet.config.>Poznámka:Nahraďte verzi Kubernetes podle svého nastavení.
Nyní jsme všichni připraveni nainstalovat (nebo inicializovat cluster), spustit pod příkazem Kubeadm z řídicího uzlu,
$ sudo kubeadm init --config kubeadm-config.yamlVýstup výše uvedeného příkazu bude vypadat následovně,
Výše uvedený výstup potvrzuje, že cluster byl úspěšně inicializován.
Proveďte následující příkazy, abyste běžnému uživateli umožnili interakci s clusterem, tyto příkazy jsou již na výstupu.
$ mkdir -p $HOME/.kube$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config$ sudo chown $(id -u):$(id -g) $HOME /.kube/config$ kubectl získat uzly
Chcete-li uvést uzly do připraveného stavu a povolit službu DNS clusteru (coredns), nainstalujte síťový doplněk pod (CNI – Container Network Interface). Pody začnou vzájemně komunikovat, jakmile je nainstalována síťová reklama pod. V této příručce instaluji calico jako síťový ad-on. Spusťte příkaz kubectl z řídicí roviny.
Použít $ kubectl -f https://docs.projectcalico.org/v3.22/manifests/calico.yamlVýstup
Po úspěšné instalaci síťového ad-on calico budou připraveny a dostupné řídicí uzel a pody v jmenném prostoru systému kube.
Nyní je dalším krokem připojení pracovních uzlů ke clusteru.
Krok 7) Připojte pracovní uzly ke clusteru
Po úspěšné inicializaci clusteru Kubernetes se ve výstupu zobrazí příkaz pro připojení libovolného pracovního uzlu ke clusteru. Zkopírujte tedy tento příkaz a vložte jej do pracovních uzlů. Takže v mém případě je příkaz,
$ sudo kubeadm připojit se 192.168.1.240:6443 --token jecxxg.ac3d3rpd4a7xbxx4 --discovery-token-ca-cert-hash sha256:1e4fbed060aafc564df4758bc99160aafc564dfc858bc991Spusťte výše uvedené příkazy na obou pracovních uzlech.
Ověřte stav obou pracovních uzlů z řídicí roviny, spusťte
[[[E-mail chráněný] ~] $ Kubectl Získejte přílohy Stav Rolle Věk VerniverControl-uzel Ready Control-Letadlo, Master 49m V1.23.4worker-Node1 Ready5m18S v1.23.4worker-Node2 Ready 3M57S v1 .23.4[[e-mail chráněný] ~]$ Skvělé, výše uvedený výstup potvrzuje, že se pracovní uzly připojily ke clusteru. To je z této příručky vše, doufám, že vám tato příručka přinesla informace. Sdílejte prosím své dotazy a zpětnou vazbu v sekci komentářů níže.
Rocky Linux