Kubernetes¶
mit Hilfe von - https://www.redhat.com/sysadmin/podman-inside-kubernetes - https://www.howtoforge.com/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/ Gedächtnisstütze für einen Testcluster mit - 1 Controller - 3 Workern - Rocky Linux 9 - Podman statt Docker, weil es überlegen ist - Netavark - containerd - IPv6-zentriert
Grundlagen – Objekttypen¶
- Pods Ein Container oder eine logische Gruppe von Containern
- Replica Sets Wie viele Pods soll es geben?
- Services Ein Dienst innerhalb des Kubernetes-Clusters
- Volumes Volumes für Pods
- Namensräume Logische Gruppen für DNS und Rechtedatrennung
- ConfigMaps und Secrets Umgebungsvariablen und Secrets
- Stateful Sets für zustandsbehaftete Anwendungen
- Daemon Sets Kubernetes Scheduler???
Grundlagen – Befehle¶
- Namensraum wechseln (hier: backend)
kubectl config set-context --current --namespace=backend
Allgemein¶
- DNS-Einträge für die Nodes anlegen oder Einträge in /etc/hosts vornehmen
- Hostnamen für die Nodes setzen, meine lauten
- pod-ctrl-3
- pod-worker-4
- pod-worker-5
- pod-worker-6
- Beispielbefehl
hostnamectl hostname pod-ctrl-3 --static - SELinux auf permissive setzen
- Kernel-Module und Parameter
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding = 1 EOF sudo sysctl --system cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter - Installation
- Konfiguration
SystemdCgroup = falsedurchSystemdCgroup = trueersetzen- containerd starten mit
sudo systemctl enable --now containerd - Kubeadm-Pakete installieren
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch enabled=1 gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg exclude=kubelet kubeadm kubectl EOF sudo dnf repolist sudo dnf makecache sudo dnf install kubelet kubeadm kubectl --disableexcludes=kubernetes sudo systemctl enable --now kubelet - Initialisierung
Nur Controller (Master)¶
- Firewall einrichten
sudo firewall-cmd --add-port=6443/tcp --permanent sudo firewall-cmd --add-port=2379-2380/tcp --permanent sudo firewall-cmd --add-port=10250/tcp --permanent sudo firewall-cmd --add-port=10259/tcp --permanent sudo firewall-cmd --add-port=10257/tcp --permanent sudo firewall-cmd --reload sudo firewall-cmd --list-all
Nur Worker¶
swapoff -asudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab- Firewall einrichten