第10章 Endpoints [v1]
- 説明
エンドポイントは、実際のサービスを実装するエンドポイントのコレクションです。以下に例を示します。
Name: "mysvc", Subsets: [ { Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] }, { Addresses: [{"ip": "10.10.3.3"}], Ports: [{"name": "a", "port": 93}, {"name": "b", "port": 76}] }, ]
- タイプ
-
object
10.1. 仕様
プロパティー | タイプ | 説明 |
---|---|---|
|
| APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| すべてのエンドポイントのセットは、すべてのサブセットの和集合です。アドレスは、共有する IP に従ってサブセットに配置されます。複数のポートを持つ単一のアドレス。一部は準備ができており、一部は準備ができていません (異なるコンテナーからのものであるため)。その結果、アドレスは異なるポートの異なるサブセットに表示されます。同じサブセットの Addresses と NotReadyAddresses の両方にアドレスは表示されません。サービスを設定するアドレスとポートのセット。 |
|
| EndpointSubset は、共通のポートセットを持つアドレスのグループです。拡張されたエンドポイントのセットは、アドレス x ポートのデカルト積です。たとえば、次のようになります。 { Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] } 結果として作成されるエンドポイントは以下のように表示できます。 a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], b: [ 10.10.1.1:309, 10.10.2.2:309 ] |
10.1.1. .subsets
- 説明
- すべてのエンドポイントのセットは、すべてのサブセットの和集合です。アドレスは、共有する IP に従ってサブセットに配置されます。複数のポートを持つ単一のアドレス。一部は準備ができており、一部は準備ができていません (異なるコンテナーからのものであるため)。その結果、アドレスは異なるポートの異なるサブセットに表示されます。同じサブセットの Addresses と NotReadyAddresses の両方にアドレスは表示されません。サービスを設定するアドレスとポートのセット。
- タイプ
-
array
10.1.2. .subsets[]
- 説明
EndpointSubset は、共通のポートセットを持つアドレスのグループです。拡張されたエンドポイントのセットは、アドレス x ポートのデカルト積です。たとえば、次のようになります。
{ Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}], Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}] }
結果として作成されるエンドポイントは以下のように表示できます。
a: [ 10.10.1.1:8675, 10.10.2.2:8675 ], b: [ 10.10.1.1:309, 10.10.2.2:309 ]
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| 準備完了としてマークされた関連ポートを提供する IP アドレス。これらのエンドポイントは、ロードバランサーとクライアントが利用するのに安全であると見なす必要があります。 |
|
| EndpointAddress は、単一の IP アドレスを記述するタプルです。 |
|
| 関連するポートを提供しているが、開始がまだ完了していないか、最近準備チェックに失敗したか、最近活性チェックに失敗したために現在準備完了としてマークされていない IP アドレス。 |
|
| EndpointAddress は、単一の IP アドレスを記述するタプルです。 |
|
| 関連する IP アドレスで使用可能なポート番号。 |
|
| EndpointPort は、単一のポートを記述するタプルです。 |
10.1.3. .subsets[].addresses
- 説明
- 準備完了としてマークされた関連ポートを提供する IP アドレス。これらのエンドポイントは、ロードバランサーとクライアントが利用するのに安全であると見なす必要があります。
- タイプ
-
array
10.1.4. .subsets[].addresses[]
- 説明
- EndpointAddress は、単一の IP アドレスを記述するタプルです。
- タイプ
-
object
- 必須
-
ip
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| このエンドポイントのホスト名 |
|
| このエンドポイントの IP。loopback (127.0.0.0/8 or ::1)、link-local (169.254.0.0/16 または fe80::/10)、link-local multicast (224.0.0.0/24 or ff02::/16) は使用できません。 |
|
| オプション: このエンドポイントをホストしているノード。これを使用して、ノードにローカルなエンドポイントを判別できます。 |
|
| ObjectReference には参照先のオブジェクトを調査または変更するのに十分な情報が含まれます。 |
10.1.5. .subsets[].addresses[].targetRef
- 説明
- ObjectReference には参照先のオブジェクトを調査または変更するのに十分な情報が含まれます。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| 参照先の API バージョン。 |
|
| オブジェクト全体ではなく一部を参照する場合に、この文字列には、desiredState.manifest.containers[2] など、有効な JSON/Go フィールドアクセスステートメントを含める必要があります。たとえば、オブジェクトの参照先が Pod 内のコンテナーの場合には、"spec.containers{name}" などの値に設定されます ("name" はイベントをトリガーしたコンテナー名に置き換えます)。またはコンテナー名が指定されていない場合には、"spec.containers[2]" の値に設定されます (この Pod 内でインデックスが 2 のコンテナー)。この構文が選択された唯一の理由は、オブジェクトの一部の参照を明確に定義するためです。 |
|
| 参照先の種類。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
|
| 参照先の名前。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 参照先の namespace。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| この参照が作成される特定の resourceVersion (ある場合)。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
| 参照先の UID。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |
10.1.6. .subsets[].notReadyAddresses
- 説明
- 関連するポートを提供しているが、開始がまだ完了していないか、最近準備チェックに失敗したか、最近活性チェックに失敗したために現在準備完了としてマークされていない IP アドレス。
- タイプ
-
array
10.1.7. .subsets[].notReadyAddresses[]
- 説明
- EndpointAddress は、単一の IP アドレスを記述するタプルです。
- タイプ
-
object
- 必須
-
ip
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| このエンドポイントのホスト名 |
|
| このエンドポイントの IP。loopback (127.0.0.0/8 or ::1)、link-local (169.254.0.0/16 または fe80::/10)、link-local multicast (224.0.0.0/24 or ff02::/16) は使用できません。 |
|
| オプション: このエンドポイントをホストしているノード。これを使用して、ノードにローカルなエンドポイントを判別できます。 |
|
| ObjectReference には参照先のオブジェクトを調査または変更するのに十分な情報が含まれます。 |
10.1.8. .subsets[].notReadyAddresses[].targetRef
- 説明
- ObjectReference には参照先のオブジェクトを調査または変更するのに十分な情報が含まれます。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| 参照先の API バージョン。 |
|
| オブジェクト全体ではなく一部を参照する場合に、この文字列には、desiredState.manifest.containers[2] など、有効な JSON/Go フィールドアクセスステートメントを含める必要があります。たとえば、オブジェクトの参照先が Pod 内のコンテナーの場合には、"spec.containers{name}" などの値に設定されます ("name" はイベントをトリガーしたコンテナー名に置き換えます)。またはコンテナー名が指定されていない場合には、"spec.containers[2]" の値に設定されます (この Pod 内でインデックスが 2 のコンテナー)。この構文が選択された唯一の理由は、オブジェクトの一部の参照を明確に定義するためです。 |
|
| 参照先の種類。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
|
| 参照先の名前。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 参照先の namespace。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| この参照が作成される特定の resourceVersion (ある場合)。詳細: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
| 参照先の UID。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |
10.1.9. .subsets[].ports
- 説明
- 関連する IP アドレスで使用可能なポート番号。
- タイプ
-
array
10.1.10. .subsets[].ports[]
- 説明
- EndpointPort は、単一のポートを記述するタプルです。
- タイプ
-
object
- 必須
-
port
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| このポートのアプリケーションプロトコル。これは、実装が理解できるプロトコルの動作をさらに多く提供できるようにヒントとして使用されます。このフィールドは、標準の Kubernetes ラベル構文に従います。有効な値は以下のいずれかになります。 * 接頭辞のないプロトコル名 - IANA 標準サービス名用に予約されています (RFC-6335 および https://www.iana.org/assignments/service-names に準拠)。 * Kubernetes で定義された接頭辞名:* 'kubernetes.io/h2c' - https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior- * 'kubernetes.io/ws' - WebSocket over cleartext で説明されているように、 https://www.rfc-editor.org/rfc/rfc6455 * 'kubernetes.io/wss' - WebSocket over TLS で説明されているように、クリアテキストの HTTP/2 の事前知識 * 他のプロトコルは、mycompany.com/my-custom-protocol など、実装定義の接頭辞名を使用する必要があります。 |
|
| このポートの名前。これは、対応する ServicePort の name フィールドと一致する必要があります。DNS_LABEL である必要があります。1 つのポートが定義されている場合のみオプション。 |
|
| エンドポイントのポート番号。 |
|
| このポートの IP プロトコル。UDP、TCP、または SCTP である必要があります。デフォルトは TCP です。
使用可能な列挙値: - |