Middle
Hoe zorg je voor toegang tot de cluster?
sobes.tech AI
Antwoord van AI
Toegang tot de binnenkant van een cluster (bijvoorbeeld Kubernetes) kan op verschillende manieren worden geregeld, afhankelijk van het doel van de toegang (gebruiker, applicatie, onderhoud).
Belangrijkste methoden:
- Ingress: Voor externe HTTP/HTTPS-toegang tot services in het cluster via een domeinnaam. Werkt op L7-niveau.
- NodePort: Opent een poort op alle knooppunten van het cluster, die het verkeer doorstuurt naar de juiste service. Eenvoudig, maar slecht schaalbaar en vereist kennis van IP-adressen van de knooppunten.
- LoadBalancer: Creëert een externe load balancer in de cloud (als het cluster in de cloud is), die het verkeer naar de service leidt. Heeft extra kosten.
- Port Forwarding: Tijdelijke methode voor debugging. Stuurt een poort van de lokale machine door naar een poort binnen een pod in het cluster.
- kubectl exec: Maakt het mogelijk om commando's uit te voeren binnen een draaiende container in een pod. Gebruikt voor interactieve toegang of eenmalige commando's.
- VPN of bastion server: Creëert een beveiligde tunnel of tussenhost voor toegang tot resources binnen het privé-netwerk van het cluster.
# Voorbeeld Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
# Voorbeeld kubectl port-forward
# Stuurt lokale poort 8080 door naar poort 80 van pod some-pod
kubectl port-forward some-pod 8080:80
De keuze van de methode hangt af van de specifieke gebruikssituatie, beveiligingsvereisten en infrastructuur van het cluster. Voor productieomgevingen is het aan te raden om Ingress en LoadBalancer te gebruiken voor toegang tot services. Voor beheer en debugging worden actief kubectl exec en port-forward gebruikt. Om de beveiliging van de toegang tot het interne netwerk van het cluster te waarborgen, worden vaak VPN's of bastion-servers ingezet.