0Pricing
Helm Academy · レッスン

最小構成の Deployment Template

静的なマニフェストを Chart Template に変換します。

「最小構成の Deployment Template」はCoddyKit上の無料Helm Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはHelm Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Helm Academyコースには全4レッスンが含まれています。

静的マニフェストからテンプレートへ

チャートは単なるtemplatesフォルダーです。各テンプレートはKubernetesマニフェストであり、インストール時にHelmがプレースホルダーを埋め込みます。

まず通常のDeploymentから始める

いきなり高度な機能を追加する前に、すでに分かっているマニフェストを書きましょう。ここでは、nginx Podを1つ実行するハードコードされたDeploymentを使います。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app

templatesに配置する

そのファイルをチャート内のtemplates/deployment.yamlとして保存します。templates内のすべてがレンダリングされ、クラスターに送信されます。

リリース名は動的になる

名前をハードコードすると壊れやすくなります。Helmはリリース名を.Release.Nameとして公開するため、インストールごとに一意の識別情報が与えられます。

metadata:
  name: {{ .Release.Name }}

values.yamlから値を取得する

ユーザーが変更できる設定はvalues.yamlに記述し、.Valuesを通じて読み取ります。これにより、レプリカ数を固定値ではなく設定可能にできます。

spec:
  replicas: {{ .Values.replicaCount }}

デフォルト値を定義する

.Values.replicaCount を解決できるように、values.yaml にデフォルト値を設定します。ユーザーは後からテンプレートを変更せずに上書きできます。

# values.yaml
replicaCount: 1

セレクターはラベルと一致させる

Deployment の selector は、Pod テンプレートのラベルと完全に一致している必要があります。一致しない場合、Kubernetes に拒否されます。すべての場所で同じラベルを一貫して再利用してください。

selector:
  matchLabels:
    app: {{ .Release.Name }}

Pod テンプレートのセクション

spec.template の内部では、実際の Pod、つまりラベルとコンテナを記述します。これは Helm がクラスターにデプロイするワークロードです。

template:
  metadata:
    labels:
      app: {{ .Release.Name }}
  spec:
    containers: []

コンテナを追加する

各コンテナには name と image が必要です。今はイメージをハードコードしていますが、次のレッスンでパラメーター化します。

containers:
  - name: app
    image: nginx:1.27

レンダリングして確認する

helm template . を実行すると、クラスターを使わずに Helm がローカルで生成する最終的な YAML を確認できます。インストールする前に内容を確認してください。

helm template my-release .

最小テンプレートの全体像

これらを組み合わせると、小さいながらも実際に使える Deployment template になります。名前とラベルはリリースによって決まり、レプリカ数は values によって決まります。

spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app: {{ .Release.Name }}

クイックチェック

インストールしたリリースの一意な名前を提供する組み込みオブジェクトはどれですか。

振り返り: 最初のテンプレート

静的な Deployment をテンプレートに変換しました。識別には .Release.Name を、設定には .Values を使います。helm template でレンダリングして確認してください。🎉

よくある質問

「最小構成の Deployment Template」レッスンは無料ですか?

はい。「最小構成の Deployment Template」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Helm Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Helm Academyコースには全4レッスンが含まれています。

「最小構成の Deployment Template」で何を学びますか?

静的なマニフェストを Chart Template に変換します。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Helm Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのHelm Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「最小構成の Deployment Template」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このHelm Academyレッスンでコードを書いて実行できますか?

はい。すべてのHelm Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 最小構成の Deployment Template
  2. コンテナイメージをパラメーター化する
  3. Service Template を追加する
  4. Chart のインストールと反復開発
← Helm Academyに戻る