第7章 EndpointSlice [discovery.k8s.io/v1]
- 説明
- EndpointSlice は、サービスを実装するエンドポイントのサブセットを表します。特定のサービスでは、ラベルによって選択された複数の EndpointSlice オブジェクトが存在する場合があります。これらのオブジェクトは、エンドポイントの完全なセットを生成するために結合する必要があります。
- タイプ
-
object
- 必須
-
addressType
-
endpoints
-
7.1. 仕様
プロパティー | タイプ | 説明 |
---|---|---|
|
| addressType は、この EndpointSlice によって伝送されるアドレスのタイプを指定します。このスライスのすべてのアドレスは同じタイプである必要があります。このフィールドは、作成後は不変です。現在、次のアドレスタイプがサポートされています。* IPv4:IPv4 アドレスを表します。* IPv6:IPv6 アドレスを表します。* FQDN: 完全修飾ドメイン名を表します。
使用可能な列挙値: - |
|
| APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| エンドポイントは、このスライス内の一意のエンドポイントのリストです。各スライスには、最大 1000 のエンドポイントを含めることができます。 |
|
| エンドポイントは、サービスを実装する単一の論理的なバックエンドを表します。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。 | |
|
| ポートは、このスライスの各エンドポイントによって公開されるネットワークポートのリストを指定します。各ポートには一意の名前を付ける必要があります。ポートが空の場合、定義されたポートがないことを示します。ポートが nil ポート値で定義されている場合、それはすべてのポートを示します。各スライスには、最大 100 個のポートを含めることができます。 |
|
| EndpointPort は、EndpointSlice によって使用されるポートを表します |
7.1.1. .endpoints
- 説明
- エンドポイントは、このスライス内の一意のエンドポイントのリストです。各スライスには、最大 1000 のエンドポイントを含めることができます。
- タイプ
-
array
7.1.2. .endpoints[]
- 説明
- エンドポイントは、サービスを実装する単一の論理的なバックエンドを表します。
- タイプ
-
object
- 必須
-
addresses
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| このエンドポイントのアドレス。このフィールドの内容は、対応する EndpointSliceaddressType フィールドに従って解釈されます。コンシューマーは、自分の能力のコンテキストでさまざまなタイプのアドレスを処理する必要があります。これには、少なくとも 1 つのアドレスが含まれている必要がありますが、100 を超えてはなりません。これらはすべて代替可能であると想定されており、クライアントは最初の要素だけを使用することもできます。https://issue.k8s.io/106267 を参照してください。 |
|
| EndpointConditions は、エンドポイントの現在の状態を表します。 |
|
| deprecatedTopology には、v1beta1API のトポロジー情報部分が含まれています。このフィールドは非推奨であり、v1beta1 API が削除されると削除されます (kubernetes v1.24 より早く)。このフィールドは値を保持できますが、v1 API を介して書き込むことはできず、このフィールドに書き込もうとすると、黙って無視されます。トポロジー情報は、代わりに zone フィールドと nodeName フィールドにあります。 |
|
| EndpointHints は、エンドポイントの消費方法を説明するヒントを提供します。 |
|
| このエンドポイントのホスト名。このフィールドは、エンドポイントのコンシューマーがエンドポイントを相互に区別するために使用できます (DNS 名など)。同じホスト名を使用する複数のエンドポイントは代替可能と見なす必要があります (たとえば、DNS の複数の A 値)。小文字で、DNS ラベル (RFC 1123) 検証に合格する必要があります。 |
|
| nodeName は、このエンドポイントをホストしているノードの名前を表します。これは、ノードにローカルなエンドポイントを決定するために使用できます。 |
| targetRef は、このエンドポイントを表す Kubernetes オブジェクトへの参照です。 | |
|
| zone は、このエンドポイントが存在するゾーンの名前です。 |
7.1.3. .endpoints[].conditions
- 説明
- EndpointConditions は、エンドポイントの現在の状態を表します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| ready は、エンドポイントを管理しているシステムに応じて、このエンドポイントがトラフィックを受信する準備ができていることを示します。nil 値は、不明な状態を示します。ほとんどの場合、コンシューマーはこの未知の状態を準備ができていると解釈する必要があります。互換性の理由から、エンドポイントを終了するために ready が true になることはありません。 |
|
| サービングは、エンドポイントの終了状態に関係なく設定されることを除いて、ready と同じです。終了する準備完了エンドポイントの場合、この条件を true に設定する必要があります。ゼロの場合、コンシューマーは準備完了状態に従う必要があります。 |
|
| 終了は、このエンドポイントが終了していることを示します。nil 値は、不明な状態を示します。コンシューマーは、この未知の状態を、エンドポイントが終了していないことを意味すると解釈する必要があります。 |
7.1.4. .endpoints[].hints
- 説明
- EndpointHints は、エンドポイントの消費方法を説明するヒントを提供します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| forZones は、トポロジー対応ルーティングを有効にするために、このエンドポイントが消費されるゾーンを示します。 |
|
| ForZone は、このエンドポイントを消費するゾーンに関する情報を提供します。 |
7.1.5. .endpoints[].hints.forZones
- 説明
- forZones は、トポロジー対応ルーティングを有効にするために、このエンドポイントが消費されるゾーンを示します。
- タイプ
-
array
7.1.6. .endpoints[].hints.forZones[]
- 説明
- ForZone は、このエンドポイントを消費するゾーンに関する情報を提供します。
- タイプ
-
object
- 必須
-
name
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| name はゾーンの名前を表します。 |
7.1.7. .ports
- 説明
- ポートは、このスライスの各エンドポイントによって公開されるネットワークポートのリストを指定します。各ポートには一意の名前を付ける必要があります。ポートが空の場合、定義されたポートがないことを示します。ポートが nil ポート値で定義されている場合、それはすべてのポートを示します。各スライスには、最大 100 個のポートを含めることができます。
- タイプ
-
array
7.1.8. .ports[]
- 説明
- EndpointPort は、EndpointSlice によって使用されるポートを表します
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| このポートのアプリケーションプロトコル。このフィールドは、標準の Kubernetes ラベル構文に従います。接頭辞のない名前は、IANA 標準サービス名用に予約されています (RFC-6335 および https://www.iana.org/assignments/service-names に準拠)。非標準プロトコルでは、mycompany.com/my-custom-protocol などの接頭辞名を使用する必要があります。 |
|
| このポートの名前。EndpointSlice のすべてのポートには、一意の名前を付ける必要があります。EndpointSlice が Kubernetes サービスから派生している場合、これは Service.ports。name に対応します。名前は空の文字列であるか、DNS_LABEL 検証に合格する必要があります。*長さは 63 文字以下である必要があります。*小文字の英数字または - で設定する必要があります。*英数字で開始および終了する必要があります。デフォルトは空の文字列です。 |
|
| エンドポイントのポート番号。これが指定されていない場合、ポートは制限されないため、特定のコンシューマーのコンテキストで解釈する必要があります。 |
|
| このポートの IP プロトコル。UDP、TCP、または SCTP である必要があります。デフォルトは TCP です。 |