Instalace existujících aplikací pomocí Nástroje Helm v Azure Kubernetes Service (AKS)
Helm je opensourcový nástroj pro balení, který pomáhá instalovat a spravovat životní cyklus aplikací Kubernetes. Podobně jako správci balíčků pro Linux, jako jsou APT a Yum, můžete helm použít ke správě grafů Kubernetes, což jsou balíčky předkonfigurovaných prostředků Kubernetes.
V tomto článku se dozvíte, jak nakonfigurovat a používat Helm v clusteru Kubernetes ve službě Azure Kubernetes Service (AKS).
Než začnete
- Tento článek předpokládá, že máte existující cluster AKS. Pokud potřebujete cluster AKS, vytvořte ho pomocí Azure CLI, Azure PowerShell nebo Azure Portal.
- Váš cluster AKS musí mít integrovanou ACR. Podrobnosti o vytvoření clusteru AKS s integrovanou službou ACR najdete v tématu Ověřování pomocí Azure Container Registry z Azure Kubernetes Service.
- Potřebujete také nainstalované rozhraní příkazového řádku Helm, což je klient, který běží ve vašem vývojovém systému. Umožňuje spouštět, zastavovat a spravovat aplikace pomocí Nástroje Helm. Pokud používáte Azure Cloud Shell, rozhraní příkazového řádku Helm je už nainstalované. Pokyny k instalaci na místní platformě najdete v tématu Instalace Helmu.
Důležité
Helm je určený ke spuštění na linuxových uzlech. Pokud máte v clusteru uzly Windows Serveru, musíte zajistit, aby pody Helm byly naplánované jenom na uzlech Linuxu. Je také potřeba zajistit, aby se všechny grafy Helmu, které nainstalujete, naplánovali tak, aby běžely na správných uzlech. Příkazy v tomto článku používají selektory uzlů , aby se zajistilo, že pody jsou naplánované na správné uzly, ale ne všechny grafy Helmu můžou vystavit selektor uzlů. Můžete také zvážit použití dalších možností v clusteru, jako jsou tainty.
Ověření verze Helmu
Pomocí příkazu
helm version
ověřte, že máte nainstalovaný Helm 3.helm version
Následující příklad výstupu ukazuje nainstalovaný Helm verze 3.0.0:
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
Instalace aplikace pomocí Helmu v3
Přidání úložišť Helm
Přidejte úložiště ingress-nginx pomocí příkazu úložiště Helm .
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Vyhledání chartů Helm
Pomocí příkazu helm search vyhledejte předem připravené grafy Helm.
helm search repo ingress-nginx
Následující zhuštěný příklad výstupu ukazuje některé grafy Helm, které jsou k dispozici pro použití:
NAME CHART VERSION APP VERSION DESCRIPTION ingress-nginx/ingress-nginx 4.7.0 1.8.0 Ingress controller for Kubernetes using NGINX a...
Aktualizujte seznam grafů pomocí příkazu helm repo update .
helm repo update
Následující příklad výstupu ukazuje úspěšnou aktualizaci úložiště:
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!⎈
Import obrázků chartů Helm do ACR
V tomto článku se používá chart Helm kontroleru příchozího přenosu dat NGINX, který spoléhá na tři image kontejnerů.
Pomocí
az acr import
příkazu importujte image kontroleru příchozího přenosu dat NGINX do služby ACR.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
Poznámka
Kromě importu imagí kontejnerů do ACR můžete do ACR importovat také charty Helm. Další informace najdete v tématu Nasdílení a vyžádání grafů Helm do registru kontejneru Azure.
Spuštění chartů Helm
Nainstalujte charty Helm pomocí příkazu helm install a zadejte název verze a název chartu, který se má nainstalovat.
Tip
Následující příklad vytvoří obor názvů Kubernetes pro prostředky příchozího přenosu dat s názvem ingress-basic a je určený pro práci v tomto oboru názvů. Podle potřeby zadejte obor názvů pro vlastní prostředí.
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=""
Následující zhuštěný příklad výstupu ukazuje stav nasazení prostředků Kubernetes vytvořených grafem Helm:
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' ...
Pomocí příkazu získejte EXTERNAL-IP adresu vaší služby
kubectl get services
.kubectl --namespace ingress-basic get services -o wide -w ingress-nginx-ingress-nginx-controller
Následující příklad výstupu ukazuje EXTERNAL-IP pro službu ingress-nginx-ingress-nginx-controller :
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
Výpis vydaných verzí
Pomocí příkazu získejte seznam verzí nainstalovaných v clusteru
helm list
.helm list --namespace ingress-basic
Následující příklad výstupu ukazuje verzi ingress-nginx nasazenou v předchozím kroku:
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
Vyčištění prostředků
Nasazení chartu Helm vytvoří prostředky Kubernetes, jako jsou pody, nasazení a služby.
Vyčistěte prostředky pomocí příkazu helm uninstall a zadejte název verze.
helm uninstall --namespace ingress-basic ingress-nginx
Následující příklad výstupu ukazuje, že se verze ingress-nginx odinstalovala:
release "nginx-ingress" uninstalled
Odstraňte celý ukázkový obor názvů spolu s prostředky pomocí
kubectl delete
příkazu a zadejte název oboru názvů.kubectl delete namespace ingress-basic
Další kroky
Další informace o správě nasazení aplikací Kubernetes pomocí Nástroje Helm najdete v dokumentaci k Helmu.
Azure Kubernetes Service
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro