Einen Kubernetes Cluster unter Ubuntu erstellen
May 18, 2022 | Kategorie: tutorials | Thema: cloud

Kubernetes ist eine kostenlose Alternative zu Docker Swarm um einen Docker-Cluster zu automatisieren.

Zuerst ist wichtig das jeder Knoten ein Minimum von 2 GB Arbeitsspeicher sowie 2 CPU und eine statische IP verfügt. Ausserdem muss jeder Knoten über die gleiche /etc/hosts Datei verfügen in der alle Knoten aufgelistet sind. Swap muss auf allen Knoten deaktiviert sein da es unter Umständen die Isolierung beeinträchtigen kann.

Folgende Schritte auf allen Knoten ausführen

Zuerst das Swap deaktivieren

swapoff -a

TODO: Swap dauerhaft deaktivieren.

Der Befehl free -m sollte nun keinen verwendeten Auslagerungsspeicher mehr zeigen.

apt update && apt install apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
apt update && apt install -y kubelet kubeadm kubectl docker.io

Nun kann der Cluster initialisiert werden.

sudo kubeadm init --apiserver-advertise-address [master-node-ip] --pod-network-cidr=[internal pod network cidr]

Am Ende der Ausgabe des letzte Befehls werden weitere Schritte zum Anlegen der Konfiguration und die API Token zum Hinzufügen weiterer Worker-Nodes ausgegeben.

Man erstellt als regulärer Benutzer eine Konfiguration für kubectl.

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

Der Befehl zum Hinzufügen von Worker-Nodes wird im Format

kubeadm join [control-plane-host]:[control-plane-port] --token [token] --discovery-token-ca-cert-hash sha256:[hash]

ausgegeben.

Zuletzt fügen wir noch eine Networking API zu unserem Cluster hinzu.

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

Folgende Schritte auf allen Worker Nodes ausführen

Den Befehl zum Hinzufügen der Worker-Nodes welcher bei der Initialisierung des Clusters ausgegeben wurde wird nun auf jedem außer auf dem Master-Node ausgeführt.

kubeadm join [control-plane-host]:[control-plane-port] --token [token] --discovery-token-ca-cert-hash sha256:[hash]
Beitrag auf Github bearbeiten
Suche
Weiterlesen