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ů.