Sobes.tech
Middle

Môže aplikácia z jedného menného priestoru vidieť aplikáciu z iného menného priestoru v rámci klastru?

sobes.tech AI

Odpoveď od AI

Áno, aplikácie v rôznych namespace-och môžu vidieť jedna druhú v rámci klastru.

V Kubernetes sú namespace logické izolácie, ktoré pomáhajú organizovať zdroje. Nie sú to sieťové izolácie štandardne.

Interakcia medzi namespace-ami je možná cez DNS služby Kubernetes.

Aplikácia v namespace-a môže pristupovať ku službe s názvom my-service v namespace-b pomocou jej úplného doménového mena (FQDN):

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

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

Tiež je možné použiť skrátené meno, ak je DNS v klastre správne nakonfigurované, ale FQDN je vždy spoľahlivejší pre komunikáciu medzi namespace-ami.

# Príklad služby v namespace-b
apiVersion: v1
kind: Service
metadata:
  name: my-service # Názov služby
  namespace: namespace-b # Namespace služby
spec:
  selector:
    app: my-app # Selektor pre pod, na ktorý sa služba odkazuje
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
# Príklad Pod-u v namespace-a, ktorý pristupuje ku službe 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 inom namespace

Je dôležité poznamenať, že politiky siete (Network Policies) môžu byť použité na obmedzenie interakcie medzi namespace-ami. Vo výchozom nastavení, ak takéto politiky nie sú prítomné, je interakcia povolená.

Politiky siete definujú skupiny podov, ktoré môžu medzi sebou komunikovať, na základe ich namespace-ov a štítkov.