Labor 7: Bootstrapping des etcd-Clusters¶
Info
Dies ist ein Fork des ursprünglichen "Kubernetes the hard way", das ursprünglich von Kelsey Hightower geschrieben wurde (GitHub: kelseyhightower). Im Gegensatz zum Original, das auf Debian-ähnlichen Distributionen für die ARM64-Architektur basiert, zielt dieser Fork auf Enterprise-Linux-Distributionen wie Rocky Linux ab, das auf der x86_64-Architektur läuft.
Kubernetes-Komponenten sind zustandslos und speichern den Clusterstatus in etcd. In diesem Labor booten Sie einen etcd-Cluster mit drei Knoten und konfigurieren ihn für hohe Verfügbarkeit und sicheren Remotezugriff.
Voraussetzungen¶
Kopieren Sie etcd-Binärdateien und systemd-Unit-Dateien in die server-Instanz:
scp \
downloads/etcd-v3.4.36-linux-amd64.tar.gz \
units/etcd.service \
root@server:~/
Führen Sie die Befehle in den folgenden Abschnitten dieses Labors auf dem server-Computer aus. Melden Sie sich mit dem Befehl ssh beim server-Computer an. Beispiel:
ssh root@server
Bootstrapping eines etcd-Clusters¶
Installieren Sie die etcd-Binärdateien¶
Wenn Sie es noch nicht installiert haben, installieren Sie zuerst das Dienstprogramm tar mit dnf. Extrahieren und installieren Sie dann den etcd-Server und das etcdctl-Befehlszeilenprogramm:
dnf -y install tar
tar -xvf etcd-v3.4.36-linux-amd64.tar.gz
mv etcd-v3.4.36-linux-amd64/etcd* /usr/local/bin/
Konfigurieren Sie den etcd-Server¶
mkdir -p /etc/etcd /var/lib/etcd
chmod 700 /var/lib/etcd
cp ca.crt kube-api-server.key kube-api-server.crt \
/etc/etcd/
Jedes etcd-Mitglied muss innerhalb eines etcd-Clusters einen eindeutigen Namen haben. Legen Sie den etcd-Namen so fest, dass er mit dem Hostnamen der aktuellen Compute-Instanz übereinstimmt:
Erstellen Sie die etcd.service systemd-Unit-Datei:
mv etcd.service /etc/systemd/system/
chmod 644 /etc/systemd/system/etcd.service
Anmerkung
Obwohl es als sicherheitsschädlich gilt, müssen Sie SELinux möglicherweise vorübergehend oder dauerhaft deaktivieren, wenn beim Starten des Dienstes etcd systemd Probleme auftreten. Die Lösung besteht darin, die erforderlichen Richtliniendateien mit Tools wie ausearch, audit2allow und anderen zu untersuchen und zu erstellen.
Die folgenden Befehle entfernen SELinux und deaktivieren es:
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
Starten Sie den etcd-Server¶
systemctl daemon-reload
systemctl enable etcd
systemctl start etcd
Verifizierung¶
Listen Sie die etcd-Clustermitglieder auf:
etcdctl member list
6702b0a34e2cfd39, started, controller, http://127.0.0.1:2380, http://127.0.0.1:2379, false
Fortsetzung folgt: Bootstrapping the Kubernetes Control Plane
Author: Wale Soyinka
Contributors: Steven Spencer, Ganna Zhyrnova