K8s Applications mit MicroK8S auf Raspberry PI. Alfred Sabitzer

Читать онлайн.
Название K8s Applications mit MicroK8S auf Raspberry PI
Автор произведения Alfred Sabitzer
Жанр Математика
Серия
Издательство Математика
Год выпуска 0
isbn 9783742770134



Скачать книгу

</p> </td><td width="25%" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"><p> Pfad:/<br>FSTYPE:<br>Total disk space: 58.3 GB<br>Free disk space: 46.1 GB<br>Used disk space: 9.7 GB<br>Used GB Prozent:17.4<br>Used Inodes:176202<br>Used Inodes Prozent:4.7 </p> </td> <td width="25%" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"><p> Hostname: getinfo-6c84cff999-mtf5v<br>OS: linux<br>Platform: alpine<br>Host ID(uuid): c1e70216-8eeb-4ca0-ac87-cf090dcc2c1f<br>Uptime (sec): 5085<br>Number of processes running: 1</p> </td> <td width="25%" style="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0.1cm"><p> OS : linux<br>Total memory: 7.6 GB<br>Free memory: 3.1 GB<br>Used memory: 2.0 GB<br>Percentage used memory: 26.48</p> </td> </tr> </table><p style="margin-bottom: 0cm; line-height: 100%"><br/></p><p style="margin-bottom: 0cm; line-height: 100%">Es ist <span style="background: #c0c0c0"><sdfield type=DATETIME sdval="44476,6908896088" sdnum="3079;3079;T. MMMM JJJJ">2021-10-15 20:00:26 Friday</sdf

      alfred@pc1:~$

      Sieht ganz gut aus:) Auch der Logoutput ist interessant:

      alfred@pc1:~$ kubectl logs getinfo-6c84cff999-mtf5v

      2021/10/15 19:58:40 Main Started

      2021/10/15 20:00:26 hello.html

      alfred@pc1:~$

      Um den Output richtig zu sehen, ändere ich zu Testzwecken den Typ des Services auf einen NodePort um den Service von außen erreichen zu können.

      alfred@pc1:~$ kubectl edit service getinfo-service

      service/getinfo-service edited

      alfred@pc1:~$

      alfred@pc1:~$ kubectl get service

      NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

      kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 67d

      webserver-slainte ClusterIP 10.152.183.125 <none> 443/TCP 67d

      getinfo-service NodePort 10.152.183.43 <none> 8080:32304/TCP 19m

      alfred@pc1:~$

      Der Output aus dem inneren des Pods sieht am Browser auch gut aus.

      OEBPS/images/image0026.jpg Abbildung 24: GetInfo Anzeige aus dem Pod

      Somit haben wir einen richtigen Service im Kubernetes-Cluster laufen. Wir kontrollieren den Pod noch von innen.

      alfred@pc1:~$ kubectl exec getinfo-6c84cff999-mtf5v -it -- /bin/sh

      /app # df -h

      Filesystem Size Used Available Use% Mounted on

      overlay 58.3G 9.8G 46.1G 17% /

      tmpfs 64.0M 0 64.0M 0% /dev

      tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup

      /dev/mmcblk0p2 58.3G 9.8G 46.1G 17% /etc/localtime

      /dev/mmcblk0p2 58.3G 9.8G 46.1G 17% /etc/hosts

      /dev/mmcblk0p2 58.3G 9.8G 46.1G 17% /dev/termination-log

      /dev/mmcblk0p2 58.3G 9.8G 46.1G 17% /etc/hostname

      /dev/mmcblk0p2 58.3G 9.8G 46.1G 17% /etc/resolv.conf

      shm 64.0M 0 64.0M 0% /dev/shm

      tmpfs 3.8G 12.0K 3.8G 0% /run/secrets/kubernetes.io/serviceaccount

      tmpfs 64.0M 0 64.0M 0% /proc/kcore

      tmpfs 64.0M 0 64.0M 0% /proc/keys

      tmpfs 64.0M 0 64.0M 0% /proc/latency_stats

      tmpfs 64.0M 0 64.0M 0% /proc/timer_list

      tmpfs 64.0M 0 64.0M 0% /proc/sched_debug

      tmpfs 3.8G 0 3.8G 0% /proc/scsi

      tmpfs 3.8G 0 3.8G 0% /sys/firmware

      /app # date

      Sat Oct 16 09:31:11 CEST 2021

      /app # top -n 1

      Mem: 3902992K used, 4095752K free, 6520K shrd, 180504K buff, 1651716K cached

      CPU: 14% usr 11% sys 0% nic 16% idle 52% io 0% irq 4% sirq

      Load average: 5.06 3.25 2.38 3/984 1332

       PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND

       1 0 root S 692m 9% 0 0% /GetInfo

       1157 0 root S 1720 0% 3 0% /bin/sh

       1332 1157 root R 1652 0% 3 0% top -n 1

      /app # exit

      alfred@pc1:~$ kubectl top pod getinfo-6c84cff999-mtf5v --containers --use-protocol-buffers

      POD NAME CPU(cores) MEMORY(bytes)

      getinfo-6c84cff999-mtf5v getinfo 8m 5Mi

      alfred@pc1:~$

      Sieht ganz gut aus.

      Automatisierung der Entwicklungsumgebung

      Inspiration:

       https://elearning.wsldp.com/pcmagazine/install-liteide-on-ubuntu/ https://www.educative.io/blog/kubernetes-deployments-strategies

      https://collabnix.github.io/kubetools/

      Um die Entwicklung zu standardisieren und zu beschleunigen, legen wir eine gewisse Struktur an.

      Unter dem Home-Directory gibt es ein Verzeichnis für die Templates.

      .

      ├── make.sh

      ├── make_configmap.sh

      ├── make_configmap_dir.sh

      ├── make_docker.sh

      ├── make_yaml.sh

      ├── registry_delete.sh

      ├── registry_list.sh

      └── svn.sh

      Das svn.sh enthält in meinem Fall den Update der notwendigen Skripten für den Build und Deploy.

      alfred@monitoring:~/devtemplates$ cat svn.sh

      #!/bin/bash

      # Auschecken der Sourcen

      svn checkout https://monitoring.slainte.at/svn/slainte/trunk/k8s/dev ./

      alfred@monitoring:~/devtemplates$

      Das make.sh (kommt dann aus dem svn) enthält die notwendigen Befehle für das Bauen und ausrollen.

      #!/bin/bash