第 16 章 GatewayClass [gateway.networking.k8s.io/v1]
- 描述
GatewayClass 描述了可供用户创建网关资源的网关类。
建议将此资源用作网关的模板。这意味着网关是基于创建 GatewayClass 的状态,并且对 GatewayClass 或关联参数的更改不会传播到现有网关。这个建议旨在限制 GatewayClass 或相关参数的更改。如果实现选择将 GatewayClass 更改传播到现有网关,则实施中必须明确记录该网关。
每当一个或多个网关使用 GatewayClass 时,实现 SHOULD 会在关联的 GatewayClass 上添加
gateway-exists-finalizer.gateway.networking.k8s.io
finalizer。这样可确保在使用时不会删除与网关关联的 GatewayClass。GatewayClass 是一个集群级别资源。
- 类型
-
object
- 必填
-
spec
-
16.1. 规格 复制链接链接已复制到粘贴板!
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: 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 | |
|
| spec 定义 GatewayClass 所需的状态。 |
|
| Status 定义 GatewayClass 的当前状态。 实现需要为所有 GatewayClass 资源填充状态,以指定其控制器名称。 |
16.1.1. .spec 复制链接链接已复制到粘贴板!
- 描述
- spec 定义 GatewayClass 所需的状态。
- 类型
-
object
- 必填
-
controllerName
-
属性 | 类型 | 描述 |
---|---|---|
|
| ControllerName 是管理此类网关的控制器的名称。此字段的值必须是域前缀路径。 示例:"example.net/gateway-controller"。 此字段不可可变,不能为空。 支持:Core |
|
| 描述可帮助描述 GatewayClass,其更多详情。 |
|
| ParametersRef 是对包含与 GatewayClass 对应的配置参数的资源的引用。如果控制器不需要任何其他配置,则这是可选的。 ParametersRef 可以引用标准 Kubernetes 资源,如 ConfigMap 或特定于实现的自定义资源。资源可以是集群范围的,也可以是命名空间范围的。 如果无法找到引用,请参阅不支持的 kind 或当该资源中的数据格式不正确时,GatewayClass SHOULD 将被拒绝,并将 "Accepted" 状态条件设置为 "False",以及 "InvalidParameters" 原因。
此网关Class 的网关可能会提供自己的 支持:特定于实施 |
16.1.2. .spec.parametersRef 复制链接链接已复制到粘贴板!
- 描述
ParametersRef 是对包含与 GatewayClass 对应的配置参数的资源的引用。如果控制器不需要任何其他配置,则这是可选的。
ParametersRef 可以引用标准 Kubernetes 资源,如 ConfigMap 或特定于实现的自定义资源。资源可以是集群范围的,也可以是命名空间范围的。
如果无法找到引用,请参阅不支持的 kind 或当该资源中的数据格式不正确时,GatewayClass SHOULD 将被拒绝,并将 "Accepted" 状态条件设置为 "False",以及 "InvalidParameters" 原因。
此网关Class 的网关可能会提供自己的
参数Ref
。当两者都被指定时,合并行为是特定于实现的。通常建议 GatewayClass 提供可由网关覆盖的默认值。支持:特定于实施
- 类型
-
object
- 必填
-
group
-
kind
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是引用的组。 |
|
| kind 是引用的类型。 |
|
| name 是引用的名称。 |
|
| namespace 是引用的命名空间。当引用命名空间范围的资源时,需要此字段,在引用集群范围的资源时必须取消设置。 |
16.1.3. .status 复制链接链接已复制到粘贴板!
- 描述
Status 定义 GatewayClass 的当前状态。
实现需要为所有 GatewayClass 资源填充状态,以指定其控制器名称。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 条件是此 GatewayClass 的控制器中的当前状态。 控制器应更喜欢为每个 Condition 类型使用 GatewayClassConditionType 值发布条件。 |
|
| condition 包含此 API 资源当前状态的一个方面的详细信息。 |
16.1.4. .status.conditions 复制链接链接已复制到粘贴板!
- 描述
条件是此 GatewayClass 的控制器中的当前状态。
控制器应更喜欢为每个 Condition 类型使用 GatewayClassConditionType 值发布条件。
- 类型
-
array
16.1.5. .status.conditions[] 复制链接链接已复制到粘贴板!
- 描述
- condition 包含此 API 资源当前状态的一个方面的详细信息。
- 类型
-
object
- 必填
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
属性 | 类型 | 描述 |
---|---|---|
|
| lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。 |
|
| observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。 |
|
| reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| CamelCase 或 foo.example.com/CamelCase 中的条件类型。 |