イントロダクション
Kubernetes クラスタのコアコンポーネントについて学習しておきます。このレッスンでは、Kubernetes オブジェクトとその連携方法について学習します。
Kubernetes オブジェクトとは
Kubernetes オブジェクトは、Kubernetes クラスタ内に保持されるエンティティです。より正確には、これらは etcd key-value ストア内に保持されます。Kubernetes オブジェクトは、Pod、サービス、デプロイメントなど、さまざまなリソースを表すことができます。
これらのオブジェクトは YAML または JSON 形式を使用して定義され、Kubernetes コントロールプレーンの kube-apiserver コンポーネントによって公開される RESTful Kubernetes API を使用して管理することができます。つまり、API を使用してオブジェクトを作成、更新、削除、およびクエリすることができます。
以下は、Pod オブジェクトに関する情報をフェッチする要求の例です。
1GET https://<kubernetes-cluster>.com/api/v1/namespaces/<namespace>/pods/<pod-name>各 Kubernetes オブジェクトは、YAML または JSON 形式の設定ファイルで定義されます。設定ファイルには、宣言的な方法でオブジェクトの指定が含まれています。これにより、オブジェクトの目的のステータスを定義することができます。その後、Kubernetes により、オブジェクトの実際のステータスが目的のステータスと一致するかどうかが永続的にチェックされます。そうでない場合、Kubernetes は実際のステータスを目的のステータスと一致させようとします。これは照合ループと呼ばれます。
単純な Kubernetes Pod オブジェクトは、以下のように宣言されます。
12345678apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginx:1.21.3Pod オブジェクトのさまざまな部分を分割します。
- apiVersion フィールドでは、オブジェクトの定義に使用される Kubernetes API のバージョンが指定されます。各オブジェクトには、異なる API バージョンを含めることができます。
- kind フィールドでは、Kubernetes オブジェクトのタイプが指定されます。
- メタデータフィールドには、オブジェクトのメタデータが含まれます。
- spec 項目には、オブジェクトの指定が含まれます。spec 項目は、オブジェクトタイプごとに異なります。たとえば、Pod オブジェクトの spec フィールドには、Pod の一部であるコンテナの仕様が含まれています。
これらは、Kubernetes オブジェクトの必須フィールドです。ただし、オブジェクトに項目を追加することもできます。
上記のオブジェクトにより、名前が my-pod の Pod が作成されます。Pod には、名前が my-container の単一のコンテナが含まれています。コンテナでは、バージョン 1.21.3 の nginx イメージが使用されます。



