Sobes.tech
Middle

Může aplikace z jednoho jmenného prostoru vidět aplikaci z jiného jmenného prostoru uvnitř clusteru?

sobes.tech AI

Odpověď od AI

Ano, aplikace v různých namespacech se mohou navzájem vidět uvnitř clusteru.

V Kubernetes jsou namespaces logické izolace, které pomáhají organizovat zdroje. Samy o sobě nejsou síťovou izolací.

Interakce mezi namespacemi je možná přes DNS služby Kubernetes.

Aplikace v namespace-a může přistupovat ke službě s názvem my-service v namespace-b pomocí jejího úplného doménového jména (FQDN):

<název-služby>.<název-namespace>.svc.cluster.local

Příklad: my-service.namespace-b.svc.cluster.local

Také je možné použít zkrácené jméno, pokud je DNS v clusteru správně nakonfigurováno, ale FQDN je vždy spolehlivější pro komunikaci mezi namespacemi.

# Příklad služby v namespace-b
apiVersion: v1
kind: Service
metadata:
  name: my-service # Název služby
  namespace: namespace-b # Namespace služby
spec:
  selector:
    app: my-app # Selektor pro pod, na který se služba odkazuje
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
# Příklad Podu v namespace-a, který přistupuje ke službě v namespace-b
apiVersion: v1
kind: Pod
metadata:
  name: consumer-pod
  namespace: namespace-a # Namespace konzumenta
spec:
  containers:
  - name: consumer-container
    image: my-consumer-image
    command: ["curl", "my-service.namespace-b.svc.cluster.local"] # Adresa služby v jiném namespace

Je důležité poznamenat, že politiky sítě (Network Policies) mohou být použity k omezování interakce mezi namespacemi. Ve výchozím nastavení, pokud takové politiky nejsou, je interakce povolena.

Politiky sítě definují skupiny podů, které mohou mezi sebou komunikovat, na základě jejich namespace a štítků.