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.
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
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