505 Kubernetes Networking [1.5 PT]

Updated . Posted . Visible to the public.

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 Services?
  • 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 von ClusterIP?
  • 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

Aufgaben

  1. Visualisiere wie bei Calico Netzwerktraffic von Pods zwischen Nodes geroutet wird. Schreibe dafür auch exemplarisch Route Tables in deiner Grafik auf.
  2. Visualisiere wie bei WeaveNet Netzwerktraffic von Pods zwischen Nodes geroutet wird. Dabei musst du darauf achten, dass zusätzliche Layer ersichtlich sind.
  3. Kopiere deine Calico Grafik und füge Service und Ingress Ressourcen mit ein.
  4. Besprich die Service Ressource aus Anhang A mit deinem Mentor.
  5. 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
Claus-Theodor Riegg
Last edit
Ruben Aleman
License
Source code in this card is licensed under the MIT License.
Posted by Claus-Theodor Riegg to DevOps Curriculum (2023-01-13 16:15)