Sobes.tech
Middle

Une application d'un espace de noms peut-elle voir une application d'un autre espace de noms dans le cluster?

sobes.tech IA

Réponse de l'IA

Oui, les applications dans différents espaces de noms peuvent se voir mutuellement au sein du cluster.

Dans Kubernetes, les espaces de noms sont des isolations logiques qui aident à organiser les ressources. Ils ne constituent pas une isolation réseau par défaut.

L'interaction entre espaces de noms est possible via les services DNS de Kubernetes.

Une application dans namespace-a peut accéder à un service nommé my-service dans namespace-b en utilisant son nom de domaine complet (FQDN) :

<nom-du-service>.<nom-de-l-espacedenoms>.svc.cluster.local

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

Il est également possible d'utiliser un nom abrégé si le DNS du cluster est configuré en conséquence, mais le FQDN est toujours plus fiable pour l'interaction entre espaces de noms.

# Exemple de Service dans namespace-b
apiVersion: v1
kind: Service
metadata:
  name: my-service # Nom du service
  namespace: namespace-b # Espace de noms du service
spec:
  selector:
    app: my-app # Sélecteur pour les pods ciblés par le service
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
# Exemple de Pod dans namespace-a, accédant à un service dans namespace-b
apiVersion: v1
kind: Pod
metadata:
  name: consumer-pod
  namespace: namespace-a # Espace de noms du pod consommateur
spec:
  containers:
  - name: consumer-container
    image: my-consumer-image
    command: ["curl", "my-service.namespace-b.svc.cluster.local"] # Adresse du service dans un autre espace de noms

Il est important de noter que les politiques de réseau (Network Policies) peuvent être utilisées pour limiter l'interaction entre espaces de noms. Par défaut, si aucune politique n'est en place, l'interaction est autorisée.

Les politiques de réseau définissent des groupes de pods qui peuvent interagir entre eux, en fonction de leurs espaces de noms et de leurs étiquettes.