Gyakorlat – Helm-diagram létrehozása üzembe helyezéshez
Ebben a leckében egy Helm-diagramot hoz létre az Azure Kubernetes Service-ben (AKS) a GitHub Actions használatával. A Helm-diagram létrehozásához hajtsa végre a következő feladatokat:
- Ellenőrizze a Helm telepítését.
- Diagram létrehozása.
- Konfigurálja a diagramot.
- Hozzon létre egy üzembe helyezést.
- Hozzon létre egy üres YAML-fájlt.
- Tartalom hozzáadása a YAML-fájlhoz.
- Hozzon létre egy szolgáltatást.
- Bejövő forgalom létrehozása.
- Hozzon létre egy DNS-zónanevet.
Ellenőrizze a Helm telepítését, és frissítse az adattárat
A Helm CLI már telepítve van az Azure Cloud Shellben. Ha még nem nyitotta meg a Cloud Shellt, jelentkezzen be a Cloud Shellbe, és győződjön meg arról, hogy a Bash Cloud Shell-terminálként van beállítva.
Futtassa
helm version
, és győződjön meg arról, hogy a megjelenített Helm-verzió nagyobb, mint 3.Váltson az elágazott adattárra ehhez a modulhoz a futtatásával
cd mslearn-aks-deployment-pipeline-github-actions
.Futtassa
git pull origin main
a korábbi egységek módosításainak lekéréséhez.
Helm-diagram létrehozása
Hozzon létre egy boilerplate Helm-sablont az adattár kubernetes könyvtárában.
A Cloud Shellben váltson a kubernetes könyvtárra:
cd kubernetes
Egy contoso-website nevű új könyvtár létrehozásához használható
helm create
a kubernetes könyvtárban:helm create contoso-website
Váltson az új könyvtárra a következővel
cd
: .cd contoso-website
Törölje a diagramok és sablonok mappáit ebben a könyvtárban.
rm -r charts templates
Hozzon létre egy új üres sablonmappát .
mkdir templates
Ha számítási feladatokat szeretne létrehozni az üres diagramon, hozzon létre egy új YAML-fájlt úgy, hogy a kubernetesben lévő meglévő fájlokat az új sablonok mappájába helyezi:
mv ../*.yaml ./templates
Most már van egy új Helm-diagramja. Ezután konfigurálja a diagramot.
A diagram konfigurálása
Futtassa
cd ../..
a váltást az adattár gyökerére.Futtassa
code .
a kódszerkesztő megnyitását az aktuális könyvtárban.A bal oldali menüben bontsa ki a kubernetes/contoso-website mappát, és nyissa meg a Chart.yaml fájlt. A Diagram.yaml az a fájl, amely a diagram nevét tartalmazza, és ahol a Helm információkat keres a diagramról.
Távolítsa el a fájl összes tartalmát az első három sor és a diagramverzió kivételével, és szerkessze a leírást, hogy a fájl a következő példához hasonlóan nézzen ki:
apiVersion: v2 name: contoso-website description: Chart for the Contoso company website version: 0.1.0
Mentse a fájlt a szerkesztő eszköztárának jobb felső sarkában, majd válassza a Mentés lehetőséget, vagy nyomja le a Ctrl+S billentyűkombinációt.
Üzembe helyezés létrehozása
Sablonokat adhat hozzá ehhez az üzembe helyezéshez.
A bal oldali menüben nyissa meg a deployment.yaml fájlt a kubernetes/templates mappában.
A fő
metadata
szakaszban adjon hozzá egy új, az értékhez{{ default "staging" .Release.Namespace }}
kapcsolódónamespace
kulcsot. Ametadata
szakasznak a következő példához hasonlóan kell kinéznie:metadata: name: contoso-website namespace: {{ default "staging" .Release.Namespace }}
Alapértelmezés szerint a munkafolyamat telepíti ezt az erőforrást a
staging
névtérbe, de ha ahelm install
parancs rendelkezik egyNamespace
lehetőséggel, a munkafolyamat ezt a névteret használja.template
/containers
spec
/A szakasz alatt cserélje le!IMAGE!
az AKS-fürt vagytag
azlatest
abból származó verziókra.Célszerű felosztani a
registry
image
kép nevét éstag
részeit, hogy könnyebben működjenek velük. Adjon hozzá három új sablonváltozót, amelyek a következő értékeketValues.image.registry
használják: ,Values.image.name
ésValues.image.tag
.- image: {{ .Values.image.registry }}.azurecr.io/{{ .Values.image.name }}:{{ default "latest" .Values.image.tag }}
A deployment.yaml fájlnak a következő példához hasonlóan kell kinéznie:
apiVersion: apps/v1 kind: Deployment metadata: name: contoso-website namespace: {{ default "staging" .Release.Namespace }} spec: selector: matchLabels: app: contoso-website template: metadata: labels: app: contoso-website spec: containers: - image: {{ .Values.image.registry }}.azurecr.io/{{ .Values.image.name }}:{{ default "latest" .Values.image.tag }} name: contoso-website resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 80 name: http
Mentse a fájlt.
Tartalom hozzáadása a values.yaml fájlhoz
Korábban használt {{ .Release.Namespace }}
, így Release
a változó hatóköre is. Minden változóhatókörhöz más alapértelmezett értékek és változók tartoznak. A values.yaml fájl egy másik változó hatóköre. A Helm a values.yaml fájlt használja az összes sablonérték lekéréséhez, amely a következővel {{ .Values }}
kezdődik: .
Ennek a fájlnak ugyanazzal a struktúrával kell rendelkeznie, mint a változók meghívásához használt fájlnak. A szerkezet megtekintéséhez tekintse meg gyorsan a szerkesztett deployment.yaml fájlt. Figyelje meg, hogy a deployment.yaml fájlban és a deployment.yaml fájlban használta.Values.image.registry
.Values.image.name
..Values.image.tag
A contoso-website könyvtár gyökerében nyissa meg a values.yaml fájlt.
Törölje a fájl teljes tartalmát, hogy üres YAML-fájlt kapjon.
Adja hozzá az alábbi tartalmat az üres fájlhoz, és cserélje le a
<ACR-NAME>
helyőrzőt az Azure Container Registry nevére.image: registry: <ACR-NAME> name: contoso-website tag: latest
Ezek az értékek az alapértelmezett értékek, ha nem ad át paraméterként egy másik értéket a
--set
Helm parancs lehetőségével.Mentse a fájlt.
Szolgáltatás létrehozása
Nyissa meg a service.yaml fájlt a sablonok mappájában.
metadata
A fájl szakaszában adjon hozzá egy új, úgynevezettnamespace
kulcsot, amely ugyanazt az értéket használja, mint amelyet a deployment.yaml fájlban használt.namespace: {{ default "staging" .Release.Namespace }}
A service.yaml fájlnak a következő példához hasonlóan kell kinéznie:
apiVersion: v1 kind: Service metadata: name: contoso-website namespace: {{ default "staging" .Release.Namespace }} spec: ports: - port: 80 protocol: TCP targetPort: http name: http selector: app: contoso-website type: ClusterIP
Mentse a fájlt.
Bemeneti fájl létrehozása
Nyissa meg az ingress.yaml fájlt.
metadata
A fájl szakaszában adja hozzá ismét anamespace
deployment.yaml fájlban használt értéket.Lépjen az
host
kulcshoz. Külön gazdagépeket hoz létre az előkészítéshez és az éles környezetekhez, így a felhasználók nem férhetnek hozzá astaging
névtérhez éles URL-címek használatával. Fűzze össze a névteret a gazdagép nevében. A névfeloldást a HTTP-alapú alkalmazás-útválasztási bővítmény kezeli az AKS-fürtben.- host: contoso-{{ default "staging" .Release.Namespace }}.!DNS!
Cserélje le
!DNS!
egy új sablonváltozóra a DNS-zóna nevéhez.- host: contoso-{{ default "staging" .Release.Namespace }}.{{ .Values.dns.name }}
A végleges ingress.yaml fájlnak a következő példához hasonlóan kell kinéznie:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: contoso-website namespace: {{ default "staging" .Release.Namespace }} annotations: kubernetes.io/ingress.class: addon-http-application-routing spec: rules: - host: contoso-{{ default "staging" .Release.Namespace }}.{{ .Values.dns.name }} http: paths: - backend: service: name: contoso-website port: name: http path: / pathType: Prefix
Mentse a fájlt.
DNS-zónanévérték hozzáadása
Nyissa meg a values.yaml fájlt, és adjon hozzá egy
dns.name
kulcsot aimage
kulcs után. Cserélje le<ACR-NAME>
a tárolóregisztrációs adatbázis nevére és<DNS-NAME>
az AKS DNS-zóna nevére a beállításszkript kimenetéből. A fájlnak a következő példához kell hasonlítania:image: registry: <ACR-NAME> name: contoso-website tag: latest dns: name: <DNS-NAME>
Ha nem rendelkezik a DNS-zóna nevével az eredeti beállítási szkript kimenetéből, futtassa a következő Azure CLI-lekérdezést egy másik Cloud Shell-ablakban a lekéréséhez, és cserélje le a helyőrzőt az
<resource-group-name>
erőforráscsoport nevére.az aks show -g <resource-group-name> -n contoso-website -o tsv --query addonProfiles.httpApplicationRouting.config.HTTPApplicationRoutingZoneName
Mentse a fájlt.
Módosítások leküldése
Zárja be a Cloud Shell-szerkesztőt a szerkesztő eszköztárának jobb felső sarkában, majd válassza a Szerkesztő bezárása lehetőséget.
Az elágazás összes módosításának leküldéséhez futtassa a következő parancsokat a Cloud Shellben a következő sorrendben:
git add .
git commit -m "Add helm"
git push -u origin main
Amikor a rendszer kéri, adja meg jelszóként a korábban létrehozott PAT-t.
Folytassa a következő leckével a Helm-diagram és -alkalmazás üzembe helyezéséhez az AKS-ben a GitHub Actions használatával.