Ejercicio: Instalación de un gráfico de Helm

Completado

Los gráficos de Helm facilitan la instalación de aplicaciones nativas de nube preconfiguradas en un clúster de Kubernetes.

En este ejercicio, va a usar Helm para instalar la aplicación de la tienda de mascotas en el clúster de Kubernetes.

Implementación de un gráfico de Helm

  1. Vaya a Azure Cloud Shell y asegúrese de que está en el directorio aks-store-demo. Si no es así, cambie al directorio mediante cd.

    cd aks-store-demo
    
  2. Cambie al directorio charts/aks-store-demo mediante cd.

    cd charts
    
  3. Implemente el gráfico de Helm del escaparate de mascotas mediante el comando helm install.

    helm install aks-store-demo ./aks-store-demo
    

    Este comando debe devolver un resultado similar al siguiente:

    NAME: aks-store-demo
    LAST DEPLOYED: Tue Feb 20 21:05:51 2024
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    NOTES:
    1. Get the application URL by running these commands:
      export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=aks-store-demo,app.kubernetes.io/instance=storedemo2" -o jsonpath="{.items[0].metadata.name}")
      export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
      echo "Visit http://127.0.0.1:8080 to use your application"
      kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
    
  4. Helm le permite consultar todas las versiones instaladas en el clúster. Enumere todas las versiones de Helm con el comando helm list.

    helm list
    

    Este comando debe devolver un resultado similar al siguiente:

    NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
    aks-store-demo  default         1               2024-02-20 21:05:51.557392349 +0000 UTC deployed        aks-store-demo-0.1.0    1.16.0
    
  5. Helm le permite capturar información del manifiesto relacionada con cada versión. Capture la información del manifiesto mediante el comando helm get manifest.

    helm get manifest aks-store-demo
    

    Este comando debe devolver un resultado similar a la siguiente salida condensada:

    ---
    # Source: aks-store-demo-chart/templates/order-service.yaml
    apiVersion: v1
    kind: Secret
    metadata:
      name: order-service-secret
    ...
    ---
    # Source: aks-store-demo-chart/templates/rabbitmq.yaml
    apiVersion: v1
    kind: Secret
    metadata:
      name: rabbitmq-secret
    ...
    ---
    # Source: aks-store-demo-chart/templates/order-service.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: makeline-service-configmap
    ...
    
  6. Compruebe que el pod esté implementado ejecutando el comando kubectl get pods.

    kubectl get pods -o wide -w
    

    Este comando debe devolver un resultado similar al siguiente:

    NAME                                         READY   STATUS    RESTARTS   AGE     IP            NODE                                NOMINATED NODE   READINESS GATES
    makeline-service-8747ddb89-j6mvz             1/1     Running   0          6m11s   10.244.2.7    aks-nodepool1-41853373-vmss000001   <none>           <none>
    mongodb-0                                    1/1     Running   0          6m11s   10.244.2.3    aks-nodepool1-41853373-vmss000001   <none>           <none>
    order-service-7854888498-mlsvv               1/1     Running   0          6m11s   10.244.2.8    aks-nodepool1-41853373-vmss000001   <none>           <none>
    product-service-5d7d4f5c47-gr4sc             1/1     Running   0          6m11s   10.244.2.6    aks-nodepool1-41853373-vmss000001   <none>           <none>
    rabbitmq-0                                   1/1     Running   0          6m11s   10.244.2.2    aks-nodepool1-41853373-vmss000001   <none>           <none>
    store-admin-894788d77-k5qjw                  1/1     Running   0          6m11s   10.244.2.10   aks-nodepool1-41853373-vmss000001   <none>           <none>
    store-front-6749d8579c-xdkv8                 1/1     Running   0          6m11s   10.244.2.4    aks-nodepool1-41853373-vmss000001   <none>           <none>
    virtual-customer-76c4bb9b7-dq6lc             1/1     Running   0          6m11s   10.244.2.9    aks-nodepool1-41853373-vmss000001   <none>           <none>
    virtual-worker-56b79f9547-9dkm9              1/1     Running   0          6m11s   10.244.2.5    aks-nodepool1-41853373-vmss000001   <none>           <none>
    

    Use Ctrl+C para salir del comando cuando haya terminado.

Eliminación de una versión de Helm

  1. Elimine la versión de Helm con el comando helm delete.

    helm delete aks-store-demo
    

    Este comando debe devolver un resultado similar al siguiente:

    release "aks-store-demo" uninstalled
    

Instalación de un gráfico de Helm con valores establecidos

Puede invalidar los valores de un gráfico de Helm pasando un parámetro de valor o su propio archivo values.yaml. Por ahora, use los comandos siguientes para ver cómo actualizar un valor mediante el parámetro --set. Aprenderá a usar un archivo values.yaml en la siguiente unidad.

  1. Instale el gráfico de Helm mediante el comando helm install con el parámetro --set para establecer el elemento replicaCount de la plantilla de implementación en cinco réplicas.

    helm install --set replicaCount=5 aks-store-demo ./aks-store-demo
    
  2. Compruebe que se implementaron las cinco réplicas de pod mediante el comando kubectl get pods.

    kubectl get pods -o wide -w
    

    Este comando debe devolver un resultado similar al siguiente:

    NAME                                         READY   STATUS     RESTARTS   AGE   IP            NODE                                NOMINATED NODE   READINESS GATES
    aks-store-demo-c8dfddf78-2v8fv               1/1     Running   0          31s   10.244.1.5    aks-nodepool1-41853373-vmss000000   <none>           <none>
    aks-store-demo-c8dfddf78-8t4rq               1/1     Running   0          31s   10.244.2.16   aks-nodepool1-41853373-vmss000001   <none>           <none>
    aks-store-demo-c8dfddf78-h2p8m               1/1     Running   0          31s   10.244.2.15   aks-nodepool1-41853373-vmss000001   <none>           <none>
    aks-store-demo-c8dfddf78-l8qq2               1/1     Running   0          31s   10.244.0.10   aks-nodepool1-41853373-vmss000002   <none>           <none>
    aks-store-demo-c8dfddf78-xwcpw               1/1     Running   0          31s   10.244.0.9    aks-nodepool1-41853373-vmss000002   <none>           <none>
    

    Use Ctrl+C para salir del comando cuando haya terminado.

  3. Elimine el gráfico de Helm con el comando helm delete.

    helm delete aks-store-demo