Название: K8s Applications mit MicroK8S auf Raspberry PI
Автор: Alfred Sabitzer
Издательство: Bookwire
Жанр: Математика
isbn: 9783742770134
isbn:
#
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 СКАЧАТЬ