GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat Kubernetes (k8s) Cluster na RHEL 8

Kubernetes, také známý jako k8s, je opensource a přenosná platforma pro orchestraci kontejnerů pro automatizaci nasazení a správy kontejnerových aplikací. Kubernetes byl původně vytvořen společností Google v programovacím jazyce Go. V současnosti jej spravuje Cloud Native Computing Foundation.

V této příručce vás krok za krokem provedeme, jak nainstalovat cluster Kubernetes na RHEL 8. Předvedeme si to pomocí jednoho hlavního a jednoho pracovního uzlu, které přidáme do našeho clusteru.

Nastavení laboratoře

  • Hlavní uzel:        master-node-k8        10.128.15.228
  • Worker node:      worker-node-1-k8     10.128.15.230

POZNÁMKA:Kroky 1 až 6 by měly být aplikovány na hlavní i pracovní uzel.

Krok 1) Zakažte odkládací prostor

Pro nejlepší výkon vyžaduje Kubernetes deaktivaci swapu na hostitelském systému. Je to proto, že swapování paměti může výrazně vést k nestabilitě a snížení výkonu.

Chcete-li zakázat odkládací prostor, spusťte příkaz:

$ sudo swapoff -a

Aby byly změny trvalé, upravte soubor /etc/fstab a odstraňte nebo okomentujte řádek s položkou swap a uložte změny.

Krok 2) Zakažte SELinux

Navíc musíme deaktivovat SELinux a nastavit jej na „povolující“, abychom umožnili hladkou komunikaci mezi uzly a moduly.

Chcete-li toho dosáhnout, otevřete konfigurační soubor SELinux.

$ sudo vi /etc/selinux/config

Změňte hodnotu SELINUX z vynucování na permisivní.

SELINUX=permisivní

Případně můžete použít příkaz sed následovně.

$ sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

Krok 3) Nakonfigurujte síť v hlavním a pracovním uzlu

Aby vaše hlavní a pracovní uzly mohly efektivně komunikovat, je vyžadována určitá další konfigurace sítě. Na každém uzlu upravte soubor  /etc/hosts.

$ sudo vi /etc/hosts

Dále aktualizujte položky podle obrázku

10.128.15.228 master-node-k8 // Pro hlavní uzel10.128.15.230 worker-node-1-k8 // Pro uzel Worker

Uložte a ukončete konfigurační soubor. Dále nainstalujte balíček obslužného programu pro řízení provozu:

$ sudo dnf install -y iproute-tc

Krok 4) Povolte pravidla brány firewall pro k8

Pro bezproblémovou komunikaci mezi hlavním a pracovním uzlem musíte nakonfigurovat bránu firewall a povolit některé příslušné porty a služby, jak je uvedeno níže.

Na hlavním uzlu povolte následující porty,

$ 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 

V uzlu Worker povolte následující porty,

$ sudo firewall-cmd --permanent --add-port=10250/tcp$ sudo firewall-cmd --permanent --add-port=30000-32767/tcp                                                                     znovu                 znovu> 

Krok 5) Nainstalujte runtime kontejneru CRI-O

Kubernetes vyžaduje pro běh modulů kontejnerové běhové prostředí. Kubernetes 1.23 a novější verze vyžadují instalaci modulu runtime kontejneru, který se potvrdí pomocí rozhraní Container Runtime Interface.

Container Runtime je aplikace, která podporuje spouštění kontejnerů. Kubernetes podporuje následující Container Runtime:

  • Kontejner
  • CRI-O
  • Docker Engine
  • Mirantis Container Runtime

V této příručce nainstalujeme CRI-O, což je běhový modul kontejneru na vysoké úrovni. Abychom tak učinili, musíme povolit dva klíčové moduly jádra – moduly překryv a br_netfilter.

Abychom toho dosáhli, musíme nakonfigurovat předpoklady takto:

Nejprve vytvořte konfigurační soubor modulů pro Kubernetes.

$ sudo vi /etc/modules-load.d/k8s.conf

Přidejte tyto řádky a uložte změny

overlaybr_netfilter

Poté načtěte oba moduly pomocí příkazu modprobe.

$ sudo modprobe overlay$ sudo modprobe br_netfilter

Dále nakonfigurujte požadované parametry sysctl následovně

$ sudo vi /etc/sysctl.d/k8s.conf

Přidejte následující řádky:

net.bridge.bridge-nf-call-iptables  =1net.ipv4.ip_forward                  =1net.bridge.bridge-nf-call-ip6tables =1

Uložte změny a ukončete. Chcete-li potvrdit, že změny byly použity, spusťte příkaz:

$ sudo sysctl --system

Chcete-li nainstalovat CRI-O, nastavte proměnnou prostředí $VERSION tak, aby odpovídala vaší verzi CRI-O. Chcete-li například nainstalovat CRI-O verze 1.21, nastavte $VERSION podle obrázku:

$ export VERSION=1.21

Dále spusťte následující příkazy:

$ sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable /CentOS_8/devel:kubic:libcontainers:stable.repo
$ sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic :libcontainers:stable:cri-o:$VERSION/CentOS_8/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo

Poté pomocí správce balíčků DNF nainstalujte CRI-O:

$ sudo dnf install cri-o

Dále povolte CRI-O při spouštění a spusťte jej:

$ sudo systemctl povolit cri-o$ sudo systemctl spustit cri-o

Krok 6)  Nainstalujte balíčky Kubernetes

Když máme nainstalované vše potřebné pro fungování Kubernetes, pojďme do toho a nainstalujme balíčky Kubernetes jako kubelet, kubeadm a kubectl. Vytvořte soubor úložiště Kubernetes.

$ sudo vi /etc/yum.repos.d/kubernetes.repo

A 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.gpgexclude=kubelet kubeadm kubectl

Uložte změny a ukončete. Nakonec nainstalujte balíček k8s následovně.

$ sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

Po instalaci nezapomeňte povolit a spustit službu Kubelet.

$ sudo systemctl povolit kubelet$ sudo systemctl spustit kubelet

V tomto okamžiku jsme všichni připraveni nainstalovat cluster Kubernetes.

Krok 7)  Vytvořte cluster Kubernetes

Chystáme se inicializovat cluster Kubernetes pomocí příkazu kubeadm následovně. Tím se inicializuje řídicí rovina v hlavním uzlu.

$ sudo kubeadm init --pod-network-cidr=192.168.10.0/16

Jakmile je vytvořena řídicí rovina, budete muset provést některé další příkazy, abyste mohli začít používat cluster.

Proto spouštějte příkazy postupně.

$ mkdir -p $HOME/.kube$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config$ sudo chown $(id -u):$(id -g) $HOME /.kube/config

Na samém konci výstupu dostanete příkaz ke spuštění na pracovních uzlech pro připojení ke clusteru. K tomu se dostaneme později v dalším kroku.

Nezapomeňte také odstranit skvrny z hlavního uzlu:

$ kubectl taint nodes –all node-role.kubernetes.io/master-

Krok 8)  Nainstalujte síťový doplněk Calico Pod

Dalším krokem je instalace Calico CNI (Container Network Interface). Jedná se o opensource projekt používaný k poskytování kontejnerových sítí a zabezpečení. Po instalaci Calico CNI se stav uzlů změní na stav Připraveno, služba DNS uvnitř clusteru bude funkční a kontejnery mohou začít mezi sebou komunikovat.

Calico poskytuje škálovatelnost, vysoký výkon a interoperabilitu se stávajícími pracovními zátěžemi Kubernetes. Lze jej nasadit lokálně a na populárních cloudových technologiích, jako jsou Google Cloud, AWS a Azure.

Chcete-li nainstalovat Calico CNI, spusťte následující příkaz z hlavního uzlu

$ kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml

Po dokončení spusťte tento.

$ kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml

Chcete-li potvrdit, zda moduly začaly, spusťte příkaz:

$ watch kubectl get pods -n calico-system

Měli byste vidět, že každý modul je „READY“ a má stav „RUNNING“, jak je znázorněno ve třetím sloupci.

Chcete-li ověřit dostupnost hlavního uzlu v clusteru, spusťte příkaz:

$ kubectl získat uzly

Kromě toho můžete získat další informace pomocí voleb -o wide.

$ kubectl get nodes -o wide

Výše uvedený výstup potvrzuje, že hlavní uzel je připraven. Navíc můžete zkontrolovat jmenné prostory pod:

$ kubectl získat pody --all-namespaces

Krok 9) Přidání pracovního uzlu do clusteru

Chcete-li přidat pracovní uzel do clusteru Kubernetes, postupujte podle kroku 1 až do kroku 6.  Až budete hotovi, spusťte příkaz vygenerovaný hlavním uzlem pro připojení pracovního uzlu ke clusteru. V našem případě to bude:

$ sudo kubeadm připojit se 10.128.15.228:6443 --token cqb8vy.iicmmqrb1m8u9cob --discovery-token-ca-cert-hash sha256:79748a56f603e6cc57b87759e6cc57b7759bf90600087545aed90600 

Pokud vše půjde dobře, měli byste dostat oznámení, že se uzel připojil ke clusteru. V případě, že máte více pracovních uzlů

, opakujte stejný postup pro další uzly

Nyní se vraťte do hlavního uzlu a znovu ověřte uzly ve vašem clusteru. Tentokrát se pracovní uzel objeví v seznamu uzlů v clusteru,

$ kubectl získat uzly

Závěr

To byla procházka, jak můžete nainstalovat Kubernetes Cluster na RHEL 8. Vaše zpětná vazba k této příručce je vítána.


Linux
  1. Jak nainstalovat Kubernetes Cluster na CentOS 7

  2. Jak nainstalovat spark na RHEL 8

  3. Jak nainstalovat Elasticsearch na CentOS/RHEL 8

  1. Jak nainstalovat ActiveMQ na RHEL 8

  2. Jak nainstalovat cassandru na RHEL 8

  3. Jak nainstalovat Kubernetes Cluster na Rocky Linux 8

  1. Jak nainstalovat Kubernetes (k8s) 1.7 na CentOS 7 / RHEL 7

  2. Jak nainstalovat Kubernetes (k8s) na Ubuntu 20.04 LTS Server

  3. Jak nastavit Kubernetes(k8s) Cluster v HA s Kubeadm