演習 - Helm チャートをインストールする

完了

Helm チャートを使用すると、事前に構成されたクラウドネイティブ アプリを Kubernetes クラスターに簡単にインストールできるようになります。

この演習では、Helm を使用して、Kubernetes クラスターにペット ストア アプリケーションをインストールします。

Helm チャートをデプロイする

  1. Azure Cloud Shell にアクセスし、aks-store-demo ディレクトリが操作対象になっていることを確認します。 異なる場合は、cd を使って対象のディレクトリに切り替えます。

    cd aks-store-demo
    
  2. cd を使って charts/aks-store-demo ディレクトリに切り替えます。

    cd charts
    
  3. helm install コマンドを使って、ペット ストアフロント Helm チャートをデプロイします。

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

    このコマンドにより、次の出力のような結果が返されるはずです。

    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 を使用すると、クラスター上にインストールされているすべてのリリースに対してクエリを実行できます。 helm list コマンドを使って、すべての Helm リリースを一覧表示します。

    helm list
    

    このコマンドにより、次の出力のような結果が返されるはずです。

    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 を使うと、各リリースに関連するマニフェスト情報をフェッチできます。 helm get manifest コマンドを使ってマニフェスト情報をフェッチします。

    helm get manifest aks-store-demo
    

    このコマンドにより、次の出力要約のような結果が返されるはずです。

    ---
    # 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. kubectl get pods コマンドを実行して、ポッドがデプロイされていることを検証します。

    kubectl get pods -o wide -w
    

    このコマンドにより、次の出力のような結果が返されるはずです。

    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>
    

    終わったら、Ctrl+C キーを押してコマンドを終了します。

Helm リリースを削除する

  1. helm delete コマンドを使って、Helm リリースを削除します。

    helm delete aks-store-demo
    

    このコマンドを実行すると、次の出力のような結果が返されるはずです。

    release "aks-store-demo" uninstalled
    

set の値を使用して Helm チャートをインストールする

値パラメーターと独自の values.yaml ファイルのいずれかを渡すことで、Helm チャートの値を上書きできます。 ここでは、次のコマンドを使用して、--set パラメーターを使って値を更新する方法を確認します。 values.yaml ファイルを使用する方法については、次のユニットで学習します。

  1. --set パラメーターを指定した helm install コマンドを使って Helm チャートをインストールすることで、展開テンプレートの replicaCount を 5 件のレプリカに設定します。

    helm install --set replicaCount=5 aks-store-demo ./aks-store-demo
    
  2. kubectl get pods コマンドを使って、5 件のポッド レプリカがデプロイされたことを検証します。

    kubectl get pods -o wide -w
    

    このコマンドにより、次の出力のような結果が返されるはずです。

    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>
    

    終わったら、Ctrl+C キーを押してコマンドを終了します。

  3. helm delete コマンドを使って、Helm チャートを削除します。

    helm delete aks-store-demo