ClusterIP

ClusterIP

ClusterIP-Services sind die einfachste und gebräuchlichste Form. Sie erhalten vom Kubernetes-Control-Plane eine interne IP aus dem konfigurierten Service-CIDR zugewiesen und sind nur innerhalb des Clusters erreichbar. Standardmäßig wird jeder Service ohne explizite Typangabe als ClusterIP-Service erstellt.

Der ClusterIP-Service eignet sich für die interne Kommunikation von Microservices. Beispielsweise könnten Frontend-Pods einen Backend-Service über dessen ClusterIP ansprechen. Von außerhalb des Clusters ist diese IP jedoch nicht erreichbar, was ein gewisses Maß an Sicherheit bietet (Isolation der internen Services). Will man einen ClusterIP-Service von außen zugänglich machen, nutzt man in der Regel einen Ingress oder einen höheren Service-Typ (oder man ändert den Typ nachträglich).

YAML-Beispiel für einen ClusterIP-Service (Standardtyp):

apiVersion: v1
kind: Service
metadata:
  name: my-internal-service
  namespace: demo
spec:
  selector:
    app: demo-app
  ports:
    - name: http          # Port name (useful if multiple ports)
      protocol: TCP
      port: 80            # Service port (cluster-internal)
      targetPort: 8080    # Container port in Pods
   # type: ClusterIP      # Default type (not required to specify explicitly)

Erläuterung: Dieser Service routet Cluster-intern Port 80 auf Port 8080 der Pods mit Label app=demo-app. Es wird keine type-Angabe gemacht, daher wird ClusterIP angenommen. Kubernetes weist automatisch eine Cluster-IP zu und trägt sie in .spec.clusterIP ein. Dieser Service wäre nur innerhalb des Kubernetes-Netzwerks erreichbar (andere Pods oder Knoten können my-internal-service.demo.svc.cluster.local:80 ansprechen).

Die Kommentare sind geschlossen.