Alfred Sabitzer

K8s Applications mit MicroK8S auf Raspberry PI


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

metadata:

       labels:

       app: getinfo

       annotations:

       sidecar.istio.io/inject: "false"

       spec:

       containers:

       - name: getinfo

       image: docker.registry:5000/getinfo:20211015

       # resource limits

       resources:

       requests:

       memory: "24Mi"

       cpu: "500m" # half vcpu

       limits:

       memory: "64Mi"

       cpu: "1000m" # one vcpu

       env:

       # currently no env vars used for this container

       - name: FOO

       value: bar

       # check for lifetime liveness, restarts if dead

       livenessProbe:

       exec:

       command:

       - ls

       initialDelaySeconds: 5

       periodSeconds: 10

       # check for initial readyness

       readinessProbe:

       exec:

       command:

       - ls

       initialDelaySeconds: 3

       periodSeconds: 3

       # pod bekommt diesselbe Zeitzone wie der darunterliegende Node

       volumeMounts:

       - name: tz-local

       mountPath: /etc/localtime

       volumes:

       - name: tz-local

       hostPath: # abhängig vom darunterliegenden OS. Das hier ist linux.

       path: /etc/localtime

       restartPolicy: Always

       dnsPolicy: ClusterFirst

      ---

      apiVersion: v1

      kind: Service

      metadata:

       name: getinfo-service

       #namespace: default

       labels:

       app: getinfo

      spec:

       ports:

       # port=available to other containers

       - port: 8080

       name: hello

       # targetPort=exposed from inside container

       targetPort: 8080

       protocol: TCP

       selector:

       app: getinfo

      ---

      Dieses yaml wenden wir nun im Cluster an.

      alfred@pc1:~$ k apply -f getinfo.yaml

      deployment.apps/getinfo created

      service/getinfo-service created

      alfred@pc1:~$ kubectl get all

      NAME READY STATUS RESTARTS AGE

      pod/webserver-slainte-67494d5d7b-hj99r 1/1 Running 22 67d

      pod/getinfo-6c84cff999-mtf5v 1/1 Running 0 89s

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

      service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 67d

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

      service/getinfo-service ClusterIP 10.152.183.43 <none> 8080/TCP 6m12s

      NAME READY UP-TO-DATE AVAILABLE AGE

      deployment.apps/webserver-slainte 1/1 1 1 67d

      deployment.apps/getinfo 1/1 1 1 6m12s

      NAME DESIRED CURRENT READY AGE

      replicaset.apps/webserver-slainte-67494d5d7b 1 1 1 67d

      replicaset.apps/getinfo-6c84cff999 1 1 1 89s

      replicaset.apps/getinfo-6659cf7655 0 0 0 6m12s

      Die Anzeige im Dashboard zeigt uns auch einen gut laufenden Pod.

      OEBPS/images/image0025.jpg Abbildung 23: GetInfo Pod im Dashboard

      Nun schauen wir, was der Pod zurückliefert:

      alfred@pc1:~$ curl http://10.152.183.43:8080/view/hello

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title></title> <meta name="generator" content="LibreOffice 7.1.6.2 (Linux)"/> <meta name="author" content="Alfred Sabitzer"/> <meta name="created" content="2021-10-07T16:33:50.696105947"/> <meta name="changedby" content="Alfred Sabitzer"/> <meta name="changed" content="2021-10-07T16:36:08.816466992"/> <style type="text/css"> @page { size: 21cm 29.7cm; margin: 2cm } p { margin-bottom: 0.25cm; line-height: 115%; background: transparent } td p { orphans: 0; widows: 0; background: transparent } </style></head><body lang="de-AT" link="#000080" vlink="#800000" dir="ltr"><p style="margin-bottom: 0cm; line-height: 100%"><p style="margin-bottom: 0cm; line-height: 100%"><br/></p><table width="100%" cellpadding="4" cellspacing="0"> <col width="64*"/> <col width="64*"/> <col width="64*"/> <col width="64*"/> <tr valign="top"> <td width="25%" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"><p> OSENVIRONMENT</p> </td> <td width="25%" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"><p> DISKUSAGE</p> </td> <td width="25%" style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.1cm; padding-bottom: 0.1cm; padding-left: 0.1cm; padding-right: 0cm"><p> HOSTINFO</p></td> <td width="25%" style="border: 1px solid #000000; padding: 0.1cm"><p> MEMINFO</p> </td> </tr> <tr valign="top"> <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> PATH=>/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin<br>HOSTNAME=>getinfo-6c84cff999-mtf5v<br>GOLANG_VERSION=>1.16.9<br>GOPATH=>/go<br>FOO=>bar<br>WEBSERVER_SLAINTE_PORT_443_TCP=>tcp://10.152.183.125:443<br>GETINFO_SERVICE_SERVICE_PORT=>8080<br>GETINFO_SERVICE_PORT=>tcp://10.152.183.43:8080<br>GETINFO_SERVICE_PORT_8080_TCP=>tcp://10.152.183.43:8080<br>GETINFO_SERVICE_PORT_8080_TCP_PROTO=>tcp<br>GETINFO_SERVICE_PORT_8080_TCP_ADDR=>10.152.183.43<br>WEBSERVER_SLAINTE_SERVICE_PORT=>443<br>WEBSERVER_SLAINTE_PORT=>tcp://10.152.183.125:443<br>KUBERNETES_SERVICE_HOST=>10.152.183.1<br>KUBERNETES_PORT=>tcp://10.152.183.1:443<br>KUBERNETES_PORT_443_TCP=>tcp://10.152.183.1:443<br>KUBERNETES_PORT_443_TCP_PORT=>443<br>WEBSERVER_SLAINTE_SERVICE_HOST=>10.152.183.125<br>WEBSERVER_SLAINTE_SERVICE_PORT_HTTPS=>443<br>WEBSERVER_SLAINTE_PORT_443_TCP_PROTO=>tcp<br>KUBERNETES_SERVICE_PORT=>443<br>KUBERNETES_PORT_443_TCP_PROTO=>tcp<br>GETINFO_SERVICE_SERVICE_PORT_HELLO=>8080<br>GETINFO_SERVICE_PORT_8080_TCP_PORT=>8080<br>WEBSERVER_SLAINTE_PORT_443_TCP_PORT=>443<br>WEBSERVER_SLAINTE_PORT_443_TCP_ADDR=>10.152.183.125<br>KUBERNETES_SERVICE_PORT_HTTPS=>443<br>KUBERNETES_PORT_443_TCP_ADDR=>10.152.183.1<br>GETINFO_SERVICE_SERVICE_HOST=>10.152.183.43<br>HOME=>/root<br>