Esercizio - Installare un chart Helm

Completato

I chart Helm semplificano l'installazione di app native del cloud preconfigurate in un cluster Kubernetes.

In questo esercizio si userà Helm per installare l'applicazione del negozio di animali nel cluster Kubernetes.

Distribuire un chart Helm

  1. Passare ad Azure Cloud Shell e assicurarsi di essere nella directory aks-store-demo. In caso contrario, passare alla directory usando cd.

    cd aks-store-demo
    
  2. Passare alla directory charts/aks-store-demo usando cd.

    cd charts
    cd aks-store-demo
    
  3. Distribuire il chart Helm anteriore del negozio di animali usando il comando helm install.

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

    Il comando restituirà un risultato simile all'output seguente:

    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 consente di eseguire una query su tutte le versioni installate nel cluster. Elencare tutte le versioni di Helm usando il comando helm list.

    helm list
    

    Il comando restituirà un risultato simile all'output seguente:

    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 consente di recuperare le informazioni del manifesto correlate a ogni versione. Recuperare le informazioni sul manifesto usando il comando helm get manifest.

    helm get manifest aks-store-demo
    

    Il comando dovrebbe restituire un risultato simile all'output condensato seguente:

    ---
    # 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. Verificare che il pod venga distribuito usando il comando kubectl get pods.

    kubectl get pods -o wide -w
    

    Il comando restituirà un risultato simile all'output seguente:

    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>
    

    Al termine, usare Ctrl+C per chiudere il comando.

Eliminare una versione Helm

  1. Eliminare la versione di Helm usando il comando helm delete.

    helm delete aks-store-demo
    

    Il comando restituirà un risultato simile all'output seguente:

    release "aks-store-demo" uninstalled
    

Installare un chart Helm con valori definiti

È possibile eseguire l'override dei valori per un chart Helm passando un parametro per il valore o un file values.yaml personalizzato. Per il momento, usare i comandi seguenti per vedere come aggiornare un valore usando il parametro --set. Si apprenderà come usare un file values.yaml nell'unità successiva.

  1. Installare il grafico Helm usando il comando helm install con il parametro --set per impostare replicaCount del modello di distribuzione su cinque repliche.

    helm install --set replicaCount=5 aks-store-demo ./aks-store-demo
    
  2. Verificare che siano state distribuite cinque repliche pod usando il comando kubectl get pods.

    kubectl get pods -o wide -w
    

    Il comando restituirà un risultato simile all'output seguente:

    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>
    

    Al termine, usare Ctrl+C per chiudere il comando.

  3. Eliminare il chart Helm usando il comando helm delete.

    helm delete aks-store-demo