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

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

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

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

スポンサーリンク

背景

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

作成されたファイル一覧

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

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

nginx-tcp-service.yaml

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

apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert -f ../kompose_sample/compose.yml --volumes=hostPath
    kompose.service.type: LoadBalancer
    kompose.version: 1.28.0 (c4137012e)
  creationTimestamp: null
  labels:
    io.kompose.service: nginx-tcp
  name: nginx-tcp
spec:
  ports:
    - name: "8080"
      port: 8080
      targetPort: 80
  selector:
    io.kompose.service: nginx
  type: LoadBalancer
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.service.type: LoadBalancer
    kompose.version: 1.28.0 (c4137012e)
  creationTimestamp: null
  labels:
    io.kompose.service: nginx-tcp
  name: nginx-tcp

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

spec:
  ports:
    - name: "8080"
      port: 8080
      targetPort: 80
  selector:
    io.kompose.service: nginx
  type: LoadBalancer

specセクションでは、Serviceの仕様を指定します。portsはServiceが公開するポートの設定を指定します。この例では、ポート番号8080を指定し、ターゲットポートとしてポート番号80を指定しています。

selectorはServiceが要求を転送するためのポッドのセレクターを指定します。この場合、io.kompose.service: nginxというラベルを持つポッドが選択されます。

typeはServiceのタイプを指定します。LoadBalancerは外部ロードバランサを使用してトラフィックを分散することを意味します。

status:
  loadBalancer: {}

statusセクションはServiceのステータスを示します。この例では、loadBalancerが空のオブジェクトとなっています。このフィールドは実際のロードバランサの情報が入ることがありますが、このコードでは指定されていません。

このコードは、名前が”nginx-tcp”でラベルが”io.kompose.service: nginx”と一致するポッドへのトラフィックをポート8080からポート80に転送するServiceを定義しています。また、外部ロードバランサを使用してトラフィックを分散するように設定されています。

statusセクションのloadBalancerフィールドは、現在のServiceのロードバランサの状態を示します。この例では空のオブジェクトとなっていますが、実際のロードバランサが割り当てられると、その情報がここに反映されます。

このServiceは、外部からのトラフィックをポート8080で受け取り、ポート80に対して対応するポッドに転送します。このようにServiceを使用することで、ポッドのセレクターに基づいてトラフィックを転送し、アプリケーションの可用性とスケーラビリティを向上させることができます。

おわりに

今日は、Komposeで作成されたnginx-tcp-service.yamlについてご紹介しました。次回も、Komposeで作成されたファイルを解説していきたいと思います。

よっしー
よっしー

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

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

コメント

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