GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Kubernetes na Ubuntu 20.04

Kontejnery jsou dobrou volbou pro seskupování a provozování našich vlastních aplikací. Když se počet kontejnerů rychle zvyšuje a je třeba je spravovat pohodlným způsobem. To je důvod, proč přichází Kubernetes. Kubernetes (K8s) je open-source systém pro automatizaci nasazení, škálování a správu kontejnerových aplikací a služeb.

Cluster Kubernetes obsahuje hlavní a pracovní uzly. Hlavní uzel řídí a spravuje skupinu pracovních uzlů. Pro clustery s vysokou dostupností můžete mít více hlavních uzlů.

Tento kurz ukazuje, jak nainstalovat klastr Kubernetes s kubeadm na Ubuntu 20.04.

Příprava prostředí

  • Použijte 2 hostitele Linux se systémem Ubuntu 20.04

Nastavení statických IP adres pro hlavní uzel a pracovní uzel

- Hlavní uzel:192.168.1.11
- Pracovní uzel:192.168.1.12

  • Nakonfigurujte název hostitele pro každý počítač

Použijeme uzel-1 jako hlavní a uzel-2 jako pracovní uzel.

$ sudo hostnamectl set-hostname node-1
$ sudo hostnamectl set-hostname node-2
  • Zakažte odkládací paměť na každém uzlu ubuntu
$ sudo swapoff -a

Přidat úložiště Kubernetes

Kubernetes není k dispozici ve výchozím úložišti Ubuntu, takže jej musíte přidat ručně.

Na hlavním i pracovním uzlu proveďte následující:

Přidání podpisového klíče Kubernetes takto:

$ sudo -i
# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

Poté přidejte repo Kubernetes, spusťte:

$ echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" >> ~/kubernetes.list
$ sudo mv ~/kubernetes.list /etc/apt/sources.list.d
$ sudo apt update

Instalace nástrojů Kubernetes

V této sekci nainstalujeme Kubeadm, cri-o, Kubelet a Kubernetes-cni. Všechny tyto nástroje je třeba nainstalovat na hlavní i pracovní uzly .

Ujistěte se, že jste nainstalovali doporučenou a podporovanou verzi. Zde instalujeme verzi 1.18 Kubernetes a crio.

Nainstalujte Kubeadm

Kubeadm je nástroj, který je součástí projektu Kubernetes, který pomáhá inicializovat cluster Kubernetes.

V tomto tutoriálu nainstalujeme kubeadm verze 1.18.0-00, zadejte:

$ sudo apt install -y kubeadm=1.18.0-00 --allow-unauthenticated

Poznámka :konkrétní verzi najdete pomocí následujícího příkazu:

$ curl -s https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages | grep Version | awk '{print $2}'

Nainstalujte Kubectl

Kubectl je nástroj příkazového řádku Kubernetes. Umožňuje vám spouštět příkazy v clusterech Kubernetes. Kubectl můžete použít k nasazení aplikací, správě prostředků clusteru a zobrazení protokolů.

Nainstalujte kubectl v1.18.0-00 následujícím příkazem:

$ sudo apt install -y kubectl=1.18.0-00 --allow-unauthenticated

Nainstalovat CRI-O

CRI-O je kontejnerové runtime rozhraní (CRI) kompatibilní s OCI. Nejčastěji používaným runtimem je Docker. Od vydání Kubernetes 1.20 je shim kontejnerového runtime rozhraní (CRI) pro Docker zastaralý. Docker vytváří obrázky, které nejsou obrázky OCI (Open Container Initiative).

K stahování a spouštění obrazů OCI bychom měli používat modul runtime kontejneru kompatibilní s OCI, zvláště pokud používáte služby Kubernetes jako GKE, EKS nebo AKS.

Stále můžete používat docker a poté nainstalovat pomocí sudo apt-get install docker.io

Zde použiji cri-o což je vyhovující runtime. Udržujte verzi cri-o odpovídající verzi Kubernetes.

Ujistěte se, že jste nainstalovali podporovanou verzi.

Nejprve použijte modprobe příkaz k načtení překryvné vrstvy a br_netfilter moduly v uzlu Master i Worker:

$ sudo modprobe overlay
$ sudo modprobe br_netfilter

Poté vytvořte konfigurační soubor sysctl, abyste povolili přesměrování IP a nastavení síťového filtru během restartování vložením následujících řádků do /etc/sysctl.d/99-kubernetes-cri.conf soubor v uzlu Master and Worker:

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

Použijte konfigurační soubor spuštěním:

$ sudo sysctl --system

Nyní specifikujeme Ubuntu OS a verzi cri-o následovně:

$ sudo -i
# export OS=xUbuntu_20.04
# export VERSION=1.18

Poté spusťte následující příkazy jako root uživatel:

# echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
# echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list

# curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/Release.key | apt-key add -
# curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/Release.key | apt-key add -

# apt update
# apt install cri-o cri-o-runc

Po dokončení instalace se zobrazí časté Byl nainstalován nástroj (Container Monitoring). Najděte společnou cestu:

$ which conmon

/usr/bin/conmon

Upravte /etc/crio/crio.conf soubor takto:

...
# Path to the conmon binary, used for monitoring the OCI runtime.
conmon = "/usr/bin/conmon"         #<-- Edit this line. Around line 108

...

registries = [                     #<-- Edit and add registries. Around line 351
        "docker.io",
        "quay.io",
]
....

Povolte cri-o a ujistěte se, že běží:

$ sudo systemctl daemon-reload
$ sudo systemctl enable crio
$ sudo systemctl start crio
$ sudo systemctl status crio

Výstup:

● crio.service - Container Runtime Interface for OCI (CRI-O)
   Loaded: loaded (/usr/lib/systemd/system/crio.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-12-10 15:46:37 UTC; 3 days ago
     Docs: https://github.com/cri-o/cri-o
...

Nainstalovat Kubelet

Kubelet je agent běžící na každém uzlu a je zodpovědný za komunikaci se serverem API na hlavním uzlu a řízení běhového prostředí kontejneru pro spouštění pracovních zátěží.

Nakonfigurujte kubelet abyste pochopili, jak interagovat s cri-o, vložte následující řádek do /etc/default/kubelet soubor:

KUBELET_EXTRA_ARGS=--feature-gates="AllAlpha=false,RunAsGroup=true" --container-runtime=remote --cgroup-driver=systemd --container-runtime-endpoint='unix:///var/run/crio/crio.sock' --runtime-request-timeout=5m

Na hlavním i pracovním uzlu spusťte následující příkaz k instalaci kubelet :

$ sudo apt install -y kubelet=1.18.0-00 --allow-unauthenticated

Nainstalujte Kubernetes-cni

Abychom povolili síťování kontejnerů v clusteru, musíme nainstalovat kubernetes-cni .

Spusťte následující příkaz:

$ sudo apt-get install -y kubernetes-cni --allow-unauthenticated

Nasazení clusteru Kubernetes

Nasazení clusteru Kubernetes zahrnuje 2 kroky. Prvním krokem by byla inicializace hlavního uzlu a druhým krokem připojení pracovního uzlu ke clusteru.

Inicializovat hlavní uzel

Inicializace Kubernetes na hlavním uzlu , zadejte:

$ sudo kubeadm init --apiserver-advertise-address=192.168.1.11 --pod-network-cidr=10.244.0.0/16

Dokončení bude trvat několik minut. Po dokončení inicializace terminál zobrazí výstup následovně:

Poznamenejte si čáru pro připojení ke clusteru označenou výše, použije se v dalším kroku k připojení pracovního uzlu ke clusteru.

Nyní spusťte následující příkaz k vytvoření konfiguračního adresáře Kubernetes v hlavním uzlu:

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

Dále nasaďte síť pod do clusteru:

$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Ověření, že všechny komponenty Control-plane byly úspěšně nainstalovány:

$ kubectl get pod --all-namespaces

Připojit pracovní uzel ke clusteru

Nyní se přihlaste k pracovnímu uzlu a připojte se k pracovnímu uzlu ke clusteru.

Na počítači pracovního uzlu spusťte následující příkaz:

$ sudo kubeadm join 192.168.1.11:6443 --token 9ii02d.nsmrmu1asascv2yg \
    --discovery-token-ca-cert-hash sha256:1104bf70b03a2d030ffc0a462f9dbcbcdd9975393e9a9ac2a1f18500f1b6b74e

Po dokončení procesu připojení se vraťte do hlavního uzlu a spusťte:

$ kubectl get node
NAME     STATUS   ROLES    AGE     VERSION
node-1   Ready    master   2m37s   v1.18.0
node-2   Ready    none     22s     v1.18.0

Chcete-li získat další informace o uzlu, zadejte:

$ kubectl get node -owide
NAME     STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION   CONTAINER-RUNTIME
node-1   Ready    master   9h    v1.18.0   10.2.0.4              Ubuntu 20.04.1 LTS   5.4.0-1029-gcp   cri-o://1.18.4
node-2   Ready    none     9h    v1.18.0   10.2.0.5              Ubuntu 20.04.1 LTS   5.4.0-1029-gcp   cri-o://1.18.4

Výstupy zobrazují podrobnosti hlavního uzlu a uzlů, které se připojily ke clusteru.

Přečtěte si také:Jak nainstalovat Kubernetes lokálně pomocí Vagrant/Minikube

Závěr

Vzhledem k tomu, že kontejnerizace je stále oblíbenější, je Kubernetes tak populární díky potřebě spravovat kontejnerizované pracovní zatížení a služby. Všichni hlavní poskytovatelé cloudu začali podporovat spravované Kubernetes, což usnadňuje život.

Kubernetes je zcela zdarma a lze jej kdykoli stáhnout z jeho úložiště. Doufám, že se vám instalace Kubernetes na Ubuntu líbila. Můžete zkusit nasadit aplikace jako MySQL nebo WordPress na clusteru K8.

Děkujeme za přečtení a zanechte prosím svůj návrh v sekci komentářů níže.


Ubuntu
  1. Jak nainstalovat Odoo na Ubuntu

  2. Jak nainstalovat R na Ubuntu 16.04

  3. Jak nainstalovat Go na Ubuntu 18.04

  1. Jak nainstalovat Maven na Ubuntu

  2. Jak nainstalovat Wine na Ubuntu

  3. Jak nainstalovat Ruby na Ubuntu 20.04

  1. Jak nainstalovat PuTTY na Ubuntu

  2. Jak nainstalovat Ruby na Ubuntu 18.04

  3. Jak nainstalovat Pip na Ubuntu 18.04