Esdeveniment
Crea aplicacions intel·ligents
17 de març, 21 - 21 de març, 10
Uneix-te a la sèrie de trobades per crear solucions d'IA escalables basades en casos d'ús del món real amb altres desenvolupadors i experts.
Registreu-vos-hi araAquest navegador ja no s’admet.
Feu l’actualització al Microsoft Edge per aprofitar les característiques més recents, les actualitzacions de seguretat i l’assistència tècnica.
Helm es una herramienta de empaquetado de código abierto que ayuda a instalar y administrar el ciclo de vida de las aplicaciones de Kubernetes. De forma similar a los administradores de paquetes de Linux, como APT y Yum, puede utilizar Helm para administrar gráficos de Kubernetes, que son paquetes de recursos preconfigurados de Kubernetes.
En este artículo se muestra cómo configurar y usar Helm en un clúster de Kubernetes en Azure Kubernetes Service (AKS).
Important
Helm está diseñada para ejecutarse en nodos de Linux. Si tiene nodos de Windows Server en el clúster, debe asegurarse de que los pods de Helm solo se programan para ejecutarse en nodos de Linux. También deberá asegurarse de que todos los gráficos de Helm que instale están programados también para ejecutarse en los nodos correctos. Los comandos de este artículo utilizan selectores de nodo para asegurarse de que los pods están programados para los nodos correctos, pero no todos los gráficos de Helm pueden exponer un selector de nodo. También puede considerar otras opciones en el clúster, como los valores taints.
Use el comando helm version
para comprobar que tiene Helm 3 instalado.
helm version
En la siguiente salida de ejemplo se muestra la versión 3.0.0 de Helm instalada:
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
Agregue el repositorio ingress-nginx mediante el comando helm repo.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Buscar los gráficos de Helm creados previamente mediante el comando helm search.
helm search repo ingress-nginx
En la siguiente salida de ejemplo condensada se muestran algunos de los gráficos de Helm disponibles para usar:
NAME CHART VERSION APP VERSION DESCRIPTION
ingress-nginx/ingress-nginx 4.7.0 1.8.0 Ingress controller for Kubernetes using NGINX a...
Actualice la lista de gráficos mediante el comando helm repo update.
helm repo update
La siguiente salida de ejemplo muestra una actualización de repositorio correcta:
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!⎈
En este artículo se usa el gráfico de Helm del controlador de entrada de NGINX, que se basa en tres imágenes de contenedor.
Use az acr import
para importar las imágenes del controlador de entrada NGINX en 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
Nota
Además de importar imágenes de contenedor en el ACR, también puede importar gráficos de Helm en el ACR. Para más información, consulte Inserción y extracción de gráficos de Helm en Azure Container Registry.
Instale los gráficos de Helm mediante el comando helm install y especifique un nombre de versión y el nombre del gráfico que se va a instalar.
Propina
En el siguiente ejemplo se crea un espacio de nombres de Kubernetes para los recursos de entrada denominado ingress-basic y está diseñada para funcionar en el espacio de nombres. Especifique un espacio de nombres para su propio entorno según sea necesario.
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=""
En la siguiente salida de ejemplo condensada se muestra el estado de implementación de los recursos de Kubernetes creados mediante el gráfico de 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'
...
Obtenga la EXTERNAL-IP del servicio mediante el comando kubectl get services
.
kubectl --namespace ingress-basic get services -o wide -w ingress-nginx-ingress-nginx-controller
En la salida de ejemplo siguiente se muestra la EXTERNAL-IP para el servicio 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
Obtenga una lista de las versiones instaladas en el clúster mediante el comando helm list
.
helm list --namespace ingress-basic
En la salida de ejemplo siguiente se muestra la versión de ingress-nginx implementada en el paso anterior:
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
La implementación de un gráfico de Helm crea recursos de Kubernetes, como pods, implementaciones y servicios.
Limpie los recursos mediante el comando helm uninstall y especifique el nombre de la versión.
helm uninstall --namespace ingress-basic ingress-nginx
En el siguiente ejemplo de salida se muestra que se ha desinstalado la versión denominada ingress-nginx:
release "nginx-ingress" uninstalled
Elimine el espacio de nombres de ejemplo completo mediante el comando kubectl delete
y especifique el nombre.
kubectl delete namespace ingress-basic
Para más información sobre cómo administrar las implementaciones de aplicaciones de Kubernetes con Helm, consulte la documentación de Helm.
Comentaris de Azure Kubernetes Service
Azure Kubernetes Service és un projecte de codi obert. Seleccioneu un enllaç per enviar comentaris:
Esdeveniment
Crea aplicacions intel·ligents
17 de març, 21 - 21 de març, 10
Uneix-te a la sèrie de trobades per crear solucions d'IA escalables basades en casos d'ús del món real amb altres desenvolupadors i experts.
Registreu-vos-hi araFormació
Ruta d'aprenentatge
Introducción a Kubernetes en Azure - Training
Obtenga información sobre los aspectos básicos de los contenedores de Docker, la orquestación de contenedores con Kubernetes y los clústeres administrados en Azure Kubernetes Service.
Certificació
Microsoft Certified: Azure Administrator Associate - Certifications
Demostrar aptitudes clave para configurar, proteger y administrar funciones profesionales clave en Microsoft Azure.