K8s Applications mit MicroK8S auf Raspberry PI. Alfred Sabitzer
Чтение книги онлайн.

Читать онлайн книгу K8s Applications mit MicroK8S auf Raspberry PI - Alfred Sabitzer страница 4

Название: K8s Applications mit MicroK8S auf Raspberry PI

Автор: Alfred Sabitzer

Издательство: Bookwire

Жанр: Математика

Серия:

isbn: 9783742770134

isbn:

СКАЧАТЬ -m shell -a ${id}'/do_registry.sh ' > ${wd}'/do_registry.log'

      #

      cat <<EOF > ${wd}/do_nodes.sh

      #!/bin/bash

      #

      # \$Date: 2021-11-23 21:37:19 +0100 (Di, 23. Nov 2021) $

      # \$Revision: 1285 $

      # \$Author: alfred $

      # \$HeadURL: https://monitoring.slainte.at/svn/slainte/trunk/k8s/k8s/K13_registry.sh $

      # \$Id: K13_registry.sh 1285 2021-11-23 20:37:19Z alfred $

      #

      # Eintragen der Nodes in die hosts-Datei

      #

      #shopt -o -s errexit #—Terminates the shell script if a command returns an error code.

      shopt -o -s xtrace #—Displays each command before it’s executed.

      shopt -o -s nounset #-No Variables without definition

      sudo sed --in-place '/docker.registry/d' /etc/hosts

      microk8s kubectl -n container-registry get service registry -o yaml > ${id}/nodes-registry-svc.yaml

      ip=\$(cat ${id}/nodes-registry-svc.yaml | grep -i " ip: " | awk '{print \$3 }')

      text="\${ip} docker.registry"

      sudo sed -i "$ a \${text}" /etc/hosts

      #

      EOF

      #

      chmod 755 ${wd}/do_nodes.sh

      ansible pc -m shell -a ${id}'/do_nodes.sh '

      #

      # Und jetzt die Repository-Info

      #

      cat <<EOF > ${wd}/do_docker.sh

      #!/bin/bash

      #

      # \$Date: 2021-11-23 21:37:19 +0100 (Di, 23. Nov 2021) $

      # \$Revision: 1285 $

      # \$Author: alfred $

      # \$HeadURL: https://monitoring.slainte.at/svn/slainte/trunk/k8s/k8s/K13_registry.sh $

      # \$Id: K13_registry.sh 1285 2021-11-23 20:37:19Z alfred $

      #

      # Eintragen des Endpoints in die Docker-Registry

      #

      #shopt -o -s errexit #—Terminates the shell script if a command returns an error code.

      #shopt -o -s xtrace #—Displays each command before it’s executed.

      shopt -o -s nounset #-No Variables without definition

      FILENAME="/var/snap/microk8s/current/args/containerd-template.toml"

      sudo sed --in-place '/docker.registry:5000/d' \${FILENAME}

      text=' [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.registry:5000"]'

      echo "\${text}" | tee -a \${FILENAME}

      text=' endpoint = ["http://docker.registry:5000"]'

      echo "\${text}" | tee -a \${FILENAME}

      EOF

      #

      chmod 755 ${wd}/do_docker.sh

      ansible pc -m shell -a ${id}'/do_docker.sh '

      #

      # Und jetzt für den Docker selbst

      #

      cat <<EOF > ${wd}/do_pull.sh

      #!/bin/bash

      #

      # \$Date: 2021-11-23 21:37:19 +0100 (Di, 23. Nov 2021) $

      # \$Revision: 1285 $

      # \$Author: alfred $

      # \$HeadURL: https://monitoring.slainte.at/svn/slainte/trunk/k8s/k8s/K13_registry.sh $

      # \$Id: K13_registry.sh 1285 2021-11-23 20:37:19Z alfred $

      #

      # Konfiguration damit das docker-pull funktioniert

      #

      #shopt -o -s errexit #—Terminates the shell script if a command returns an error code.

      #shopt -o -s xtrace #—Displays each command before it’s executed.

      shopt -o -s nounset #-No Variables without definition

      sudo mkdir -p /etc/docker

      sudo rm -f /etc/docker/daemon.json

      tfile=\$(mktemp /tmp/daemon.XXXXXXXXX)

      sudo cat <<AllOver > \${tfile}

      {

       "insecure-registries" : ["docker.registry:5000"]

      }

      AllOver

      sudo cp -f \${tfile} /etc/docker/daemon.json

      sudo chmod 666 /etc/docker/daemon.json

      #

      EOF

      #

      chmod 755 ${wd}/do_pull.sh

      ansible pc -m shell -a ${id}'/do_pull.sh '

      ##

      ## Jetzt ist die Docker-Registry online und verfügbar

      ##

      Dieses Skript konfiguriert die Registry als LoadBalancer Service. Damit bekommt die Registry eine fixe IP-Adresse, die von aussen erreichbar ist. Somit können wir den Cluster ansprechen und sind nicht an einen bestimmten Node gebunden. Durch die Verwendung einer Clusterdisk (gesteuert durch Longhorn) ist diese Registry auch ausfallsicher. Der Service sieht dann so aus:

      alfred@pc1:~$ k -n container-registry get service

      NAME СКАЧАТЬ