V tomto článku se seznámíme s instalací clusteru Kubernetes pomocí Kubeadm v RHEL 8 a jeho klonech jako AlmaLinux 8, CentOS 8 a Rocky Linux 8.
Než se do toho pustíte, musíte mít základní znalosti o konceptech a architektuře Kubernetes . V tomto článku budeme demonstrovat cluster se dvěma uzly.
Pro pokračování instalace potřebujeme níže uvedené základní požadavky.
- Minimálně 2 hostitelé.
- 2 CPU.
- 2 GB fyzické paměti (RAM).
- 20 GB místa na disku.
- Připojení k internetu pro stahování balíčků.
1. Nakonfigurujte název hostitele a adresu IP
Nastavte název hostitele a nakonfigurujte hostitele v Master and Workers. Hostitelé souborů operačního systému se používají k převodu názvů hostitelů nebo doménových jmen na adresy IP.
Zde budeme mít dva hostitele:
- ostechmistr – mistr
- ostechworker – dělník
Pomocí níže uvedeného příkazu nastavte název hostitele, po nastavení názvu hostitele je vyžadován restart.
# hostnamectl set-hostname ostechmaster
Upravte /etc/hosts
soubor:
# vi /etc/hosts
Přidejte název hostitele a IP adresu serveru i klienta do /etc/hosts
soubor:
Proveďte test ping, abyste zajistili připojení:
[[email protected] ~]# ping ostechworkerPING ostechworker (172.31.5.141) 56(84) bajtů dat,64 bajtů od ostechworker (172.31.5.141):icmp_seq=1 ttl=62 ms 4 krát 0,47 (172.31.5.141):icmp_seq=2 ttl=64 čas=0,492 ms64 bajtů od ostechworker (172.31.5.141):icmp_seq=3 ttl=64 čas=1,43 ms64 bajtů od ostechworker =72mptl_seq (1.1) čas=0,425 ms
2. Zakázat SElinux
Zakažte SElinux v Master and Workers, takže všechny kontejnery mohou snadno přistupovat k hostitelskému souborovému systému, pokud je SElinux zakázán.
Nastavte 'SELINUX=disabled
' v konfiguračním souboru /etc/selinux/config
pomocí editoru vi. Je vyžadován restart, aby se projevila změna SElinux.
[[email protected] ~]# vi /etc/selinux/config
Zkontrolujte stav SElinux pomocí níže uvedeného příkazu.
[[email chráněný] ~]# stav sestatusSELinux:zakázán
3. Zakázat Swap v Master and Worker
Swap musí být deaktivován na všech hostitelích Kubernetes (Master &Workers). Toto je preferovaný způsob nasazení komunity Kubernetes. Pokud není swap zakázán, služba kubelet se nespustí na masteru a dělnících.
Spuštěním níže uvedeného příkazu zakážete SWAP:
[[email protected] ~]# swapoff -a &&sed -i '/swap/d' /etc/fstab
4. Povolte požadované porty ve firewallu
Aby komponenty Kubernetes mohly vzájemně interagovat, musí být k dispozici určité základní porty. Níže jsou uvedeny porty, které se mají otevřít, aby bylo možné využít připojení mezi komponenty Kubernetes.
Řídicí rovina / Hlavní server:
Protokol | Směr | Rozsah portů | Účel | Použito |
TCP | Příchozí | 6443 | Server Kubernetes API | Vše |
TCP | Příchozí | 2379-2380 | etcd server API klienta | kube-apiserver, atd. |
TCP | Příchozí | 10250 | Kubelet API | Sebe, Řídící rovina |
TCP | Příchozí | 10259 | kube-plánovač | Já |
TCP | Příchozí | 10257 | kube-controller-manager | Já |
Pracovní uzly:
Protokol | Směr | Rozsah portů | Účel | Použito |
TCP | Příchozí | 10250 | Kubelet API | Sebe, Řídící rovina |
TCP | Příchozí | 30 000-32767 | Služby NodePort | Vše |
Chcete-li povolit požadované porty přes bránu firewall, spusťte následující příkazy.
Hlavní uzel:
[[e-mail chráněný] ~]# firewall-cmd --permanent --add-port=6443/tcp
[[email chráněný] ~]# firewall-cmd --permanent --add-port=2379-2380/tcp
[[email chráněný] ~]# firewall-cmd --permanent --add-port=10250/tcp
[[email chráněný] ~]# firewall-cmd --permanent --add-port=10251/tcp
[[e-mail chráněný] ~]# firewall-cmd --permanent --add-port=10259/tcp
[[e-mail chráněný] ~]# firewall-cmd --permanent --add-port=10257/tcp
[[email protected] ~]# firewall-cmd --reload
Pracovní uzel:
[[e-mail chráněný] ~]# firewall-cmd --permanent --add-port=10250/tcp
[[email chráněný] ~]# firewall-cmd --permanent --add-port=30000-32767/tcp
[[email protected] ~]# firewall-cmd --reload
Firewall deaktivujeme v Master i Worker, protože je to pro demonstrační účely. Nedoporučuje se to však pro produkční praxi v reálném čase.
K zastavení a deaktivaci brány firewall použijte níže uvedené příkazy.
[[email chráněný] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl deaktivovat firewall
5. Nainstalujte Docker
Docker usnadňuje „stavbu“ kontejnerů, zatímco Kubernetes umožňuje „spravovat“ je v reálném čase. K zabalení a odeslání softwaru použijte Docker. Ke spuštění a škálování aplikace použijte Kubernetes.
Přidejte úložiště dockeru na všechny počítače v Clusteru.
Vytvořte soubor s názvem docker.repo
pod /etc/yum.repos.d/
adresář:
[[email protected] ~]# vi /etc/yum.repos.d/docker.repo
Přidejte do něj následující řádky:
[docker]baseurl=https://download.docker.com/linux/centos/8/x86_64/stable/gpgcheck=0
Stiskněte klávesu ESC a napište :wq
uložte soubor a zavřete jej.
Nainstalujte docker do uzlů Master i Worker:
# yum -y nainstalovat docker-ce
Po instalaci povolte a spusťte Docker na obou uzlech:
# systemctl enable docker
# systemctl start docker
Zkontrolujte a ujistěte se, že Docker běží na obou počítačích.
# systemctl status docker
6. Nainstalujte Kubernetes
Přidejte úložiště Kubernetes do Master and Worker.
Vytvořte soubor kubernetes.repo
v Master i Worker pod /etc/yum.repos.d/
adresář:
# vi /etc/yum.repos.d/kubernetes.repo
Přidejte následující řádky:
[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://packages.cloud.google.com/ yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Stiskněte ESC a napište :wq
uložte soubor a zavřete jej.
Nainstalujte kubeadm, kubelet, kubectl do uzlů Master a Worker pomocí níže uvedeného příkazu:
# yum install -y kubelet kubeadm kubectl --disableexcludes=Kubernetes
Povolte a spusťte kubelet
služba v obou strojích:
# systemctl povolit kubelet
# systemctl start kubelet
Zkontrolujte stav služby Kubelet a ujistěte se, že na obou počítačích funguje správně.
# systemctl status kubelet
7. Inicializujte Kubernetes
Pomocí níže uvedeného příkazu inicializujte Kubernetes na hlavním serveru
[[email protected] ~]# init kubeadm
Získáte níže uvedený výstup, který říká, že řídicí rovina Kubernetes byla úspěšně inicializována. A budou zmíněny určité kroky pro zahájení používání clusteru, postupujte podle nich.
Také zkopírujte a uložte 'kubeadm join'
příkaz z výstupu, bude použit pro připojení k pracovnímu uzlu v clusteru.
Ukázkový výstup:
Vaše řídicí rovina Kubernetes byla úspěšně inicializována! Chcete-li začít používat svůj cluster, musíte jako běžný uživatel spustit následující:mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id - u):$(id -g) $HOME/.kube/config Alternativně, pokud jste uživatel root, můžete spustit: export KUBECONFIG=/etc/kubernetes/admin.conf Nyní byste měli nasadit síť pod do clusteru. Spusťte „kubectl apply -f [podnetwork].yaml“ s jednou z možností uvedených na:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then Můžete se připojit k libovolnému počtu uzlů pracovníků spuštěním následujícího na každém jako root: kubeadm se připojte 172.31.10.29:6443-token 220tvj.051bkeyj5tg6v55r \--discovery-token-cert-cert-cert-cert-cert-cert-cert-cert-cert-cert-cert-cert-cert-hash sha256:silný>
Protože pokračujeme s root
uživatel, spusťte níže uvedený příkaz na hlavním serveru, jak je uvedeno ve výše uvedeném výstupu.
[[email protected] ~]# export KUBECONFIG=/etc/kubernetes/admin.conf
8. Nakonfigurujte síť POD
Síť Kubernetes Pod je síť propojených komponent v Kubernetes. Tento koncept sítě může být implementován několika různými způsoby. V naší ukázce použijeme 'Weave Net' .
Spusťte níže uvedené příkazy na hlavním serveru pro nastavení sítě POD.
[[email protected] ~]# export kubever=$(verze kubectl | base64 | tr -d '\n')
[[email protected] ~Použít # kubectl -f https://cloud.weave.works/k8s/net?k8s-version=$kubever
Ukázkový výstup:
serviceaccount/weave-net createdclusterrole.rbac.authorization.k8s.io/weave-net createdclusterrolebinding.rbac.authorization.k8s.io/weave-net createdrole.rbac.authorization.k8s.io/weave-net createdrolebinding.rbac .authorization.k8s.io/weave-net createddaemonset.apps/weave-net created[[email protected] ~]#
9. Připojte se k Worker Node
Spusťte 'kubeadm join
' pro připojení pracovního uzlu do clusteru. Toto je příkaz, který jsme zkopírovali z 'kubeadm init
' výstup.
[[email protected] ~]# kubeadm join 172.31.10.29:6443 --token 220tvj.051bkeyj5tg6v55r --discovery-token-ca-cert-hash sha256:434c49c792993846afUzel na hlavním serveru můžete ověřit pomocí níže uvedeného příkazu
# kubectl get nodesUkázkový výstup:
JMÉNO STAV ROLE VĚK VERZEostechmaster Připraveno kontrolní letadlo, hlavní 32m v1.23.1ostechworker Připraveno <žádné> 30m v1.23.1Závěr
V tomto článku jsme viděli podrobné kroky k nastavení a konfiguraci Kubernetes Cluster pomocí Kubeadm. Podívejte se na naši předchozí sérii kubernetes články, abyste měli podrobný přehled o architektuře a konceptech Kubernetes. Operace Kubernetes uvidíme v nadcházejících článcích.
Další informace:
- Jak vytvářet a spravovat Kubernetes Pody v Linuxu
Zdroj:
- https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/