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