Sobes.tech
Middle

Може ли апликација из једног простора имена да види апликацију из другог простора имена унутар кластера?

sobes.tech АИ

Одговор од АИ

Да, апликације у различитим namespace-има могу да виде једна другу унутар кластера.

У Kubernetes-у, namespace-и су логичке изолације које помажу у организовању ресурса. Они нису мрежна изолација по подразумевану.

Интеракција између namespace-ова је могућа преко DNS сервиса Kubernetes-а.

Апликација у namespace-a може приступити сервису под именом my-service у namespace-b користећи његово пуно доменско име (FQDN):

<име-сервиса>.<име-namespace-а>.svc.cluster.local

Пример: my-service.namespace-b.svc.cluster.local

Такође, може се користити скраћено име ако је DNS у кластеру правилно конфигурисан, али FQDN увек је поузданији за међусобну комуникацију namespace-ова.

# Пример сервиса у namespace-b
apiVersion: v1
kind: Service
metadata:
  name: my-service # Име сервиса
  namespace: namespace-b # Namespace сервиса
spec:
  selector:
    app: my-app # Селектор за подове на које се сервис односи
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
# Пример Pod-а у namespace-a, који приступа сервису у namespace-b
apiVersion: v1
kind: Pod
metadata:
  name: consumer-pod
  namespace: namespace-a # Namespace потрошача
spec:
  containers:
  - name: consumer-container
    image: my-consumer-image
    command: ["curl", "my-service.namespace-b.svc.cluster.local"] # Адреса сервиса у другом namespace-у

Важно је напоменути да се политике мреже (Network Policies) могу користити за ограничавање интеракције између namespace-ова. По подразумевану, ако такве политике нису присутне, интеракција је дозвољена.

Политике мреже дефинишу групе подова који могу да комуницирају међусобно, на основу њихових namespace-ова и етикета.