Kubernetes入門:定義ファイルに記述する内容
Kubernetesでは、リソースの作成や管理を行うために、定義ファイル(マニフェストファイル)が使用されます。定義ファイルには、リソースの詳細な設定が記述され、その内容はetcd
データベースに登録されます。この定義ファイルに従って、Kubernetesがリソースを自動的に管理し、システムの状態を維持します。
定義ファイルの大項目
定義ファイルには、以下の4つの大項目が含まれています。
項目名 | 説明 |
---|---|
apiVersion | APIのバージョンを指定します。 |
kind | 作成するリソースの種類を指定します(例:Pod、Service)。 |
metadata | リソースのメタデータ(名前、ラベルなど)を記述します。 |
spec | リソースの具体的な設定内容を記述します。 |
リソースの指定(APIグループと種類)
リソースを指定するときには、apiVersion
でAPIグループを、kind
でリソースの種類を指定します。主に使用するAPIグループとリソースの種類を以下に示します。
リソース | APIグループ/バージョン | 種類(kind) |
---|---|---|
Pod | core/v1(v1と省略できる) | Pod |
Service | core/v1(v1と省略できる) | Service |
Deployment | apps/v1 | Deployment |
ReplicaSet | apps/v1 | ReplicaSet |
メタデータとスペック
定義ファイルには、metadata
とspec
の2つの項目も含まれます。
メタデータ (metadata)
メタデータには、リソースの名前やラベルなどの情報が含まれます。以下は、メタデータでよく使用される項目です。
主なメタデータ
項目名 | 説明 |
---|---|
name | リソースに付ける名前です。 |
namespace | リソースを分けるための名前空間です。 |
uid | リソースのユニークなIDです。 |
resourceVersion | リソースのバージョン管理に使われます。 |
generation | リソースの世代管理に使用されます。 |
creationTimestamp | リソースが作成された日時です。 |
deletionTimestamp | リソースが削除された場合の削除日時です。 |
labels | リソースに任意のラベルを付け、管理や選択に役立てます。 |
annotation | リソースに注釈を付けることができ、他の情報や説明を追加できます。 |
スペック (spec)
スペックは、リソースがどのように動作するか、またはどのように設定されているかを指定します。リソースの種類によってスペックの内容は異なりますが、主にリソースの動作に関する設定が含まれています。
ラベルとセレクター
ラベルを使うことで、Kubernetesのリソースにキーと値のペアを付け、特定のリソースを選択したり、グループ化して管理することができます。セレクターは、ラベルを基にリソースを選択する機能です。
例として、以下のラベルを使って、特定の会員レベルごとにPodを分けることができます。
ラベルの例 | 値 |
---|---|
system | クジラSystem、ペンギンSystem |
membership | プラチナ会員、ゴールド会員、シルバー会員 |
まとめ
Kubernetesの定義ファイルには、システムのリソースやその設定が記述されており、リソースの管理や動作を自動化するために不可欠な要素です。各項目に適切な設定を記述することで、システムの状態を効率的に管理することが可能です。