コンテナイメージをパラメーター化する
イメージの Repository と Tag を Values に結び付けます。
「コンテナイメージをパラメーター化する」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
イメージをパラメーター化する理由
イメージをハードコードすると、すべてのユーザーが 1 つのバージョンに固定されます。image を values に接続すれば、必要なリポジトリとタグを選べるようになります。
リポジトリとタグを分ける
一般的に、チャートではイメージを 2 つのフィールド、repository と tag で管理します。分けておくとバージョン更新を簡単に行えます。
# values.yaml
image:
repository: nginx
tag: "1.27"ネストされた Values を読み取る
ドットをつなげることで、ネストされたキーにアクセスできます。ここでは .Values.image.repository によって、先ほど定義した image マップの内部にたどり着いています。
image: {{ .Values.image.repository }}リポジトリとタグを結合する
イメージ参照は、リポジトリ、コロン、タグの順で構成されます。テンプレート内で組み立てることで、レンダリング後の行を 1 つの有効な文字列にします。
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"タグは必ず引用符で囲む
1.27 のようなタグは、YAML によって数値として解釈されることがあります。values 内のタグを引用符で囲み、文字列として扱われるようにしてください。末尾のゼロが失われることもありません。
tag: "1.27.0"適切なデフォルトタグを指定する
default 関数は、値が空の場合に代替値を提供します。チャートの appVersion をデフォルトタグに使うのが一般的なパターンです。
{{ .Values.image.tag | default .Chart.AppVersion }}プルポリシーを公開する
imagePullPolicy もパラメーター化して、Kubernetes がイメージを再取得するタイミングをユーザーが制御できるようにします。IfNotPresent は安全なデフォルト値です。
imagePullPolicy: {{ .Values.image.pullPolicy }}プルポリシーにデフォルト値を設定する
values.yaml にプルポリシーのデフォルト値を設定すると、上書きなしのインストールでも動作します。必要な場合は、ユーザーがいつでも変更できます。
image:
pullPolicy: IfNotPresent完全なコンテナブロック
これでコンテナは完全にデータ駆動になりました。イメージとプルポリシーの両方が .Values.image から取得され、テンプレートにリテラルは残っていません。
containers:
- name: app
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}インストール時に上書きする
ユーザーは --set を使って、ネストされた値を 1 つだけ変更できます。キーのドットは values ツリーにそのまま対応するため、ファイルを編集する必要はありません。
helm install web . --set image.tag=1.28レンダリングされたイメージを確認する
上書き値を指定してレンダリングし、設定が最初から最後まで正しくつながっていることを確認します。出力の image 行には、選択したタグが表示されるはずです。
helm template web . --set image.tag=1.28クイックチェック
ファイルを編集せずに、別のイメージタグを指定してインストールしたいとします。どうすればよいですか。
振り返り: 設定可能なイメージ
イメージを repository と tag に分け、プルポリシーを追加し、それぞれを --set でユーザーが上書きできるようにしました。タグは引用符で囲んで安全に扱ってください。
よくある質問
「コンテナイメージをパラメーター化する」レッスンは無料ですか?
はい。「コンテナイメージをパラメーター化する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「コンテナイメージをパラメーター化する」で何を学びますか?
イメージの Repository と Tag を Values に結び付けます。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「コンテナイメージをパラメーター化する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 最小構成の Deployment Template
- コンテナイメージをパラメーター化する
- Service Template を追加する
- Chart のインストールと反復開発