User Tools

Site Tools


container:kubernetes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
container:kubernetes [2020/11/01 21:18] stonecontainer: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 
-<code> 
-apt update 
-apt dist-upgrade -y 
-</code> 
-\\ 
- 
-==== Docker Runtime installieren ==== 
-<code> 
-Auf allen Nodes: 
- 
-apt install -y docker.io 
-systemctl enable docker.service --now 
-systemctl status docker 
-docker --version 
-</code> 
-\\ 
- 
-==== 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 
-<code> 
-Auf allen Nodes: 
-swapoff -a 
-vim /etc/fstab 
-Swap auskommentieren 
-</code> 
-\\ 
- 
-Ich hatte bei Ubuntu 20.04 nach einem Reboot oftmal trotzdem Swap gemountet. Daher habe ich die Partiton einfach überschrieben 
-<code> 
-dd if=/dev/zero of=/dev/sdX3 bs=1048576 count=10 oflag=direct status=progress 
-</code> 
-\\ 
- 
-==== IP Forwarding aktivieren ==== 
-Damit Traffic durch die Container geroutet werden kann 
-<code> 
-Auf alle Nodes:  
-vim /etc/sysctl.conf 
-net.ipv4.ip_forward = 1 
-</code> 
-Diese Stelle gibt es normal schon und muss nur auskommentiert werden 
- 
-<code> 
-sysctl -p 
-</code> 
-\\ 
- 
-==== Installation von Kubernetes via Google Repo ==== 
-Wir verwenden hier ein Repo für Xenial (Ubuntu 16.04) da es kein neueres Repo gibt aktuell 
- 
-<code> 
-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 
-</code> 
-\\ 
- 
-==== Erstellen eines Clusters ==== 
-<code> 
-Auf der Master Node: 
-kubeadm init 
-</code> 
- 
-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!!! 
- 
-<code> 
-Auf den Worker: 
-kubeadm join 192.168.88.121:6443 --token 78c4by.cs8u65dcvxxxxxxx \ 
-    --discovery-token-ca-cert-hash sha256:3818424273aac366a6faa5b4b417158227a497xxxxxxxxxxxxxxxxxx 
-</code> 
-\\ 
- 
-Status auf dem Cluster Checken 
-<code> 
-kubectl get nodes 
-</code> 
-\\ 
- 
-==== Cluster Netzwerk erstellen ==== 
-Es gibt dafür einen ganzen Haufen Möglichkeiten\\ 
-[[https://kubernetes.io/docs/concepts/cluster-administration/addons/|https://kubernetes.io/docs/concepts/cluster-administration/addons/]] 
-\\ 
-Ich habe mich hier für Calico entschieden. 
-<code> 
-Auf dem Master 
-kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml 
-</code> 
-\\ 
- 
-Nach 1-2 Minuten sollte der Status der Worker auf "Ready" gehen 
-<code> 
-Auf dem Master 
-kubectl get nodes 
-</code> 
-\\ 
- 
-Auch die Container sollten alle laufen 
-<code> 
-Auf dem Master 
-kubectl get pods --all-namespaces 
-</code> 
-\\ 
-==== Bash autocompletion für Kubernetes ==== 
- 
-<code> 
-echo 'source <(kubectl completion bash)' >> ~/.bashrc 
-source .bashrc 
-</code> 
-\\ 
-==== Starten eines Testcontainers ==== 
-<code> 
-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 
-</code> 
-\\ 
- 
-===== CLI ===== 
-Sammlung von CLI Befehlen 
-\\ 
- 
-==== Cluster Befehle ==== 
- 
-<code> 
-kubectl version 
-kubectl cluster-info 
-</code> 
-\\ 
- 
-==== Node Befehle ==== 
-<code> 
-kubectl describe nodes <podname> 
-kubectl describe pods <podname> 
-</code> 
-\\ 
- 
-==== Pod Befehle ==== 
-<code> 
-kubectl get pods 
-kubectl get pods -o wide 
-kubectl get pods --all-namespaces 
-kubectl get pods --all-namespaces -o jsonpath="{..image}" | tr -s '[[:space:]]' '\n' | sort | uniq -c 
-kubectl describe pod/nginx-server -n default 
-kubectl describe pods nginx-server 
-kubectl exec nginx-server -- cat /etc/hostname 
-kubectl exec -ti nginx-server -- /bin/bash 
-kubectl logs nginx-server 
-kubectl logs nginx-server -f 
-</code> 
-\\ 
- 
-==== Service Befehle ==== 
- 
-<code> 
-Service Befehle 
-kubectl get service 
-kubectl get service -o wide 
-kubectl get service <service> 
- 
-kubectl delete service <service> 
-</code> 
- 
- 
  
container/kubernetes.1604265497.txt.gz · Last modified: by stone