Название: K8s Applications mit MicroK8S auf Raspberry PI
Автор: Alfred Sabitzer
Издательство: Bookwire
Жанр: Математика
isbn: 9783742770134
isbn:
alfred@bureau:~/.kube$ ls -lisa
insgesamt 480
1706699 4 drwxr-x--- 2 alfred alfred 4096 Nov 26 11:52 .
1311228 472 drwx-----T 52 alfred alfred 479232 Nov 26 11:52 ..
1705911 4 -rw-rw-r-- 1 alfred alfred 1874 Nov 26 11:51 config
alfred@bureau:~/.kube$
alfred@bureau:~/.kube$ kubectl config get-clusters
NAME
microk8s-cluster
alfred@bureau:~/.kube$
alfred@bureau:~/.kube$ kubectl cluster-info
Kubernetes control plane is running at https://192.168.0.201:16443
CoreDNS is running at https://192.168.0.201:16443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
alfred@bureau:~/.kube$
Nun funktioniert die Kommand-Line-Version. Wir installieren noch die bash-completion (das spart viel Tipparbeit).
alfred@bureau:~$ sudo apt-get install bash-completion
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
bash-completion ist schon die neueste Version (1:2.11-2ubuntu1).
bash-completion wurde als manuell installiert festgelegt.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
alfred@bureau:~$
alfred@bureau:~$ echo 'source <(kubectl completion bash)' >>~/.bashrc
alfred@bureau:~$ sudo su -l
root@bureau:~# kubectl completion bash >/etc/bash_completion.d/kubectl
root@bureau:~# exit
Abgemeldet
alfred@bureau:~$ echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
alfred@bureau:~$
Nun loggen wir uns neu ein. Somit funktioniert der Alias und der Zugriff auf den Cluster von außen.
alfred@bureau:~$ k get all
NAME READY STATUS RESTARTS AGE
pod/webserver-depl-bff4d4675-8v9nz 1/1 Running 2 (179m ago) 18h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 3d3h
service/webserver-svc ClusterIP 10.152.183.121 <none> 443/TCP,80/TCP 38h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/webserver-depl 1/1 1 1 38h
NAME DESIRED CURRENT READY AGE
replicaset.apps/webserver-depl-cf898f654 0 0 0 38h
replicaset.apps/webserver-depl-98f95758b 0 0 0 38h
replicaset.apps/webserver-depl-646544ddfd 0 0 0 37h
replicaset.apps/webserver-depl-dd8c746d6 0 0 0 37h
replicaset.apps/webserver-depl-86c6d7549f 0 0 0 37h
replicaset.apps/webserver-depl-b485f9695 0 0 0 19h
replicaset.apps/webserver-depl-c8599c9f5 0 0 0 19h
replicaset.apps/webserver-depl-bff4d4675 1 1 1 18h
alfred@bureau:~$
Jetzt können wir den Cluster in der Lens einrichten.
Es wird die config aus ${HOME}/.kube/config verwendet.
Nun ist Lens mit dem Cluster verbunden. Somit kann komfortabel vom eigenen Rechner aus gearbeitet werden.
Alternativ ist natürlich auch das Kubernet Dashboard als Webapplikation vorhanden.
Somit kann der Cluster bequem verwaltet und diagnostiziert werden.
Wie sicher das exponieren der API nach aussen ist, weiß ich noch nicht. Im Internet sollten der Cluster durch die Firewall geschützt sein (nur die Ingress-Ports sichtbar).
Generell sollte bei Einsatz im Internet der Firewall große Beachtung zuteil werden. Lokal zu Hause ist die Architektur etwas einfacher.
Hier ist nur der Ingress nach aussen sichtbar. Alles andere kann von aussen nicht erreicht werden. In Richtung Intranet ist alles erlaubt.
Einfacher WebServer mit Go
Inspiration:
https://golang.org/doc/articles/wiki/
https://www.freecodecamp.org/news/how-to-remove-images-in-docker/
https://docs.docker.com/engine/reference/commandline/image_pull/
Dieses Kapitel beschreibt СКАЧАТЬ