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.