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.