Sobes.tech
Intern

Ի՞նչ է անհրաժեշտ xpose հրամանը DevOps-ում:

sobes.tech AI

Պատասխան AI-ից

DevOps կոնտեքստում, հատկապես կոնտեյներների հետ աշխատելիս (Docker, Kubernetes), expose հրամանը օգտագործվում է նշելու, թե որ պորտերը պետք է հասանելի լինեն կոնտեյների արտաքինից:

Dockerfile դեպքում՝

# Նշում է, որ կոնտեյների ներսում գտնվող հավելվածը լսում է 8080 պորտին:
# Սա միայն փաստաթղթավորում է և ավտոմատ կերպով չի բացում պորտը:
EXPOSE 8080

Kubernetes դեպքում՝

Այստեղ expose հաճախ վերաբերում է Service ստեղծելուն, որը մատչելիություն է ապահովում Pod-երի խմբի համար որոշակի պորտով:

# NodePort տեսակի Service-ի օրինակ, որը `expose` է հավելվածը:
apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-app # Ընտրում է Pod-երը, որոնք ունեն `app=my-app` նշանը
  ports:
    - protocol: TCP
      port: 80 # Պորտ, որը դիմում են այլ ծառայություններ կամ օգտվողներ
      targetPort: 8080 # Պորտ, որի վրա լսում է հավելվածը Pod- ի ներսում
      nodePort: 30000 # Պորտ, որը հասանելի է կլաստերի հանգույցների վրա (NodePort)
  type: NodePort # Ծառայության տեսակ, որը որոշում է մուտքի ձևը

Ընդհանուր առմամբ, expose ծառայում է՝

  • Փաստաթղթավորում: Dockerfile-ում նշում է այն պորտերը, որոնք սպասվում է օգտագործել:
  • Հրապարակում: Kubernetes-ում (Service-ի միջոցով) դարձնում է հավելվածը հասանելի արտաքինից կամ այլ ծառայությունների համար ներսում:

Dockerfile-ում պորտերի ուղիղ հրապարակումը տեղի է ունենում կոնտեյների գործարկման ժամանակ -p ընտրանքով կամ Kubernetes-ում Service օգտագործելով: EXPOSE-ը ինքնին չի բացում պորտեր հոստ համակարգում կամ ցանցում: