DevOps Fortgeschritten
Container Networking in Kubernetes¶
KubernetesNetworkingCNIIngress 6 Min. Lesezeit
Kubernetes-Netzwerkmodell. CNI-Plugins, Service-Typen, Ingress-Controller und DNS.
K8s-Netzwerkmodell¶
Jeder Pod hat eine eigene IP-Adresse. Grundregeln:
- Jeder Pod kann mit jedem anderen Pod kommunizieren (ohne NAT)
- Nodes können mit Pods kommunizieren (ohne NAT)
- Die IP, die ein Pod bei sich selbst sieht = die für andere sichtbare IP
CNI-Plugins¶
- Calico — BGP Routing, Network Policies, weit verbreitet
- Cilium — eBPF-basiert, hochleistungsfähig, erweiterte Network Policies
- Flannel — einfaches Overlay, geeignet für Einsteiger
- Weave — Mesh-Netzwerk, verschlüsselt
# Cilium Installation
helm install cilium cilium/cilium \
--namespace kube-system \
--set hubble.enabled=true \
--set hubble.relay.enabled=true \
--set hubble.ui.enabled=true
Service-Typen¶
# ClusterIP — intern (Standard)
apiVersion: v1
kind: Service
spec:
type: ClusterIP
selector:
app: api
ports:
- port: 80
targetPort: 8080
# NodePort — Zugriff über Port am Node
spec:
type: NodePort
ports:
- port: 80
nodePort: 30080
# LoadBalancer — Cloud LB
spec:
type: LoadBalancer
ports:
- port: 443
Ingress¶
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api-ingress
annotations:
cert-manager.io/cluster-issuer: letsencrypt
spec:
ingressClassName: nginx
tls:
- hosts: [api.example.com]
secretName: api-tls
rules:
- host: api.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: api-server
port:
number: 80
Zusammenfassung¶
K8s Networking ist ein flaches Modell mit Pod-zu-Pod-Kommunikation. Wählen Sie das CNI-Plugin nach Bedarf: Cilium für eBPF-Performance, Calico für Network Policies.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.