Sobes.tech
Middle

Bir ad sahəsi tətbiqi, klaster daxilində başqa bir ad sahəsi tətbiqini görə bilərmi?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, müxtəlif ad alanlarındakı tətbiqlər klaster daxilində bir-birini görə bilər.

Kubernetes-də, ad alanları məntiqi izolyasiyalardır və resursların təşkili üçün kömək edir. Onlar şəbəkə izolyasiyası deyil.

Ad alanları arasında qarşılıqlı əlaqə Kubernetes DNS xidmətləri vasitəsilə mümkündür.

namespace-a içindəki tətbiq my-service adlı xidməti namespace-b içində tam domen adı (FQDN) ilə istifadə edə bilər:

<xidmət-adı>.<ad-ali-ismi>.svc.cluster.local

Nümunə: my-service.namespace-b.svc.cluster.local

Həmçinin, klasterdə DNS düzgün qurulubsa, qısaldılmış ad istifadə etmək mümkündür, lakin FQDN həmişə ad alanları arasında qarşılıqlı əlaqə üçün daha etibarlıdır.

# namespace-b-də xidmət nümunəsi
apiVersion: v1
kind: Service
metadata:
  name: my-service # Xidmətin adı
  namespace: namespace-b # Xidmətin ad alanı
spec:
  selector:
    app: my-app # Xidmətin yönəldiyi podlar üçün seçici
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
# namespace-a-də və namespace-b-də xidmətə müraciət edən Pod nümunəsi
apiVersion: v1
kind: Pod
metadata:
  name: consumer-pod
  namespace: namespace-a # İstifadəçi pod-unun ad alanı
spec:
  containers:
  - name: consumer-container
    image: my-consumer-image
    command: ["curl", "my-service.namespace-b.svc.cluster.local"] # Digər ad alanında xidmətin ünvanı

Qeyd etmək vacibdir ki, şəbəkə siyasətləri (Network Policies) istifadə edilə bilər, ad alanları arasında qarşılıqlı əlaqəni məhdudlaşdırmaq üçün. Standart olaraq, belə siyasətlər yoxdursa, qarşılıqlı əlaqə icazə verilir.

Şəbəkə siyasətləri pod qruplarını, onların ad alanları və etiketlərinə əsasən, bir-biri ilə qarşılıqlı əlaqə qurmağa imkan verir.