Exercício – Instalar um gráfico do Helm

Concluído

Os gráficos do Helm facilitam a instalação de aplicativos nativos de nuvem pré-configurados em um cluster do Kubernetes.

Neste exercício, você usará o Helm para instalar o aplicativo de pet shop no seu cluster do Kubernetes.

Implantar um gráfico do Helm

  1. Navegue até o Azure Cloud Shell e verifique se você está no diretório aks-store-demo. Caso contrário, altere para o diretório usando cd.

    cd aks-store-demo
    
  2. Mude para o diretório charts/aks-store-demo usando cd.

    cd charts
    
  3. Implante o gráfico do Helm da vitrine do pet shop usando o comando helm install.

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

    O comando retornará um resultado similar à seguinte saída:

    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. O Helm permite consultar toda a versão instalada no cluster. Liste todas as versões do Helm usando o comando helm list.

    helm list
    

    O comando retornará um resultado similar à seguinte saída:

    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. O Helm permite buscar informações do manifesto relacionadas a cada versão. Busque informações do manifesto usando o comando helm get manifest.

    helm get manifest aks-store-demo
    

    O comando retornará um resultado similar à seguinte saída 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. Valide se o pod foi implantado usando o comando kubectl get pods.

    kubectl get pods -o wide -w
    

    O comando retornará um resultado similar à seguinte saída:

    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 sair do comando depois de concluído.

Excluir uma versão do Helm

  1. Exclua a versão do Helm usando o comando helm delete.

    helm delete aks-store-demo
    

    O comando retornará um resultado similar à seguinte saída:

    release "aks-store-demo" uninstalled
    

Instalar um gráfico do Helm com valores definidos

Você pode substituir valores para um gráfico do Helm passando um parâmetro de valor ou seu próprio arquivo values.yaml. Por enquanto, use os comandos a seguir para ver como atualizar um valor usando o parâmetro --set. Você aprenderá a usar um arquivo values.yaml na próxima unidade.

  1. Instale o gráfico do Helm usando o comando helm install com o parâmetro --set para definir o replicaCount do modelo de implantação como cinco réplicas.

    helm install --set replicaCount=5 aks-store-demo ./aks-store-demo
    
  2. Valide se as cinco réplicas de pod foram implantadas usando o comando kubectl get pods.

    kubectl get pods -o wide -w
    

    O comando retornará um resultado similar à seguinte saída:

    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 sair do comando depois de concluído.

  3. Exclua o gráfico do Helm usando o comando helm delete.

    helm delete aks-store-demo