In dieser Card geht es um Netzwerke in Kubernetes. Schau noch einmal kurz auf Netzwerke zurück und schau dir die Ziele dort an, ob du noch fit in Netzwerkthemen bist. Wichtig ist auch, dass du die Netzwerkthemen bezüglich der Namespaces aus Funktionsweise von Containern verstanden hast.
Du wirst feststellen, dass die Komplexität relativ hoch ist. Das ist der Grund, warum Netzwerkplugins das Setup automatisieren. Wenn du das selbst bauen müsstest, wärest du einige Zeit beschäftigt.
Ziele
- Was ist
CNI
? - Wofür wird ein Networking Plugin benötigt?
- Du verstehst wie
Calico
die Kommunikation von Pods/Containern auf unterschiedlichen Worker Nodes ermöglicht - Warum macht man nicht einfach NAT?
- Du kannst
VXLAN
erklären - Was ist bei der Wahl eines Netzwerkplugins zu beachten? Was sind die Vorteile und Nachteile von Layer3 Routing und
VXLAN
? - Du weißt wie du unterschiedliche Netzwerkplugins/Netzwerke am gleichen Pod verwenden kannst (
Multus
) - Du verstehst die Notwendigkeit eines Kubernetes
Service
- Du kannst erklären wie der
Service
funktioniert - Wie funktioniert die DNS Auflösung von
Service
s? - Du weißt wie DNS Namen in anderen
Namespaces
aufgelöst werden können - Was macht die
ndots
Konfiguration in der/etc/resolv.conf
? - Wie wird Traffic mit einem
Service
zu den Pods gerouted?- Warum funktioniert hier kein ICMP Traffic?
- Du kennst die unterschiedlichen
Service
types von Kubernetes.- Wie unterscheidet sich der
NodePort
Service vonClusterIP
?
- Wie unterscheidet sich der
- Was ist ein
Ingress
? - Was ist ein
Ingress controller
? - Du verstehst wie der Nginx Ingress funktioniert.
- Wenn ich jetzt mit Nginx Ingress starte, kann ich einfach auf einen anderen Controller wechseln?
Inhalte
- Kapitel 8 und 9 aus "The Book of Kubernetes" von Alan Hohn
- VXLAN explained Show archive.org snapshot
- VXLAN & Linux Show archive.org snapshot
Aufgaben
- Visualisiere wie bei Calico Netzwerktraffic von Pods zwischen Nodes geroutet wird. Schreibe dafür auch exemplarisch Route Tables in deiner Grafik auf.
- Visualisiere wie bei WeaveNet Netzwerktraffic von Pods zwischen Nodes geroutet wird. Dabei musst du darauf achten, dass zusätzliche Layer ersichtlich sind.
- Kopiere deine Calico Grafik und füge
Service
undIngress
Ressourcen mit ein. - Besprich die
Service
Ressource aus Anhang A mit deinem Mentor. - Besprich die
Ingress
Ressource aus Anhang B mit deinem Mentor.
Anhang A
---
kind: Service
apiVersion: v1
metadata:
name: nginx
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
Anhang B
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web01
spec:
rules:
- host: web01
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80
Posted by Claus-Theodor Riegg to DevOps Curriculum (2023-01-13 16:15)