Kubernetes ワークロードの使用

Using Helm to Package and Deploy your Application

Objective

After completing this lesson, you will be able to helm を使用して、アプリケーションをパッケージ化してデプロイします。

Helm を使用したデプロイメントのデプロイおよび管理

使用シナリオ

さまざまなマニフェストを使用して、対応するすべての Kubernetes オブジェクトを含むアプリケーションを Kubernetes クラスタにマニュアルでデプロイしておきます。ここで、Helm を使用してデプロイメントマニフェストをパッケージ化し、クラスタにデプロイします。

タスクフロー

この演習問題では、デプロイメントの Helm チャートを作成、カスタマイズ、およびデプロイします。

前提条件

開始する前に、以下の前提条件が満たされていることを確認してください。

Helm CLI をインストールしたら、コマンド helm create を使用できます。コマンドは、使用を開始するためのサンプルファイルをいくつか作成します。ただし、この演習問題では、Helm チャートを最初からマニュアルで登録する方法を示します。

タスク 1: デプロイメント用の Helm チャートの作成、カスタマイズ、およびデプロイ

ステップ

  1. Helm チャート用の新しいディレクトリを作成します。hello-kyma-chart という名前を付けて、その中に入れ替えます。

  2. Chart.yaml という名前の新しいファイルを作成し、名前、バージョン、説明などのチャートに関する情報を指定します。ファイルに以下の内容を追加します。

    Code Snippet
    12345
    apiVersion: v2 name: hello-kyma-chart description: A Helm chart for the Hello Kyma example application type: application version: 0.1.0
  3. values.yaml という新しいファイルを作成し、replicaCount や image.tag などのデフォルト設定値を指定します。ファイルに以下の内容を追加します。

    Code Snippet
    123
    replicaCount: 1 image: tag: "1.0.0"
  4. hello-kyma-chart ディレクトリで、templates という名前の新しいディレクトリを作成し、そのディレクトリに移動します。

    このディレクトリには、Helm チャートのすべてのテンプレートを追加できます。現時点では、デプロイメント用のテンプレートのみを追加します。

  5. deployment.yaml という新しいファイルを作成し、Kubernetes デプロイメントの定義を指定して、設定値を使用します。ファイルに以下の内容を追加します。

    Code Snippet
    123456789101112131415161718192021222324
    apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Release.Name }} spec: replicas: {{ .Values.replicaCount }} selector: matchLabels: app: {{ .Release.Name }} template: metadata: labels: app: {{ .Release.Name }} spec: containers: - name: hello-kyma image: ghcr.io/sap-samples/kyma-runtime-learning-journey/hello-kyma:{{ .Values.image.tag }} ports: - containerPort: 8080 strategy: type: RollingUpdate rollingUpdate: maxSurge: 25% maxUnavailable: 25%

    ヒント

    Deployment マニフェストには、{{ .Release.Name }} ファイルに指定した設定値を使用するために、プレースホルダ {{ .Values.replicaCount }} および values.yaml が含まれています。{{ Release.Name }} プレースホルダは、Helm リリースの名前に置き換えられます。{{ .Chart.AppVersion }} プレースホルダは、ファイル Chart.yaml で指定したアプリケーションのバージョンに置き換えられます。

  6. Helm チャートの dry-run を実行してチャートが有効かどうかを確認するには、hello-kyma-chart ディレクトリ内で以下のコマンドを実行します。

    Code Snippet
    1
    helm template hello-kyma .

    Helm チャートのレンダリングされた出力が表示されます。

  7. クラスタに Helm チャートをインストールします。

    1. hello-kyma-chart ディレクトリ内で次のコマンドを実行します。

      Code Snippet
      1
      helm install hello-kyma-helm .

      次の例のような出力が表示されます。

      Code Snippet
      123456
      NAME: hello-kyma-helm LAST DEPLOYED: Fri Sep 12 14:25:42 2025 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None
    2. クラスタ内のデプロイメントを確認するには、以下のコマンドを実行します。

      Code Snippet
      1
      kubectl get deployments

      応答に以下の出力が表示されます。

      Code Snippet
      12
      NAME READY UP-TO-DATE AVAILABLE AGE hello-kyma-helm 1/1 1 1 2m
  8. values.yaml ファイルを更新し、replicaCount を 2 に変更します。

  9. クラスタ内の Helm チャートを更新します。

    1. hello-kyma-chart ディレクトリ内で次のコマンドを実行します。

      Code Snippet
      1
      helm upgrade hello-kyma-helm .

      以下の出力が表示されます。

      Code Snippet
      1234567
      Release "hello-kyma-helm" has been upgraded. Happy Helming! NAME: hello-kyma-helm LAST DEPLOYED: Fri Sep 12 14:27:05 2025 NAMESPACE: default STATUS: deployed REVISION: 2 TEST SUITE: None
    2. kubectl を使用してデプロイメントを一覧表示します。

      Code Snippet
      1
      kubectl get deployments

      成功すると、hello-kyma-helm Deployment:

      Code Snippet
      12
      NAME READY UP-TO-DATE AVAILABLE AGE hello-kyma-helm 2/2 2 2 4m
  10. Kyma ダッシュボードで Helm リリースを表示します。

    1. ブラウザで Kyma ダッシュボードを開きます。

    2. デフォルト名称領域で、Apps → Helm Releases に移動し、hello-kyma-helm リリースを選択します。

      Helm リリース セクションが選択された Kyma ダッシュボード。hello-kyma-helm という名前の Helm リリースがチャート hello-kyma-chart、リビジョン 2、バージョン 0.1.0、およびステータス DEPLOYED とともに一覧表示されます。

      以下のビューが開きます。

      リビジョン 2、ステータス DEPLOYED で hello-kyma-helm という名前の Helm リリースがある Kyma ダッシュボード。チャートバージョン 0.1.0 やデプロイメント時間などのリリースデータが含まれます。

結果

デプロイメントの Helm チャートが正常に作成され、クラスタにデプロイされました。このコースの後半で Kubernetes オブジェクトが見つかると、たとえば、サービス、イングレスなどの他のマニフェストを使用して Helm チャートを拡張できるようになります。