User Tools

Site Tools


container:kubernetes

This is an old revision of the document!


Kubernetes


Installation von Kubernetes

Die Installation von Kubernetes habe ich unter Ubuntu 20.04 durchgeführt.

OS Update

Das System sollte am aktuellen Stand sein

apt update
apt dist-upgrade -y


Docker Runtime installieren

Auf allen Nodes:

apt install -y docker.io
systemctl enable docker.service --now
systemctl status docker
docker --version


Swap deaktivieren

Das System darf kein Swap haben. Sonst lässt sich kein Cluster erstellen.
Am besten man installiert das System schon ohne Swap. Hat man dies nicht gemacht und es gibt Swap dann kann man dies deaktivieren

Auf allen Nodes:
swapoff -a
vim /etc/fstab
Swap auskommentieren


Ich hatte bei Ubuntu 20.04 nach einem Reboot oftmal trotzdem Swap gemountet. Daher habe ich die Partiton einfach überschrieben

dd if=/dev/zero of=/dev/sdX3 bs=1048576 count=10 oflag=direct status=progress


IP Forwarding aktivieren

Damit Traffic durch die Container geroutet werden kann

Auf alle Nodes: 
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

Diese Stelle gibt es normal schon und muss nur auskommentiert werden

sysctl -p


Installation von Kubernetes via Google Repo

Wir verwenden hier ein Repo für Xenial (Ubuntu 16.04) da es kein neueres Repo gibt aktuell

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


Erstellen eines Clusters

Auf der Master Node:
kubeadm init

Hier bekommt man auch gleich den Befehl in die Shell wie man Worker zum Cluster Joint.
Falls man diesen später nicht mehr weiß kann man sich dies Infos dazu holen.

Nodes zum Cluster hinzufügen

Beschrieben wie man zu dem Befehl kommt → todo!!!

Auf den Worker:
kubeadm join 192.168.88.121:6443 --token 78c4by.cs8u65dcvxxxxxxx \
    --discovery-token-ca-cert-hash sha256:3818424273aac366a6faa5b4b417158227a497xxxxxxxxxxxxxxxxxx


Status auf dem Cluster Checken

kubectl get nodes


Cluster Netzwerk erstellen

Es gibt dafür einen ganzen Haufen Möglichkeiten
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Ich habe mich hier für Calico entschieden.

Auf dem Master
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml


Nach 1-2 Minuten sollte der Status der Worker auf “Ready” gehen

Auf dem Master
kubectl get nodes


Auch die Container sollten alle laufen

Auf dem Master
kubectl get pods --all-namespaces


Bash autocompletion für Kubernetes

echo 'source <(kubectl completion bash)' >> ~/.bashrc
source .bashrc
container/kubernetes.1604260078.txt.gz · Last modified: by stone