Sobes.tech
Middle

Un'applicazione di uno spazio dei nomi può vedere un'applicazione di un altro spazio dei nomi all'interno del cluster?

sobes.tech AI

Risposta dell'AI

Sì, le applicazioni in diversi namespace possono vedersi tra loro all'interno del cluster.

In Kubernetes, gli namespace sono isolamenti logici che aiutano a organizzare le risorse. Non sono un isolamento di rete di default.

L'interazione tra namespace è possibile tramite i servizi DNS di Kubernetes.

Un'applicazione in namespace-a può accedere a un servizio chiamato my-service in namespace-b usando il suo nome di dominio completo (FQDN):

<nome-del-servizio>.<nome-del-namespace>.svc.cluster.local

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

È anche possibile usare un nome abbreviato se il DNS nel cluster è configurato correttamente, ma il FQDN è sempre più affidabile per l'interazione tra namespace.

# Esempio di Service in namespace-b
apiVersion: v1
kind: Service
metadata:
  name: my-service # Nome del servizio
  namespace: namespace-b # Namespace del servizio
spec:
  selector:
    app: my-app # Selettore per i pod a cui si rivolge il servizio
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
# Esempio di Pod in namespace-a, che accede a un servizio in namespace-b
apiVersion: v1
kind: Pod
metadata:
  name: consumer-pod
  namespace: namespace-a # Namespace del pod consumatore
spec:
  containers:
  - name: consumer-container
    image: my-consumer-image
    command: ["curl", "my-service.namespace-b.svc.cluster.local"] # Indirizzo del servizio in un altro namespace

È importante notare che le politiche di rete (Network Policies) possono essere usate per limitare l'interazione tra namespace. Per impostazione predefinita, se non ci sono politiche, l'interazione è consentita.

Le politiche di rete definiscono gruppi di pod che possono interagire tra loro, in base ai loro namespace e alle etichette.