Kubernetes入門:定義ファイルに記述する内容

 Kubernetesでは、リソースの作成や管理を行うために、定義ファイル(マニフェストファイル)が使用されます。定義ファイルには、リソースの詳細な設定が記述され、その内容はetcdデータベースに登録されます。この定義ファイルに従って、Kubernetesがリソースを自動的に管理し、システムの状態を維持します。

定義ファイルの大項目

定義ファイルには、以下の4つの大項目が含まれています。

項目名説明
apiVersionAPIのバージョンを指定します。
kind作成するリソースの種類を指定します(例:Pod、Service)。
metadataリソースのメタデータ(名前、ラベルなど)を記述します。
specリソースの具体的な設定内容を記述します。
定義ファイルの大項目

リソースの指定(APIグループと種類)

 リソースを指定するときには、apiVersionでAPIグループを、kindでリソースの種類を指定します。主に使用するAPIグループとリソースの種類を以下に示します。

リソースAPIグループ/バージョン種類(kind)
Podcore/v1(v1と省略できる)Pod
Servicecore/v1(v1と省略できる)Service
Deploymentapps/v1Deployment
ReplicaSetapps/v1ReplicaSet
リソースの指定(APIグループと種類)

メタデータとスペック

定義ファイルには、metadataspecの2つの項目も含まれます。

メタデータ (metadata)

 メタデータには、リソースの名前やラベルなどの情報が含まれます。以下は、メタデータでよく使用される項目です。

主なメタデータ
項目名説明
nameリソースに付ける名前です。
namespaceリソースを分けるための名前空間です。
uidリソースのユニークなIDです。
resourceVersionリソースのバージョン管理に使われます。
generationリソースの世代管理に使用されます。
creationTimestampリソースが作成された日時です。
deletionTimestampリソースが削除された場合の削除日時です。
labelsリソースに任意のラベルを付け、管理や選択に役立てます。
annotationリソースに注釈を付けることができ、他の情報や説明を追加できます。
主なメタデータ

スペック (spec)

 スペックは、リソースがどのように動作するか、またはどのように設定されているかを指定します。リソースの種類によってスペックの内容は異なりますが、主にリソースの動作に関する設定が含まれています。

ラベルとセレクター

 ラベルを使うことで、Kubernetesのリソースにキーと値のペアを付け、特定のリソースを選択したり、グループ化して管理することができます。セレクターは、ラベルを基にリソースを選択する機能です。

例として、以下のラベルを使って、特定の会員レベルごとにPodを分けることができます。

ラベルの例
systemクジラSystem、ペンギンSystem
membershipプラチナ会員、ゴールド会員、シルバー会員
ラベルとセレクター

まとめ

 Kubernetesの定義ファイルには、システムのリソースやその設定が記述されており、リソースの管理や動作を自動化するために不可欠な要素です。各項目に適切な設定を記述することで、システムの状態を効率的に管理することが可能です。