Zum Hauptinhalt springen
Nicht aus der Schweiz? Besuchen Sie lehmanns.de

K8S Servicemesh Linkerd mit MicroK8S auf Raspberry PI (eBook)

eBook Download: EPUB
2022 | 1. Auflage
322 Seiten
neobooks Self-Publishing (Verlag)
978-3-7549-8554-0 (ISBN)

Lese- und Medienproben

K8S Servicemesh Linkerd mit MicroK8S auf Raspberry PI -  Alfred Sabitzer
Systemvoraussetzungen
5,99 inkl. MwSt
(CHF 5,85)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Dieses Buch beschreibt die einzelnen Schritte, die ich durchgeführt habe um mir meine eigene Cloud zu bauen. Hier werden aufbauend auf dem Hardwareaufbau im Buch 'Bau einer K8s bare-metal-cloud mit RaspberryPI' ISBN 978-3-7534-9851-4, sowie dem Buch 'K8s Applications mit MicroK8S auf Raspberry PI' ISBN 978-3-7427-7013-4 unterschiedliche Konzepte und Ideen beschrieben. Der Bau von Microservices, das Einrichten einer CI/CD-Strecke, kpt, kustomize, Servicemesh usw, wird anhand von Beispielen soweit möglich erklärt. Hier finden sich viele Codefragmente, die eine Idee geben können, wie jemand das bei sich zu Hause selbst tun könnte.

Alfred Sabitzer wurde 1963 geboren, und wohnt in der Steiermark. Im Rahmen seiner beruflichen Laufbahn durfte er an vielen technologisch interessanten und herausfordernden Projekten mithelfen (Online Transaktionssysteme, Aufbau eines Telekommunikationsnetzes, Einführung eines internationalen Data Warehouses ...). Im Moment ist er mit der Migration von MicroServices aus einem Docker-Swarm Umfeld in eine Kubernetes-Cloud beschäftigt.

Alfred Sabitzer wurde 1963 geboren, und wohnt in der Steiermark. Im Rahmen seiner beruflichen Laufbahn durfte er an vielen technologisch interessanten und herausfordernden Projekten mithelfen (Online Transaktionssysteme, Aufbau eines Telekommunikationsnetzes, Einführung eines internationalen Data Warehouses ...). Im Moment ist er mit der Migration von MicroServices aus einem Docker-Swarm Umfeld in eine Kubernetes-Cloud beschäftigt.

 

Initiales Aufsetzen des Clusters

Inspiration:

https://microk8s.io/tutorials

 

Um den Cluster richtig (und immer wieder) aufsetzen zu können habe ich alles in ansible und bash-skripten abgebildet. Nach dem Initialisieren der SD-Karten haben wir fünf unabhängige Linux-Rechner. Auf jedem einzelnen Loggen wir uns ein und führen das Skript MicroK8SLocalNode.sh aus.

 

#!/bin/bash

############################################################################################

#

# Initialisierung auf dem lokalen Node

# Auf jedem Node einloggen, und Setup durchführen.

# Das ist eine notwendige Vorbereitung bevor der MicroK8S-Cluster aufgesetzt werden kann.

#

# wget https://gitlab.com/Alfred-Sabitzer/mikrok8s/-/raw/main/ClusterSetup/MicroK8SLocalNode.sh

#

############################################################################################

IFS="

"

#

if [[ !                ${1} =~                (pc1|pc2|pc3|pc4|pc5) ]]; then

 echo "Usage ${0} (pc1|pc2|pc3|pc4|pc5) Passwort"

 exit 1

fi

Node=${1}

if [[ "${2} " == " " ]]; then

 echo "Usage ${0} (pc1|pc2|pc3|pc4|pc5) Passwort"

 exit 1

fi

PASS=${2}

#

#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

#

# Wir werden Root

#

iam=$(whoami)

if [[ ! "${iam} " == "root " ]]; then

 echo "Benutzer muß Root sein"

 exit 1

fi

#

# Standarduser Ubuntu updaten

#

#echo ${PASS} > /tmp/pass.txt

#echo ${PASS} >> /tmp/pass.txt

#cat /tmp/pass.txt |  passwd ubuntu

# Sudo einrichten

sed --in-place '/ALL=(ALL:ALL) NOPASSWD:ALL/d' /etc/sudoers

echo '%sudo  ALL=(ALL:ALL) NOPASSWD:ALL'  >> /etc/sudoers

#

# Anlegen der User

#

username=$(cat /etc/passwd | grep -i alfred)

if [[ ! "${username} " == " " ]]; then

 userdel -f -r alfred

fi

username=$(cat /etc/passwd | grep -i ansible)

if [[ ! "${username} " == " " ]]; then

 userdel -f -r ansible

fi

useradd  --comment "Systemadmin" -m --shell "/bin/bash" --password $(openssl passwd -crypt $PASS)  alfred

useradd  --comment "Systembenutzer für ansible" -m --shell "/bin/bash" --password  $(openssl passwd -crypt $PASS)  ansible

usermod -aG sudo alfred

usermod -aG sudo ansible

#

# ssh-keys

#

mkdir -p /home/alfred/.ssh/

curl -L https://gitlab.com/Alfred-Sabitzer/mikrok8s/-/raw/main/ClusterSetup/alfred_id_rsa.pub -o /home/alfred/.ssh/authorized_keys

chown -R alfred:alfred /home/alfred/.ssh

chown -R alfred:alfred /home/alfred/.ssh/authorized_keys

mkdir -p /home/ansible/.ssh/

curl -L https://gitlab.com/Alfred-Sabitzer/mikrok8s/-/raw/main/ClusterSetup/ansible_id_rsa.pub -o /home/ansible/.ssh/authorized_keys

chown -R ansible:ansible /home/ansible/.ssh

chown -R ansible:ansible /home/ansible/.ssh/authorized_keys

#

# Firmware-Settings

#

curl -L https://gitlab.com/Alfred-Sabitzer/mikrok8s/-/raw/main/ClusterSetup/cmdline.txt -o /boot/firmware/cmdline.txt

#

# Hostname

#

echo ${Node} > /etc/hostname

#

# Hosts-File

#

curl -L https://gitlab.com/Alfred-Sabitzer/mikrok8s/-/raw/main/ClusterSetup/hosts -o /etc/hosts

NODEIP=$(cat /etc/hosts | grep -i ${Node})

sf="  ${Node}"

NODEIP=${NODEIP%"$sf"*}

sed -i "s,#NODE#,${Node},g" /etc/hosts

#

# Network-Config

#

curl -L https://gitlab.com/Alfred-Sabitzer/mikrok8s/-/raw/main/ClusterSetup/99-disable-network-config.cfg -o /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

curl -L https://gitlab.com/Alfred-Sabitzer/mikrok8s/-/raw/main/ClusterSetup/50-cloud-init.yaml -o /etc/cloud/cloud.cfg.d/50-cloud-init.yaml

sed -i "s,#NODE#,${NODEIP},g" /etc/cloud/cloud.cfg.d/50-cloud-init.yaml

#

# NTP

#

curl -L https://gitlab.com/Alfred-Sabitzer/mikrok8s/-/raw/main/ClusterSetup/timesyncd.conf -o /etc/systemd/timesyncd.conf

systemctl stop systemd-timesyncd.service

systemctl enable systemd-timesyncd.service

systemctl start systemd-timesyncd.service

systemctl status systemd-timesyncd.service

#

# Startup-file für Modprobe

#

curl -L https://gitlab.com/Alfred-Sabitzer/mikrok8s/-/raw/main/ClusterSetup/modprobe.service -o /etc/systemd/system/modprobe.service

chown root:root /etc/systemd/system/modprobe.service

chmod 755 /etc/systemd/system/modprobe.service

systemctl stop modprobe.service

systemctl enable modprobe.service

systemctl start modprobe.service

systemctl status modprobe.service

#

# Lokale Rechte

#

 

#

# Jetzt ist der Node Startklar und kann mit ansible weiter konfiguriert werden

#

 

Wir werden Root (mit sudo su -l) und laden das Skript herunter.

 

wget https://gitlab.com/Alfred-Sabitzer/mikrok8s/-/raw/main/ClusterSetup/MicroK8SLocalNode.sh

chmod 755 ./MicroK8SLocalNode.sh

/MicroK8SLocalNode.sh pc1 MeinGeheimesPasswort

 

Dieses Skript konfiguriert den lokalen Node für die spätere Benutzung. Es werden zwei User eingerichtet (eben alfred und ansible). Für diese User werden auch die SSH-Keys eingespielt (sie können sich später ohne Passwort einloggen). Diese User sind Mitglied der sudo-Gruppe und können jeden Befehl ohne Passwort absetzen. Danach kann von der Management-Console am "Management-Rechner" das Skript ClusterSetup.sh aufgerufen werden. Dieses Skript erzeugt dann den MicroK8S-Cluster und ruft die einzelnen Kommandos in der richtigen Reihenfolge auf.

 

#!/bin/bash

############################################################################################

#

# Schnell-Installation microk8s

#

############################################################################################

#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

indir=$(dirname "$0")

#

# Vorraussetzung: Sauber installierte Nodes

# Ansible Account verfügbar

# Lokal vorhandenes Kubectl, kpt, kustomize, docker

#

${indir}/MicroK8SInit.sh

...

Erscheint lt. Verlag 5.12.2022
Verlagsort Berlin
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik
Schlagworte K8s • Kubernetes • Pi • raspberry
ISBN-10 3-7549-8554-X / 375498554X
ISBN-13 978-3-7549-8554-0 / 9783754985540
Informationen gemäß Produktsicherheitsverordnung (GPSR)
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Wasserzeichen)
E-Book Endkundennutzungsbedinungen des Verlages

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich

von Herbert Voß

eBook Download (2025)
Lehmanns Media (Verlag)
CHF 19,50
Management der Informationssicherheit und Vorbereitung auf die …

von Michael Brenner; Nils gentschen Felde; Wolfgang Hommel …

eBook Download (2024)
Carl Hanser Fachbuchverlag
CHF 68,35