Sobes.tech
Intern

Milleks on vaja käsklust xpose DevOps-is?

sobes.tech AI

Vastus AI-lt

Käsul expose DevOps kontekstis, eriti konteineritega töötades (Docker, Kubernetes), kasutatakse selleks, et näidata, millised pordid peaksid olema konteinerist väljast kättesaadavad.

Dockerfile'i puhul:

# Näitab, et konteineris olev rakendus kuulab pordi 8080.
# See on lihtsalt dokumentatsioon ja ei avalda porti automaatselt.
EXPOSE 8080

Kubernetes'i puhul:

Siin viitab "expose" sageli Service'i loomisele, mis võimaldab juurdepääsu Podide rühmale kindlal pordil.

# Näide NodePort tüüpi Service'ist, mis "väljast" rakenduse.
apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-app # Valib Podid, mille märgis on app=my-app
  ports:
    - protocol: TCP
      port: 80 # Pordi number, millele teised teenused või kasutajad pöörduvad
      targetPort: 8080 # Pordi number, millel rakendus Podis kuulab
      nodePort: 30000 # Pordi number klastril, mille kaudu teenus on kättesaadav (NodePort)
  type: NodePort # Teenuse tüüp, mis määrab juurdepääsumeetodi

Seega, expose üldiselt teenib järgmist eesmärki:

  • Dokumenteerimine: Dockerfile'is näitab, milliseid porte rakendus ootab kasutama.
  • Avalikustamine: Kubernetes'is (Service'i kaudu) teeb rakenduse kättesaadavaks klastrist väljapoole või teistele teenustele klastris.

Kohene portide avalikustamine Dockerfile'is toimub konteineri käivitamisel -p valikuga või Kubernetes'i Service'i kasutamisel. EXPOSE Dockerfile'is ise ei ava porte host-süsteemis ega võrgus.