container:kubernetes
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| container:kubernetes [2020/11/01 21:27] – stone | container:kubernetes [2020/11/06 11:47] (current) – removed stone | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== 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=/ | ||
| - | </ | ||
| - | \\ | ||
| - | |||
| - | ==== IP Forwarding aktivieren ==== | ||
| - | Damit Traffic durch die Container geroutet werden kann | ||
| - | < | ||
| - | Auf alle Nodes: | ||
| - | vim / | ||
| - | 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:// | ||
| - | apt-add-repository "deb http:// | ||
| - | 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 ==== | ||
| - | Wenn man den Output für den Join Befehl hat dann diesen nehmen. | ||
| - | |||
| - | < | ||
| - | Auf den Worker: | ||
| - | kubeadm join 192.168.88.121: | ||
| - | --discovery-token-ca-cert-hash sha256: | ||
| - | </ | ||
| - | \\ | ||
| - | |||
| - | Falls man diese nicht mehr hat kann man sich diesen wieder zusammen bauen | ||
| - | < | ||
| - | k8s@kube01: | ||
| - | kubeadm join 192.168.88.121: | ||
| - | </ | ||
| - | \\ | ||
| - | |||
| - | Status auf dem Cluster Checken | ||
| - | < | ||
| - | kubectl get nodes | ||
| - | </ | ||
| - | \\ | ||
| - | |||
| - | ==== Cluster Netzwerk erstellen ==== | ||
| - | Es gibt dafür einen ganzen Haufen Möglichkeiten\\ | ||
| - | [[https:// | ||
| - | \\ | ||
| - | Ich habe mich hier für Calico entschieden. | ||
| - | < | ||
| - | Auf dem Master | ||
| - | kubectl apply -f https:// | ||
| - | </ | ||
| - | \\ | ||
| - | |||
| - | Nach 1-2 Minuten sollte der Status der Worker auf " | ||
| - | < | ||
| - | 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 .bashrc | ||
| - | </ | ||
| - | \\ | ||
| - | ==== Starten eines Testcontainers ==== | ||
| - | < | ||
| - | Auf dem Master: | ||
| - | kubectl run --image=nginx nginx-server --port=80 | ||
| - | kubectl expose pod nginx-server --port 80 --type=NodePort | ||
| - | |||
| - | |||
| - | kubectl run http-web --image=httpd --port=80 | ||
| - | kubectl expose pod http-web --name=http-service --port=80 --type=NodePort | ||
| - | |||
| - | kubectl get pods -o wide | ||
| - | </ | ||
| - | \\ | ||
| - | |||
| - | ===== CLI ===== | ||
| - | Sammlung von CLI Befehlen | ||
| - | \\ | ||
| - | |||
| - | ==== Cluster Befehle ==== | ||
| - | |||
| - | < | ||
| - | kubectl version | ||
| - | kubectl cluster-info | ||
| - | </ | ||
| - | \\ | ||
| - | |||
| - | ==== Node Befehle ==== | ||
| - | < | ||
| - | kubectl describe nodes < | ||
| - | kubectl describe pods < | ||
| - | </ | ||
| - | \\ | ||
| - | |||
| - | ==== Pod Befehle ==== | ||
| - | < | ||
| - | kubectl get pods | ||
| - | kubectl get pods -o wide | ||
| - | kubectl get pods --all-namespaces | ||
| - | kubectl get pods --all-namespaces -o jsonpath=" | ||
| - | kubectl describe pod/ | ||
| - | kubectl describe pods nginx-server | ||
| - | kubectl exec nginx-server -- cat / | ||
| - | kubectl exec -ti nginx-server -- /bin/bash | ||
| - | kubectl logs nginx-server | ||
| - | kubectl logs nginx-server -f | ||
| - | </ | ||
| - | \\ | ||
| - | |||
| - | ==== Service Befehle ==== | ||
| - | |||
| - | < | ||
| - | Service Befehle | ||
| - | kubectl get service | ||
| - | kubectl get service -o wide | ||
| - | kubectl get service < | ||
| - | |||
| - | kubectl delete service < | ||
| - | </ | ||
| - | |||
| - | |||
container/kubernetes.1604266034.txt.gz · Last modified: by stone
