0Pricing
Helm Academy · レッスン

Service Template を追加する

Template 化した Service でワークロードを公開します。

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

Service が必要な理由

Pod には常に新しい IP アドレスが割り当てられます。Service はワークロードに安定したアドレスを 1 つ提供し、他のコンポーネントから確実にアクセスできるようにします。

2 つ目のテンプレートファイル

Deployment のテンプレートの隣に templates/service.yaml を追加します。Helm は templates 内のすべてのファイルをレンダリングするため、両方が一緒にデプロイされます。

Service の基本構造

Service は、どのマニフェストでも同じように apiVersion、kind: Service、metadata から始まります。リリース名によって、このインストールに関連付けられます。

apiVersion: v1
kind: Service
metadata:
  name: {{ .Release.Name }}

セレクターで Pod を関連付ける

Service は selector を使って Pod を検出します。Deployment の Pod に付けたラベルと一致していなければ、トラフィックは流れません。

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

Service の種類を選ぶ

type をパラメーター化して、ユーザーが ClusterIP、NodePort、LoadBalancer のいずれかを選べるようにします。ClusterIP は安全なクラスター内デフォルトです。

type: {{ .Values.service.type }}

values の type にデフォルト値を設定する

service.type にデフォルト値を設定すると、通常のインストールですぐに動作します。Service の設定を 1 つのキーの下にまとめると、整理された状態を保てます。

# values.yaml
service:
  type: ClusterIP
  port: 80

ポートを割り当てる

port はクライアントが Service に接続するポートです。values に接続して、インストールごとに異なるポートを公開できるようにします。

ports:
  - port: {{ .Values.service.port }}

コンテナポートを指定する

targetPort はコンテナが待ち受けるポートです。nginx は 80 番ポートでサービスを提供するため、Service 上のトラフィックはそこに転送されます。

ports:
  - port: {{ .Values.service.port }}
    targetPort: 80

コンテナポートを宣言する

明確にするため、Deployment の containerPort に Pod が開くポートを記述します。意図が文書化され、ツールからも扱いやすくなります。

ports:
  - containerPort: 80

Service 仕様の全体像

ここまでを組み合わせます。セレクターが Pod と一致し、ポートと種類が values から取得される、テンプレート化された Service です。

spec:
  type: {{ .Values.service.type }}
  selector:
    app: {{ .Release.Name }}
  ports:
    - port: {{ .Values.service.port }}
      targetPort: 80

両方のテンプレートをレンダリングする

helm template を実行し、Helm が --- で区切られた 2 つのドキュメント、Deployment と新しい Service を出力することを確認します。

helm template web .

クイックチェック

Service から Pod にトラフィックが送られません。最も可能性の高い原因は何ですか。

振り返り: アプリを公開する

Service テンプレートを追加しました。セレクターは Pod と一致し、種類とポートは values から取得され、targetPort はコンテナを指しています。🚀

よくある質問

「Service Template を追加する」レッスンは無料ですか?

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

「Service Template を追加する」で何を学びますか?

Template 化した Service でワークロードを公開します。 ブラウザで直接実行するハンズオンコードでHelm Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「Service Template を追加する」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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