GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Kubernetes (k8s) na Ubuntu 20.04 LTS Server

Kubernetes (k8s) je bezplatný nástroj pro orchestraci kontejnerů s otevřeným zdrojovým kódem. Používá se pro nasazení, škálování a správu aplikací založených na kontejnerech. V tomto článku si ukážeme, jak nainstalovat Kubernetes Cluster na Ubuntu 20.04 LTS Server (Focal Fossa) pomocí kubeadm . V nastavení mé laboratoře jsem použil tři serverové stroje Ubuntu 20.04 LTS. Níže jsou uvedeny systémové požadavky na každý systém Ubuntu.

  • Minimálně 2 GB RAM
  • 2 jádra (2 vCPU)
  • 15 GB volného místa na /var
  • Privilegovaný uživatel s právy sudo
  • Stabilní připojení k internetu

Níže jsou uvedeny podrobnosti o nastavení mé laboratoře:

  • Machine 1 (Ubuntu 20.04 LTS Server) – K8s-master – 192.168.1.40
  • Machine 2 (Ubuntu 20.04 LTS Server) – K8s-node-0 – 192.168.1.41
  • Machine 3 (Ubuntu 20.04 LTS Server) – K8s-node-1 – 192.168.1.42

Nyní přejdeme k instalačním krokům Kubernetes

Krok 1) Nastavte název hostitele a přidejte položky do souboru /etc/hosts

Použijte příkaz hostnamectl k nastavení názvu hostitele na každém uzlu, příklad je uveden níže:

$ sudo hostnamectl set-hostname "k8s-master"     // Spusťte tento příkaz na hlavním uzlu$ sudo hostnamectl set-hostname "k8s-node-0"     // Spusťte tento příkaz na node-0$ sudo hostnamectl set-hostname "k8s-node-1"     // Spusťte tento příkaz na node-1

Přidejte následující položky do souborů /etc/hosts na každý uzel,

192.168.1.40    k8s-master192.168.1.41    k8s-node-0192.168.1.42    k8s-node-1

Krok 2) Nainstalujte Docker (Container Runtime) na všechny 3 uzly

Přihlaste se ke každému uzlu a spusťte následující příkazy pro instalaci dockeru,

$ sudo apt update$ sudo apt install -y docker.io

Nyní spusťte a povolte službu docker na každém uzlu pomocí příkazu systemctl,

$ sudo systemctl povolit docker.service --now

Spuštěním následujícího příkazu ověřte stav služby docker a její verzi,

$ systemctl status docker$ docker --version

Krok 3) Zakažte swap a povolte předávání IP na všech uzlech

Chcete-li zakázat swap, upravte soubor /etc/fstab a zakomentujte řádek, který obsahuje položku buď odkládací oddíl nebo odkládací soubor.

$ sudo vi /etc/fstab

Uložte a ukončete soubor

Spusťte příkaz swapoff a zakažte výměnu za běhu

$ sudo swapoff -a

Chcete-li trvale povolit předávání IP adres, upravte soubor „/etc/sysctl.conf“ a vyhledejte řádek „net.ipv4.ip_forward=1 “ a zrušte jeho komentář. Po provedení změn v souboru proveďte následující příkaz

$ sudo sysctl -pnet.ipv4.ip_forward =1 $

Krok 4) Nainstalujte Kubectl, kubelet a kubeadm na všechny uzly

Spuštěním následujících příkazů na všech 3 uzlech nainstalujte nástroj kubectl , kubelet a kubeadm

$ sudo apt install -y apt-transport-https curl$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add$ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"$ sudo apt update$ sudo apt install -y kubelet kubeadm kubectl

Poznámka: V době psaní tohoto článku bylo úložiště Kubernetes Ubuntu 16.04 (Xenial Xerus) dostupné, ale v budoucnu, až bude úložiště kubernetes dostupné pro Ubuntu 20.04, nahraďte xenial ústředním slovem ve výše uvedeném příkazu „apt-add-repository“.

Krok 4) Inicializujte Kubernetes Cluster pomocí kubeadm (z hlavního uzlu)

Přihlaste se ke svému hlavnímu uzlu (k8s-master) a spusťte pod příkazem „kubeadm init“ inicializaci clusteru Kubernetes,

$ sudo kubeadm init

Jakmile je cluster úspěšně inicializován, získáme následující výstup

Chcete-li začít používat cluster jako běžný uživatel, spusťte následující příkazy, příkazy jsou již ve výstupu, stačí je zkopírovat a vložit.

[e-mail chráněný]:~$  mkdir -p $HOME/.kube[e-mail chráněný]:~$  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config[chráněný e-mail]:~ $  sudo chown $(id -u):$(id -g) $HOME/.kube/config

Nyní připojte pracovní uzly (k8s-node-0/1) do clusteru, příkaz pro připojení ke clusteru je již ve výstupu. Zkopírujte příkaz „kubeadm join“ a vložte jej na oba uzly (pracovní uzly).

Přihlaste se k Node-0 a spusťte následující příkaz,

[e-mail chráněný]:~$ sudo kubeadm připojit se 192.168.1.40:6443 --token b4sfnc.53ifyuncy017cnqq --discovery-token-ca-cert-hash sha256:5078c5b1578078c5b151bf239588c
 

Přihlaste se k Node-1 a spusťte následující příkaz pro připojení ke clusteru,

[e-mail chráněný]:~$ sudo kubeadm připojit se 192.168.1.40:6443 --token b4sfnc.53ifyuncy017cnqq --discovery-token-ca-cert-hash sha256:5078c5b1578078c5b151bf239588c
 

Z hlavního uzlu spusťte příkaz „kubectl get nodes“ pro ověření stavu uzlů

[Pre> [Ochránce e-mailů]:~ $ KuBectl Získejte stavový název NODESNAME ROLES AGE VERSIONK8S-MASTER NOTREADY MASTER 27M V1.18.3K8S-UDE-0 NOTREADIACE 8M3S V1.18.3K8S-NODE-1 NOTRACE 7M19S V1. 18.3[e-mail chráněný]:~$

Jak vidíme, jak pracovní uzly, tak hlavní uzel se připojily ke clusteru, ale stav každého uzlu je „NotReady “. Chcete-li nastavit stav „Připraveno ” musíme nasadit síťové doplňky na platformě Container Network Interface (CNI), jako je calico , kube-router a weave-net . Jak název napovídá, síťové doplňky modulů umožňují modulům komunikovat mezi sebou.

Krok 5) Nasaďte síťový doplněk Calico Pod (hlavní uzel)

Z hlavního uzlu spusťte následující příkaz k instalaci síťového doplňku Calico pod,

[e-mail chráněný]:~$ použít kubectl -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml

Jakmile bude úspěšně nasazen, stav uzlů bude připraven, spusťte znovu příkaz kubectl a ověřte stav uzlů

[email protected]:~$ kubectl get nodesNAME         STAV   ROLE    VĚK   VERZE k8s-master   Připraveno    master   39 m   v1.18.3k8s-node-0   Připraveno    18 m- 1       18 m-1       18.3[e-mail chráněný]:~$

Spusťte níže uvedený příkaz a ověřte stav podů ze všech jmenných prostorů

Perfektní, výše potvrzuje, že všechny lusky běží a jsou ve zdravém stavu. Zkusme nasadit moduly, službu a nasazení, abychom zjistili, zda náš cluster Kubernetes funguje dobře nebo ne.

Poznámka: Chcete-li povolit funkci dokončování bash na vašem hlavním uzlu, proveďte následující

[e-mail chráněný]:~$ echo 'zdroj <(kubectl dokončení bash)'>>~/.bashrc[e-mail chráněný]:~$ zdroj .bashrc

Krok 6) Otestujte a ověřte Kubernetes Cluster

Pojďme vytvořit nasazení s názvem nginx-web s obrázkem kontejneru nginx ve výchozím jmenném prostoru, spusťte následující příkaz kubectl z hlavního uzlu,

[chráněno e-mailem]:~$ vytvoření nasazení kubectl nginx-web --image=nginxdeployment.apps/nginx-web vytvořeno[chráněno e-mailem]:~$

Spuštěním níže uvedeného příkazu ověřte stav nasazení

[email protected]:~$ kubectl get deployments.appsNAME        PŘIPRAVENO   AKTUALIZOVANÉ   DOSTUPNÉ   AGEnginx-web   1/1     1             1     $     - -Date dostupné věkové kontejnery Obrázky SelectOrngonx-Web 1/1 1 1 56s nginx nginx app =nginx-web [chráněno e-mailem]:~ $ [chráněno e-mailem]:~ $ kubectl Získat podsname připravit Stav restartování agenginx-web-7748f7f7f7f7-nk8b2 1 /1     Běží   0          2 m50 s[e-mail chráněno]:~$

Jak vidíme, nasazení bylo úspěšně vytvořeno s výchozí replikou.

Zvětšeme nasazení, nastavte repliky jako 4. Spusťte následující příkaz

[chráněno e-mailem]:~$ kubectl scale --replicas=4 nasazení nginx-webdeployment.apps/nginx-web scaled[e-mailem chráněno]:~$

Nyní ověřte stav svého nasazení pomocí následujících příkazů

[e-mail protected]:~$ kubectl get deployments.apps nginx-webNAME        PŘIPRAVENO   AKTUÁLNĚ K DISPOZICI   AGEnginx-web   4/4     4            $  4      $ chráněno 4     1 [e-mail  bec t protect ] deployments.apps nginx-web

Výše uvedené potvrzuje, že nasazení založené na nginx bylo úspěšně škálováno.

Provedeme ještě jeden test, vytvoříme pod s názvem „http-web“ a vystavíme jej prostřednictvím služby s názvem „http-service“ s portem 80 a typem NodePort.

Spuštěním následujícího příkazu vytvořte modul

[e-mail chráněn]:~$ kubectl spustit http-web --image=httpd --port=80pod/http-web created[e-mail protected]:~$

Vytvořte službu pomocí příkazu beneath a vystavte výše vytvořený modul na portu 80,

[e-mail chráněný]:~$ kubectl expose pod http-web --name=http-service --port=80 --type=NodePortservice/http-service vystaven[e-mail chráněn]:~$[e-mail chráněn]:~$ kubectl získat službu http-serviceNAME            TYP       CLUSTER-IP       EXTERNÍ-IP   PORT(S)        AGEhttp-service   NodePort   10.101.152.138    8 s:8 TC       8 p:8 TC        

Získejte IP adresu uzlu nebo název hostitele, na kterém je nasazený http-web pod, a poté přejděte na webový server přes NodePort (31098)

[chráněn e-mailem]:~$[chráněn e-mailem]:~$ curl http://k8s-node-0:31098

Funguje to!

[e-mail chráněn]:~$

Perfektní, funguje podle očekávání. Toto uzavírá článek a potvrzuje, že jsme úspěšně nastavili cluster Kubernetes na serveru Ubuntu 20.04 LTS.

Přečtěte si také :Jak nastavit NGINX Ingress Controller v Kubernetes

Přečtěte si takéJak nastavit soukromý registr dockerů v Kubernetes (k8s)


Ubuntu
  1. Jak nainstalovat RabbitMQ Server na Ubuntu 18.04 &16.04 LTS

  2. Jak nainstalovat Gitlab Server na Ubuntu 18.04 &16.04 LTS

  3. Jak nainstalovat Xrdp Server na Ubuntu 20.04 LTS

  1. Jak nainstalovat a nakonfigurovat Kubernetes (k8s) na Ubuntu 18.04 LTS

  2. Jak nainstalovat R na Ubuntu 18.04 LTS

  3. Jak nainstalovat R na Ubuntu 20.04 LTS

  1. Jak nainstalovat OctoberCMS na Ubuntu 16.04 LTS

  2. Jak nainstalovat AbanteCart na Ubuntu 16.04 LTS

  3. Jak nainstalovat RabbitMQ Server na Ubuntu 18.04 LTS