GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Kubernetes-Cluster unter Ubuntu 20.04 mit kubeadm einrichten

Kubernetes ist ein Open-Source-Container-Orchestrierungssystem zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von Computeranwendungen.

Bevor Sie beginnen, stellen Sie sicher, dass Ihre Software auf dem neuesten Stand ist

sudo apt apdate
sudo apt upgrade

Installieren

Installieren Sie die folgenden Pakete auf all Ihren Computern:

  • kubeadm :Der Befehl zum Bootstrapping des Clusters.
  • kubelet :Die Komponente, die auf allen Maschinen in Ihrem Cluster ausgeführt wird und Dinge wie das Starten von PODs und Containern erledigt.
  • kubectl :das Befehlszeilen-Dienstprogramm, um mit Ihrem Cluster zu kommunizieren.
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

Installierte Versionen bestätigen

kubectl version --client

kubeadm version

Ausgabe:

[email protected]:~$ kubectl version --client
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T18:03:20Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}
[email protected]:~$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T18:02:08Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}

Swap deaktivieren.

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a

Sysctl konfigurieren.

sudo modprobe overlay
sudo modprobe br_netfilter

sudo tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sudo sysctl --system

Installieren Sie die Containerd-Container-Laufzeit

sudo apt-get install -y containerd

Containerd konfigurieren und Dienst starten

sudo mkdir -p /etc/containerd
sudo containerd config default > /etc/containerd/config.toml

Aktivieren Sie den Dienst, um beim Booten zu starten und zu starten

sudo systemctl enable --now containerd

# check status
sudo systemctl status containerd

Der Dienst sollte ausgeführt werden

containerd.service - containerd container runtime
     Loaded: loaded (/lib/systemd/system/containerd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-08-04 20:27:51 UTC; 7min ago
       Docs: https://containerd.io
   Main PID: 8159 (containerd)
      Tasks: 12
     Memory: 23.3M
     CGroup: /system.slice/containerd.service
             └─8159 /usr/bin/containerd

Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.784407330Z" level=info msg="loading plugin \"io.containerd.grpc>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.785605392Z" level=info msg=serving... address=/run/containerd/c>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.785639559Z" level=info msg=serving... address=/run/containerd/c>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.787585658Z" level=info msg="containerd successfully booted in 0>
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.801146245Z" level=info msg="Start subscribing containerd event"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.804843058Z" level=info msg="Start recovering state"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805094249Z" level=info msg="Start event monitor"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805193238Z" level=info msg="Start snapshots syncer"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805282655Z" level=info msg="Start cni network conf syncer"
Aug 04 20:27:51 ub-kubeadm containerd[8159]: time="2021-08-04T20:27:51.805369362Z" level=info msg="Start streaming server"

Masterknoten initialisieren

Kubelet-Dienst aktivieren und starten.

sudo systemctl enable --now kubelet

Pull Erforderliche Container-Images:

sudo kubeadm config images pull

Legen Sie den DNS-Namen des Cluster-Endpunkts fest oder fügen Sie einen Eintrag zu /etc/hosts hinzu Datei.

192.168.20.7 k8s.citizix.local

Cluster erstellen:

sudo kubeadm init \
  --pod-network-cidr=192.168.0.0/16 \
  --control-plane-endpoint=k8s.citizix.local

Wenn das erledigt ist, sollten die k8s betriebsbereit sein. Rufen Sie die kubeconfig-Admin-Datei von diesem Pfad ab /etc/kubernetes/admin.conf

mkdir ~/.kube
sudo cp /etc/kubernetes/admin.conf ~/.kube/admin.conf
sudo chown ${USER}.${GROUP} ~/.kube/admin.conf
chmod 400 ~/.kube/admin.conf

Clusterstatus prüfen:

kubectl cluster-info

Bestätigen Sie, dass der Master-Knoten bereit ist:

kubectl get nodes -o wide

Zusätzliche Master-Knoten können mit dem Befehl in der Installationsausgabe hinzugefügt werden:

kubeadm join k8s-cluster.computingforgeeks.com:6443 --token sr4l2l.2kvot0pfalh5o4ik \
    --discovery-token-ca-cert-hash sha256:c692fb047e15883b575bd6710779dc2c5af8073f7cab460abd181fd3ddb29a18 \
    --control-plane

Worker-Knoten hinzufügen

Wenn die Steuerungsebene bereit ist, können Sie dem Cluster Worker-Knoten hinzufügen, um geplante Workloads auszuführen.

Wenn sich die Endpunktadresse nicht im DNS befindet, fügen Sie den Eintrag zu /etc/hosts.

hinzu
$ sudo vim /etc/hosts
192.168.20.7 k8s.citizix.local

Der angegebene Join-Befehl wird verwendet, um einen Worker-Knoten zum Cluster hinzuzufügen.

kubeadm join k8s-cluster.computingforgeeks.com:6443 \
  --token sr4l2l.2kvot0pfalh5o4ik \
  --discovery-token-ca-cert-hash sha256:c692fb047e15883b575bd6710779dc2c5af8073f7cab460abd181fd3ddb29a18

Führen Sie den folgenden Befehl auf der Steuerungsebene aus, um zu sehen, ob der Knoten dem Cluster beigetreten ist.

kubectl get nodes

Anwendung im Cluster bereitstellen


Ubuntu
  1. Wie richte ich einen MongoDB-Cluster mit 3 Knoten mit Ubuntu 16 ein?

  2. So richten Sie den MariaDB Galera-Cluster unter Ubuntu 20.04 ein

  3. Kubernetes-Cluster mit Rancher einrichten

  4. Verwenden Sie Ubuntu mit einem Zwei-Bildschirm-Setup?

  5. So installieren Sie VSFTP unter Ubuntu 20.04

So richten Sie ein VPN unter Ubuntu ein

So installieren Sie Kubernetes auf Ubuntu 18.04 LTS

So installieren Sie Kubernetes auf Ubuntu 20.04 LTS

So richten Sie Rsyslog unter Ubuntu 20.04 LTS ein

So installieren Sie Kubernetes auf Ubuntu 18.04 LTS

So installieren Sie Kubernetes auf Ubuntu 18.04 Bionic Beaver