Meglévő alkalmazások telepítése a Helmrel az Azure Kubernetes Service-ben (AKS)
A Helm egy nyílt forráskódú csomagolóeszköz, amely segít a Kubernetes-alkalmazások életciklusának telepítésében és kezelésében. A Linux-csomagkezelőkhöz, például az APT-hez és a Yumhoz hasonlóan a Helm segítségével kezelheti a Kubernetes-diagramokat, amelyek előre konfigurált Kubernetes-erőforrások csomagjai.
Ez a cikk bemutatja, hogyan konfigurálhatja és használhatja a Helmt egy Kubernetes-fürtben az Azure Kubernetes Service-ben (AKS).
Mielőtt elkezdené
- Ez a cikk feltételezi, hogy van egy meglévő AKS-fürtje. Ha AKS-fürtre van szüksége, hozzon létre egyet az Azure CLI, az Azure PowerShell vagy az Azure Portal használatával.
- Az AKS-fürtnek integrált ACR-sel kell rendelkeznie. Az integrált ACR-sel rendelkező AKS-fürt létrehozásával kapcsolatos részletekért lásd: Hitelesítés az Azure Container Registryvel az Azure Kubernetes Service-ből.
- Telepítenie kell a Helm CLI-t is, amely a fejlesztési rendszeren futó ügyfél. Lehetővé teszi alkalmazások indítását, leállítását és kezelését a Helm használatával. Ha az Azure Cloud Shellt használja, a Helm CLI már telepítve van. A helyi platform telepítési utasításait a Helm telepítése című témakörben találja.
Fontos
A Helm Linux-csomópontokon való futtatásra szolgál. Ha Windows Server-csomópontok vannak a fürtben, győződjön meg arról, hogy a Helm-podok csak Linux-csomópontokon futnak. Azt is biztosítania kell, hogy a telepített Helm-diagramok is a megfelelő csomópontokon fussanak. A cikkben szereplő parancsok csomópontválasztókkal biztosítják, hogy a podok a megfelelő csomópontokra legyenek ütemezve, de nem minden Helm-diagram tehet közzé csomópontválasztót. Más lehetőségeket is használhat a fürtön, például a fertőzötteket.
A Helm verziójának ellenőrzése
helm version
A parancs használatával ellenőrizze, hogy telepítve van-e a Helm 3.helm version
Az alábbi példakimenet a Helm 3.0.0-s verzióját mutatja be:
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
Alkalmazás telepítése a Helm v3-val
Helm-adattárak hozzáadása
Adja hozzá az ingress-nginx adattárat a helm-adattár parancsával.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Helm-diagramok keresése
Előre létrehozott Helm-diagramok keresése a helm-keresés paranccsal.
helm search repo ingress-nginx
Az alábbi tömörített példakimenet a használható Helm-diagramok némelyikét mutatja be:
NAME CHART VERSION APP VERSION DESCRIPTION ingress-nginx/ingress-nginx 4.7.0 1.8.0 Ingress controller for Kubernetes using NGINX a...
Frissítse a diagramok listáját a helm-adattár frissítési parancsával.
helm repo update
Az alábbi példakimenet egy sikeres adattárfrissítést mutat be:
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "ingress-nginx" chart repository Update Complete. ⎈ Happy Helming!⎈
A Helm-diagramképek importálása az ACR-be
Ez a cikk az NGINX bejövőforgalom-vezérlő Helm-diagramját használja, amely három tárolólemezképre támaszkodik.
Az NGINX bejövőforgalom-vezérlő lemezképeinek importálására használható
az acr import
az ACR-be.REGISTRY_NAME=<REGISTRY_NAME> CONTROLLER_REGISTRY=registry.k8s.io CONTROLLER_IMAGE=ingress-nginx/controller CONTROLLER_TAG=v1.8.0 PATCH_REGISTRY=registry.k8s.io PATCH_IMAGE=ingress-nginx/kube-webhook-certgen PATCH_TAG=v20230407 DEFAULTBACKEND_REGISTRY=registry.k8s.io DEFAULTBACKEND_IMAGE=defaultbackend-amd64 DEFAULTBACKEND_TAG=1.5 az acr import --name $REGISTRY_NAME --source $CONTROLLER_REGISTRY/$CONTROLLER_IMAGE:$CONTROLLER_TAG --image $CONTROLLER_IMAGE:$CONTROLLER_TAG az acr import --name $REGISTRY_NAME --source $PATCH_REGISTRY/$PATCH_IMAGE:$PATCH_TAG --image $PATCH_IMAGE:$PATCH_TAG az acr import --name $REGISTRY_NAME --source $DEFAULTBACKEND_REGISTRY/$DEFAULTBACKEND_IMAGE:$DEFAULTBACKEND_TAG --image $DEFAULTBACKEND_IMAGE:$DEFAULTBACKEND_TAG
Feljegyzés
A tárolólemezképek ACR-be importálása mellett Helm-diagramokat is importálhat az ACR-be. További információ: Helm-diagramok leküldése és lekérése egy Azure-tárolóregisztrációs adatbázisba.
Helm-diagramok futtatása
Telepítse a Helm-diagramokat a helm telepítési parancsával, és adja meg a telepíteni kívánt diagram kiadási nevét és nevét.
Tipp.
Az alábbi példa létrehoz egy Kubernetes-névteret az alapszintű bejövő erőforrásokhoz, és ezen a névtéren belül kíván működni. Szükség szerint adjon meg egy névteret a saját környezetéhez.
ACR_URL=<REGISTRY_URL> # Create a namespace for your ingress resources kubectl create namespace ingress-basic # Use Helm to deploy an NGINX ingress controller helm install ingress-nginx ingress-nginx/ingress-nginx \ --version 4.0.13 \ --namespace ingress-basic \ --set controller.replicaCount=2 \ --set controller.nodeSelector."kubernetes\.io/os"=linux \ --set controller.image.registry=$ACR_URL \ --set controller.image.image=$CONTROLLER_IMAGE \ --set controller.image.tag=$CONTROLLER_TAG \ --set controller.image.digest="" \ --set controller.admissionWebhooks.patch.nodeSelector."kubernetes\.io/os"=linux \ --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz \ --set controller.admissionWebhooks.patch.image.registry=$ACR_URL \ --set controller.admissionWebhooks.patch.image.image=$PATCH_IMAGE \ --set controller.admissionWebhooks.patch.image.tag=$PATCH_TAG \ --set defaultBackend.nodeSelector."kubernetes\.io/os"=linux \ --set defaultBackend.image.registry=$ACR_URL \ --set defaultBackend.image.image=$DEFAULTBACKEND_IMAGE \ --set defaultBackend.image.tag=$DEFAULTBACKEND_TAG \ --set defaultBackend.image.digest=""
A következő sűrített példakimenet a Helm-diagram által létrehozott Kubernetes-erőforrások üzembehelyezési állapotát mutatja be:
NAME: nginx-ingress LAST DEPLOYED: Wed Jul 28 11:35:29 2021 NAMESPACE: ingress-basic STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: The ingress-nginx controller has been installed. It may take a few minutes for the LoadBalancer IP to be available. You can watch the status by running 'kubectl --namespace ingress-basic get services -o wide -w nginx-ingress-ingress-nginx-controller' ...
Kérje le a szolgáltatás KÜLSŐ IP-címét a
kubectl get services
parancs használatával.kubectl --namespace ingress-basic get services -o wide -w ingress-nginx-ingress-nginx-controller
Az alábbi példakimenet az ingress-nginx-ingress-nginx-controller szolgáltatás KÜLSŐ IP-címét mutatja be:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR nginx-ingress-ingress-nginx-controller LoadBalancer 10.0.254.93 <EXTERNAL_IP> 80:30004/TCP,443:30348/TCP 61s app.kubernetes.io/component=controller,app.kubernetes.io/instance=nginx-ingress,app.kubernetes.io/name=ingress-nginx
Kiadások listázása
A parancs használatával
helm list
lekérheti a fürtre telepített kiadások listáját.helm list --namespace ingress-basic
Az alábbi példakimenet az előző lépésben üzembe helyezett bejövő nginx kiadást mutatja be:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION ingress-nginx ingress-basic 1 2021-07-28 11:35:29.9623734 -0500 CDT deployed ingress-nginx-3.34.0 0.47.0
Az erőforrások eltávolítása
A Helm-diagram üzembe helyezése Kubernetes-erőforrásokat hoz létre, például podokat, üzembe helyezéseket és szolgáltatásokat.
Távolítsa el az erőforrásokat a helm-eltávolítási paranccsal, és adja meg a kiadás nevét.
helm uninstall --namespace ingress-basic ingress-nginx
Az alábbi példakimenet az ingress-nginx nevű kiadás eltávolítását mutatja be:
release "nginx-ingress" uninstalled
Törölje a teljes mintanévteret és az erőforrásokat a
kubectl delete
parancs használatával, és adja meg a névtér nevét.kubectl delete namespace ingress-basic
Következő lépések
A Kubernetes-alkalmazástelepítések Helmrel való kezelésével kapcsolatos további információkért tekintse meg a Helm dokumentációját.
Azure Kubernetes Service