Kubernetes入門:Komposeで作成されたファイルの解説(php-fpm-service.yaml)

スポンサーリンク
Kubernetes入門:Komposeで作成されたファイルの解説(php-fpm-service.yaml) 用語解説
Kubernetes入門:Komposeで作成されたファイルの解説(php-fpm-service.yaml)
この記事は約5分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、Komposeで作成されたファイルについてご紹介します。

スポンサーリンク

背景

この記事は、komposeコマンドを使用して、Docker ComposeファイルからKubernetesマニフェストに変換されたファイルについて解説しています。komposeコマンドで変換したときの記事は下記を御覧ください。

https://yossi-note.com/migrating_from_docker_compose_with_kompose/

作成されたファイル一覧

Komposeによって作成されたファイルは下記になります。

kompose-sample-net-networkpolicy.yaml
nginx-deployment.yaml
nginx-tcp-service.yaml
php-fpm-deployment.yaml
php-fpm-service.yaml

php-fpm-service.yaml

ファイル内容は下記になります。

apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert -f ../kompose_sample/compose.yml --volumes=hostPath
    kompose.version: 1.28.0 (c4137012e)
  creationTimestamp: null
  labels:
    io.kompose.service: php-fpm
  name: php-fpm
spec:
  ports:
    - name: "9000"
      port: 9000
      targetPort: 9000
  selector:
    io.kompose.service: php-fpm
status:
  loadBalancer: {}

このコードは、KubernetesのServiceリソースを定義するためのYAMLファイルです。以下では各セクションごとに解説します。

apiVersion: v1
kind: Service

この部分は、APIバージョンとリソースの種類を指定しています。このコードはKubernetesのServiceリソースを作成するためのものであり、v1のAPIバージョンを使用しています。

metadata:
  annotations:
    kompose.cmd: kompose convert -f ../kompose_sample/compose.yml --volumes=hostPath
    kompose.version: 1.28.0 (c4137012e)
  creationTimestamp: null
  labels:
    io.kompose.service: php-fpm
  name: php-fpm

metadataセクションでは、Serviceリソースのメタデータを指定します。annotationsは注釈情報であり、このServiceが作成される際に使用されたコマンドやバージョンなどの追加情報を示します。creationTimestampは作成時刻を表すタイムスタンプです。labelsはキーバリューペアの形式でラベルを指定し、このServiceを識別するために使用されます。nameはServiceの名前を指定します。

spec:
  ports:
    - name: "9000"
      port: 9000
      targetPort: 9000
  selector:
    io.kompose.service: php-fpm

specセクションでは、Serviceの仕様を指定します。portsセクションでは、このServiceが公開するポートの設定を行います。この例では、ポート番号9000を公開しており、nameは”9000″となっています。portはServiceが外部に公開するポート番号を指定し、targetPortはServiceがバックエンドのPodに転送するポート番号を指定します。

selectorは、このServiceがトラフィックを転送する対象となるPodを選択するためのセレクターを指定します。この例では、ラベルが”io.kompose.service: php-fpm”と一致するPodを選択しています。

status:
  loadBalancer: {}

statusセクションはServiceの状態を示します。この例では、loadBalancerは空のオブジェクトとなっています。Serviceが外部ロードバランサーを使用する場合、ここにロードバランサーの情報が記録されます。

このように定義されたServiceは、Kubernetesクラスタ内のPodに対してトラフィックの負荷分散や内部的な名前解決などの機能を提供します。外部からアクセスする場合、Serviceが公開するポート番号を使用してアクセスすることができます。

この具体的なコードでは、”php-fpm”という名前のServiceが定義されており、ポート番号9000でアクセス可能です。また、selectorを使用してラベルが”io.kompose.service: php-fpm”と一致するPodにトラフィックを転送します。

このServiceは、DeploymentやPodと組み合わせて使用されることが一般的であり、外部からのトラフィックを受け入れるエンドポイントとして機能します。

おわりに

今日は、Komposeで作成されたphp-fpm-service.yamlについてご紹介しました。

よっしー
よっしー

何か質問や相談があれば、遠慮なくコメントしてください。また、エンジニア案件についても、いつでも相談にのっていますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました