Kubernetes stellt die Unterstützung für Docker ein. Jetzt wird sich all die harte Arbeit, die Sie in das Lernen gesteckt haben, sehr ändern. Die Verwendung von Kubernetes wird von Anfang an nicht dieselbe sein.
Ich spreche über die Installation des Container-Management-Tools selbst. Sie können Kubernetes natürlich nicht mehr wie früher bereitstellen - mit Docker als Laufzeit.
Gemeinsam werden wir nun versuchen, Kubernetes auf Ubuntu Server 20.04 ohne Docker zu installieren.
Was brauchen Sie
- Benutzer mit Sudo-Berechtigungen
- Ubuntu Server 20.04-Instanz (diese dient als Controller - Sie benötigen andere Instanzen, um als Knoten ausgeführt zu werden, aber ich werde dies nur auf dem Controller demonstrieren, da das Setup auf allen Computern gleich ist.)
So installieren Sie die Containerd-Laufzeit
Als erstes installieren wir die Containerd-Laufzeit, die Docker ersetzt. Melden Sie sich bei Ihrer Ubuntu Server-Instanz an und aktualisieren Sie apt mit dem folgenden Befehl:
sudo apt-get update
Danach müssen Sie das Update mit dem folgenden Befehl starten:
sudo apt-get upgrade -y
Wenn der Kernel aktualisiert wird, müssen Sie den Server neu starten (es sei denn, Sie haben Live Patch installiert und laufen).
Installieren Sie Containerd mit dem folgenden Befehl:
sudo apt-get install containerd -y
Konfigurieren Sie Containerd und starten Sie den Dienst mit den folgenden Befehlen:
sudo mkdir -p /etc/containerd sudo su - containerd config default /etc/containerd/config.toml
So installieren Sie Kubernetes
Als nächstes werden wir Kubernetes installieren. Zuerst müssen Sie den GPG-Schlüssel des Repositorys mit dem folgenden Befehl hinzufügen:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
Fügen Sie das Kubernetes-Repository mit dem folgenden Befehl hinzu:
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Jetzt können Sie alle erforderlichen Kubernetes-Komponenten mit dem folgenden Befehl installieren:
sudo apt-get install kubeadm kubelet kubectl –y
So lösen Sie mehrere Containerd-Probleme
Hier wird es etwas knifflig. Docker hat viele interne Probleme gelöst. Wenn Sie zu Containerd gehen, müssen Sie einige manuelle Konfigurationsänderungen vornehmen.
Die erste Änderung besteht darin, eine Zeile zu /etc/sysctl.conf hinzuzufügen. Öffnen Sie die Datei mit dem Befehl:
sudo nano /etc/sysctl.conf
Fügen Sie bei geöffneter Datei Folgendes hinzu:
net.bridge.bridge-nf-call-iptables = 1
Speichern und schließen Sie die Datei.
Geben Sie dann die folgenden Befehle ein:
sudo -s sudo echo '1' > /proc/sys/net/ipv4/ip_forward exit
Laden Sie die Konfigurationen mit dem folgenden Befehl neu:
sudo sysctl --system
Sie müssen auch einige erforderliche Module mit den folgenden Befehlen laden:
sudo modprobe overlay sudo modprobe br_netfilter
Sobald Sie sich darum gekümmert haben, können Sie Kubernetes initialisieren.
So schließen Sie das Setup ab
Sie müssen alle Ihre Hosts in / etc / hosts auflisten. Stellen Sie sicher, dass die Anzeige die folgende Form hat:
IP Address hostname
Der nächste Schritt besteht darin, den Hostnamen Ihres Controllers (stellen Sie sicher, dass er mit dem in / etc / hosts verwendeten Hostnamen übereinstimmt) mit dem folgenden Befehl festzulegen:
sudo hostnamectl set-hostname HOSTNAME
Wobei HOSTNAME der Hostname ist, den Sie verwenden möchten.
Deaktivieren Sie das Austauschen, indem Sie die fstab-Datei zum Bearbeiten mit dem folgenden Befehl öffnen:
sudo nano /etc/fstab
Kommentieren Sie in dieser Datei den Eintrag aus, indem Sie am Anfang der Zeile ein # hinzufügen:
/swap.img
Diese Zeile beginnt nun mit:
# / swap.img
Speichern und schließen Sie die Datei.
Deaktivieren Sie den Austausch mit dem Befehl:
sudo swapoff -a
Extrahieren Sie die erforderlichen Container mit dem Befehl:
sudo kubeadm config images pull
Initialisieren Sie Kubernetes auf dem Controller mit dem folgenden Befehl:
sudo kubeadm init --pod-network-cidr=IPADDRESS/24
Wobei IPADDRESS die IP-Adresse Ihres Controllers ist.
Sie kehren schließlich zu dem Befehl zurück, den Sie auf Ihren Knoten ausführen müssen, damit diese eine Verbindung zum Cluster herstellen können. Kopieren Sie diesen Befehl.
Bevor Sie die Knoten mit dem Cluster verbinden können, müssen Sie sich um einige weitere Bits im Cluster kümmern.
Erstellen Sie auf dem Controller das Clusterverzeichnis mit dem folgenden Befehl:
mkdir -p $ HOME / .kube
Kopieren Sie die Konfigurationsdatei mit dem folgenden Befehl in dieses Verzeichnis:
sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config
Geben Sie der Konfigurationsdatei mit dem folgenden Befehl die entsprechenden Berechtigungen:
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Stellen Sie mit dem folgenden Befehl ein Containernetzwerk (in diesem Fall verwenden wir Weave-Net) im Cluster bereit:
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
Sie können jetzt auf jedem Knoten einen Verbindungsbefehl ausführen, um den Cluster herunterzufahren.
Der Prozess ist nicht mehr so einfach wie früher. Hoffentlich wird die Bereitstellung eines Kubernetes-Clusters in Zukunft so einfach sein wie die Verwendung von Docker.