Sobes.tech
Intern

DevOps-da xpose əmri nə üçündür?

sobes.tech Süni İntellekt

AI-dan cavab

DevOps kontekstində, xüsusən konteynerlərlə (Docker, Kubernetes) işləyərkən, expose əmri, konteynerdən kənara çıxarıla biləcək portları göstərmək üçün istifadə olunur.

Dockerfile halında:

# Konteyner içində tətbiqin 8080 portunda dinlədiyini göstərir.
# Bu sadəcə sənədləşdirmə üçün və portu avtomatik olaraq açmır.
EXPOSE 8080

Kubernetes halında:

Burada "expose" adətən Service yaradılmasına istinad edir, bu da Pod qrupuna müəyyən port vasitəsilə giriş təmin edir.

# NodePort tipli Service nümunəsi, bu tətbiqi xaricə "expose" edir.
apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-app # app=my-app etiketi ilə Podları seçir
  ports:
    - protocol: TCP
      port: 80 # Digər xidmətlər və ya istifadəçilər üçün giriş portu
      targetPort: 8080 # Pod içində tətbiqin dinlədiyi port
      nodePort: 30000 # Klasterin nodelərində port, bu vasitəsilə xidmətə giriş mümkündür (NodePort üçün)
  type: NodePort # Xidmətin növü, giriş üsulunu müəyyən edir

Beləliklə, expose ümumi olaraq:

  • Sənədləşdirmə: Dockerfile-də tətbiqin istifadə etməsini gözlədiyi portları göstərir.
  • Yayım: Kubernetes-də (Service vasitəsilə) tətbiqi klaster xaricinə və ya klaster daxilində digər xidmətlərə açır.

Dockerfile-də portların birbaşa yayımı, konteynerin -p seçimi ilə işə salınması və ya Kubernetes-də Service istifadə edilərək həyata keçirilir. EXPOSE Dockerfile-də öz-özünə portları host sistemində və ya şəbəkədə açmır.