Sobes.tech
Middle

Kann eine Anwendung aus einem Namespace eine Anwendung aus einem anderen Namespace im Cluster sehen?

sobes.tech KI

Antwort von AI

Ja, Anwendungen in verschiedenen Namespaces können innerhalb des Clusters miteinander sehen.

In Kubernetes sind Namespaces logische Isolierungen, die bei der Organisation der Ressourcen helfen. Sie sind standardmäßig keine Netzwerktrennung.

Die Interaktion zwischen Namespaces ist über DNS-Dienste von Kubernetes möglich.

Eine Anwendung in namespace-a kann auf einen Dienst namens my-service in namespace-b zugreifen, indem sie seinen vollqualifizierten Domänennamen (FQDN) verwendet:

<Dienstname>.<Namespace-Name>.svc.cluster.local

Beispiel: my-service.namespace-b.svc.cluster.local

Es ist auch möglich, einen verkürzten Namen zu verwenden, wenn das DNS im Cluster entsprechend konfiguriert ist, aber der FQDN ist immer zuverlässiger für die Interaktion zwischen Namespaces.

# Beispiel Service in namespace-b
apiVersion: v1
kind: Service
metadata:
  name: my-service # Name des Dienstes
  namespace: namespace-b # Namespace des Dienstes
spec:
  selector:
    app: my-app # Selektor für die Pods, die vom Dienst angesprochen werden
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
# Beispiel Pod in namespace-a, der auf einen Dienst in namespace-b zugreift
apiVersion: v1
kind: Pod
metadata:
  name: consumer-pod
  namespace: namespace-a # Namespace des konsumierenden Pods
spec:
  containers:
  - name: consumer-container
    image: my-consumer-image
    command: ["curl", "my-service.namespace-b.svc.cluster.local"] # Adresse des Dienstes in einem anderen Namespace

Wichtig ist, dass Netzwerk-Policies (Netzwerk-Richtlinien) verwendet werden können, um die Interaktion zwischen Namespaces einzuschränken. Standardmäßig ist die Interaktion erlaubt, sofern keine solchen Richtlinien vorhanden sind.

Netzwerk-Policies definieren Gruppen von Pods, die miteinander interagieren dürfen, basierend auf ihren Namespaces und Labels.