第 6 章 ClusterVersion [config.openshift.io/v1]


描述
ClusterVersion 是 ClusterVersionOperator 的配置。这是可以设置与自动更新相关的参数的位置。兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
类型
object
必填
  • spec

6.1. 规格

属性类型描述

apiVersion

字符串

APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

spec 是集群版本的所需状态 - Operator 可以正常工作,以确保将所需的版本应用到集群。

status

对象

status 包含有关可用更新以及任何 in-progress 更新的信息。

6.1.1. .spec

描述
spec 是集群版本的所需状态 - Operator 可以正常工作,以确保将所需的版本应用到集群。
类型
object
必填
  • clusterID
属性类型描述

功能

object

capabilities 配置可选的、核心集群组件的安装。这里的 null 值与空对象相同;请参阅子属性以了解默认语义。

channel

字符串

频道是明确请求一组非默认更新集的标识符。默认频道将包含适合生产集群的稳定更新。

clusterID

字符串

clusterid 唯一标识此集群。这应该是一个 RFC4122 UUID 值(xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxx)。这是必填字段。

desiredUpdate

对象

desiredUpdate 是一个可选字段,表示集群版本所需的值。设置此值将触发升级(如果当前版本与所需的版本不匹配)。推荐的更新值集合作为 status 中的可用更新的一部分,设置超出该范围的值可能会导致升级失败。其中一些字段与限制和这里描述的含义相关。1. 镜像被指定,指定了版本,架构会被指定。API 验证错误。2. 镜像被指定,未指定版本,未指定架构。您不应该这样做。版本被静默忽略,并使用镜像。3. 镜像被指定,未指定版本,架构会被指定。API 验证错误。4. 镜像被指定,未指定版本,未指定架构。镜像被使用。5. 未指定镜像,指定了版本,架构会被指定。使用所需架构来选择镜像。6 未指定镜像,未指定版本,系统未指定架构。使用当前架构来选择镜像。7. 镜像没有指定,未指定版本,架构会被指定。API 验证错误。8. image 没有指定,未指定版本,未指定构架。API 验证错误。如果升级失败,Operator 将停止并报告失败组件的状态。将所需的更新值设置为以前的版本会导致尝试回滚。并非所有回滚都将成功。

overrides

array

overrides 是由集群版本操作器管理的组件覆盖列表。标记组件非受管状态将阻止 Operator 创建或更新对象。

overrides[]

对象

ComponentOverride 允许覆盖组件的集群版本 Operator 的行为。

upstream

字符串

upstream 可以用来指定首选的更新服务器。默认情况下,它将对集群和地区使用适当的更新服务器。

6.1.2. .spec.capabilities

描述
capabilities 配置可选的、核心集群组件的安装。这里的 null 值与空对象相同;请参阅子属性以了解默认语义。
类型
object
属性类型描述

additionalEnabledCapabilities

数组(字符串)

additionalEnabledCapabilities 扩展一组受管功能超过 baselineCapabilitySet 中定义的基准。默认值为空集。

baselineCapabilitySet

string

baselineCapabilitySet 选择要启用的一组初始可选功能,这可以通过 additionalEnabledCapabilities 扩展。如果未设置,集群将选择一个默认值,默认可能会随时间改变。当前默认为 vCurrent。

6.1.3. .spec.desiredUpdate

描述
desiredUpdate 是一个可选字段,表示集群版本所需的值。设置此值将触发升级(如果当前版本与所需的版本不匹配)。推荐的更新值集合作为 status 中的可用更新的一部分,设置超出该范围的值可能会导致升级失败。其中一些字段与限制和这里描述的含义相关。1. 镜像被指定,指定了版本,架构会被指定。API 验证错误。2. 镜像被指定,未指定版本,未指定架构。您不应该这样做。版本被静默忽略,并使用镜像。3. 镜像被指定,未指定版本,架构会被指定。API 验证错误。4. 镜像被指定,未指定版本,未指定架构。镜像被使用。5. 未指定镜像,指定了版本,架构会被指定。使用所需架构来选择镜像。6 未指定镜像,未指定版本,系统未指定架构。使用当前架构来选择镜像。7. 镜像没有指定,未指定版本,架构会被指定。API 验证错误。8. image 没有指定,未指定版本,未指定构架。API 验证错误。如果升级失败,Operator 将停止并报告失败组件的状态。将所需的更新值设置为以前的版本会导致尝试回滚。并非所有回滚都将成功。
类型
object
属性类型描述

架构

string

architecture 是一个可选字段,用于指示集群架构所需的值。在这种上下文中,集群架构意味着单个架构或多架构。架构只能设置为 Multi,因此只允许从单一到多架构的更新。如果设置了架构,则无法设置镜像,而且必须设置版本。有效值为 'Multi' 和 empty。

force

布尔值

force 允许管理员更新到一个已验证或可升级检查的镜像。只有在验证了带外的镜像的真实性时才应使用此选项,因为提供的镜像将使用集群的完全管理访问权限运行。不要将此标志与来自未知或潜在恶意源的镜像一起使用。

image

string

Image 是一个包含更新的容器镜像位置。当所需版本没有存在于 availableUpdates 或 history 中时,应使用镜像。设置镜像时,版本将被忽略。设置镜像后,版本应为空。设置镜像时,无法指定架构。

version

string

Version 是一个语义版本,标识更新版本。如果指定了镜像,则忽略版本。如果指定架构,则需要版本。

6.1.4. .spec.overrides

描述
overrides 是由集群版本操作器管理的组件覆盖列表。标记组件非受管状态将阻止 Operator 创建或更新对象。
类型
array

6.1.5. .spec.overrides[]

描述
ComponentOverride 允许覆盖组件的集群版本 Operator 的行为。
类型
object
必填
  • group
  • kind
  • name
  • namespace
  • Unmanaged
属性类型描述

group

字符串

Group 标识 kind 所在 API 组。

kind

字符串

缩进要覆盖的对象。

name

字符串

name 是组件的名称。

namespace

字符串

namespace 是组件的命名空间。如果资源是集群范围,命名空间应该为空。

Unmanaged

布尔值

非受管控制,如果集群版本操作器是否应该停止管理此集群中的资源。默认:false

6.1.6. .status

描述
status 包含有关可用更新以及任何 in-progress 更新的信息。
类型
object
必填
  • 所需
  • observedGeneration
  • versionHash
属性类型描述

availableUpdates

``

availableUpdates 包含为这个集群推荐的更新。条件更新但未在 availableUpdates 中出现的更新可能会将这个集群公开给已知的问题。如果没有更新,或者指定了无效的频道,则此列表可能为空。

功能

object

capabilities 描述了可选、核心集群组件的状态。

conditionalUpdates

数组

conditionalUpdates 包含在这个集群满足特定所需条件时可能推荐的更新列表。对实际推荐的更新集感兴趣的消费者,应该使用 availableUpdates。如果没有更新,如果没有更新服务,或者指定了空或无效的频道,则此列表可能为空。

conditionalUpdates[]

object

ConditionalUpdate 代表一个更新,建议把当前集群上的一些集群协调,但可能不建议在当前集群中使用。

conditions

array

条件提供有关集群版本的信息。如果达到 desiredUpdate,则条件 "Available" 被设置为 true。如果应用了更新,则条件 "Progressing" 被设置为 true。如果更新当前被临时或永久错误阻止,则条件 "Degraded" 被设置为 true。当 metadata.generation 等于 status.generation 时,条件仅对当前 desiredUpdate 有效。

conditions[]

对象

ClusterOperatorStatusCondition 代表 Operator 的受管和监控组件的状态。

所需

对象

所需是集群协调的版本。如果集群尚未完全初始化,则将使用可用的信息来设置,这些信息可能是镜像或标签。

history

array

history 包含应用到集群的最新版本的列表。这个值在集群启动过程中可能为空,然后在应用新更新时更新。最新更新在列表中的第一个,按 recency 排序。如果完成推出部署,则历史记录中的更新状态为 Completed - 如果更新失败或应用了一半,则状态将为 Partial。只有有限数量的更新历史记录会被保留。

history[]

对象

UpdateHistory 是对集群的单个尝试更新。

observedGeneration

整数

observedGeneration 报告正在同步哪个 spec 版本。如果这个值不等于 metadata.generation,则所需的和条件字段可能代表之前的版本。

versionHash

字符串

versionHash 是集群将要更新的内容的指纹。Operator 使用它来避免不必要的工作,仅用于内部使用。

6.1.7. .status.capabilities

描述
capabilities 描述了可选、核心集群组件的状态。
类型
object
属性类型描述

enabledCapabilities

数组(字符串)

enabledCapabilities 列出了当前管理的所有功能。

knownCapabilities

数组(字符串)

knownCapabilities 列出当前集群已知的所有功能。

6.1.8. .status.conditionalUpdates

描述
conditionalUpdates 包含在这个集群满足特定所需条件时可能推荐的更新列表。对实际推荐的更新集感兴趣的消费者,应该使用 availableUpdates。如果没有更新,如果没有更新服务,或者指定了空或无效的频道,则此列表可能为空。
类型
数组

6.1.9. .status.conditionalUpdates[]

描述
ConditionalUpdate 代表一个更新,建议把当前集群上的一些集群协调,但可能不建议在当前集群中使用。
类型
object
必填
  • release
  • risks
属性类型描述

conditions

数组

条件代表条件更新当前状态的观察。已知类型是:建议,是否推荐对当前集群进行更新。

conditions[]

对象

条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,输入 FooStatus struct{ // Represents the observations of a foo’s current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions" // other fields }

release

object

Release 是更新的目标。

risks

数组

风险代表了与升级到目标发行版本相关的问题范围。cluster-version operator 将评估所有条目,只有在至少有一个条目和所有条目都推荐更新时才建议更新。

risks[]

object

ConditionalUpdateRisk 代表不推荐条件更新的原因和 cluster-state。

6.1.10. .status.conditionalUpdates[].conditions

描述
条件代表条件更新当前状态的观察。已知类型是:建议,是否推荐对当前集群进行更新。
类型
数组

6.1.11. .status.conditionalUpdates[].conditions[]

描述
条件包含此 API 资源当前状态的一个方面的详情。--- 这个结构旨在直接用作字段路径 .status.conditions 中的数组。例如,输入 FooStatus struct{ // Represents the observations of a foo’s current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions" // other fields }
类型
object
必填
  • lastTransitionTime
  • message
  • reason
  • status
  • type
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。

message

字符串

Message 是人类可读的消息,指示有关转换的详细信息。这可能是一个空字符串。

observedGeneration

整数

observedGeneration 代表 .metadata.generation,这是条件设置所基于的条件。例如,如果 .metadata.generation 目前为 12,但 .status.conditions[x].observedGeneration 是 9,则代表条件与实例的当前状态已不匹配。

reason

字符串

reason 包含程序标识符,指示条件最后一次转换的原因。特定条件类型的制作者可能会定义预期的值和此字段的含义,以及这些值是否被视为有保证的 API。该值应该是 CamelCase 字符串。此字段可能不是空的。

status

字符串

条件的状态,True, False, Unknown 之一。

type

字符串

CamelCase 或 foo.example.com/CamelCase 中的条件类型。-- Many .condition.type 值在资源间是一致的,但因为任意条件可能很有用(请参阅 .node.status.conditions),deconflict 的能力非常重要。它匹配的正则表达式是 (dns1123SubdomainFmt/)? (qualifiedNameFmt)

6.1.12. .status.conditionalUpdates[].release

描述
Release 是更新的目标。
类型
object
属性类型描述

Channels

数组(字符串)

channels 是当前发行版本所属的 Cincinnati 频道集合。

image

字符串

image 是包含更新的容器镜像位置。当此字段是 spec 的一部分时,如果指定了 version,并且 availableUpdates 字段包含匹配的版本,则 image 是可选的。

url

字符串

URL 包含有关此版本的信息。此 URL 由发行版本上的 'url' metadata 属性或更新 API 返回的元数据设置,应该以用户界面中的链接的形式显示。对于测试或每日发行版本,无法设置 URL 字段。

version

string

version 是一个语义版本,用于标识更新版本。当此字段是 spec 的一部分时,如果指定了 image,则 version 是可选的。

6.1.13. .status.conditionalUpdates[].risks

描述
风险代表了与升级到目标发行版本相关的问题范围。cluster-version operator 将评估所有条目,只有在至少有一个条目和所有条目都推荐更新时才建议更新。
类型
数组

6.1.14. .status.conditionalUpdates[].risks[]

描述
ConditionalUpdateRisk 代表不推荐条件更新的原因和 cluster-state。
类型
object
必填
  • matchingRules
  • message
  • 名称
  • url
属性类型描述

matchingRules

数组

matchingRules 是一个条件片段,用于决定哪个集群与风险匹配且不匹配。片段按降低的优先级排序。cluster-version 操作器将按顺序处理片段,并在第一个可以成功评估后停止。如果没有成功评估条件,则不建议更新。

matchingRules[]

object

clusterCondition 是输入的集群条件的联合。'type' 属性决定特定于类型的属性是相关的。在集群上评估时,条件可以匹配、不匹配或无法评估。

message

string

Message 提供有关更新风险的附加信息,当匹配的Rules 与集群状态匹配时。这只能被人类使用。它可以包含行 Feed 字符(U+000A),该字符应作为新行呈现。

名称

string

name 是不推荐条件更新的 CamelCase 原因,当匹配的Rules 与集群状态匹配时。

url

string

URL 包含有关此风险的信息。

6.1.15. .status.conditionalUpdates[].risks[].matchingRules

描述
matchingRules 是一个条件片段,用于决定哪个集群与风险匹配且不匹配。片段按降低的优先级排序。cluster-version 操作器将按顺序处理片段,并在第一个可以成功评估后停止。如果没有成功评估条件,则不建议更新。
类型
数组

6.1.16. .status.conditionalUpdates[].risks[].matchingRules[]

描述
clusterCondition 是输入的集群条件的联合。'type' 属性决定特定于类型的属性是相关的。在集群上评估时,条件可以匹配、不匹配或无法评估。
类型
object
必填
  • type
属性类型描述

promql

object

PromQL 代表基于 PromQL 的集群条件。

type

string

Type 代表 cluster-condition 类型。这将定义任何其他属性的成员和语义。

6.1.17. .status.conditionalUpdates[].risks[].matchingRules[].promql

描述
PromQL 代表基于 PromQL 的集群条件。
类型
object
必填
  • promql
属性类型描述

promql

string

PromQL 是一个 PromQL 查询分类集群。此查询应在匹配情况下返回 1,在 does-not-match 情况下返回 0。不返回时间序列的查询,或者返回 0 或 1 以外的值是评估失败。

6.1.18. .status.conditions

描述
条件提供有关集群版本的信息。如果达到 desiredUpdate,则条件 "Available" 被设置为 true。如果应用了更新,则条件 "Progressing" 被设置为 true。如果更新当前被临时或永久错误阻止,则条件 "Degraded" 被设置为 true。当 metadata.generation 等于 status.generation 时,条件仅对当前 desiredUpdate 有效。
类型
array

6.1.19. .status.conditions[]

描述
ClusterOperatorStatusCondition 代表 Operator 的受管和监控组件的状态。
类型
object
必填
  • lastTransitionTime
  • status
  • type
属性类型描述

lastTransitionTime

字符串

lastTransitionTime 是当前 status 属性最后一次更新的时间。

message

字符串

Message 提供有关当前条件的附加信息。这只能被人类使用。它可以包含行 Feed 字符(U+000A),该字符应作为新行呈现。

reason

字符串

reason 是条件当前状态的 CamelCase 原因。

status

字符串

条件的状态,True, False, Unknown 之一。

type

字符串

Type 指定此条件报告的方面。

6.1.20. .status.desired

描述
所需是集群协调的版本。如果集群尚未完全初始化,则将使用可用的信息来设置,这些信息可能是镜像或标签。
类型
object
属性类型描述

Channels

数组(字符串)

channels 是当前发行版本所属的 Cincinnati 频道集合。

image

字符串

image 是包含更新的容器镜像位置。当此字段是 spec 的一部分时,如果指定了 version,并且 availableUpdates 字段包含匹配的版本,则 image 是可选的。

url

字符串

URL 包含有关此版本的信息。此 URL 由发行版本上的 'url' metadata 属性或更新 API 返回的元数据设置,应该以用户界面中的链接的形式显示。对于测试或每日发行版本,无法设置 URL 字段。

version

string

version 是一个语义版本,用于标识更新版本。当此字段是 spec 的一部分时,如果指定了 image,则 version 是可选的。

6.1.21. .status.history

描述
history 包含应用到集群的最新版本的列表。这个值在集群启动过程中可能为空,然后在应用新更新时更新。最新更新在列表中的第一个,按 recency 排序。如果完成推出部署,则历史记录中的更新状态为 Completed - 如果更新失败或应用了一半,则状态将为 Partial。只有有限数量的更新历史记录会被保留。
类型
array

6.1.22. .status.history[]

描述
UpdateHistory 是对集群的单个尝试更新。
类型
object
必填
  • image
  • startedTime
  • state
  • 已验证
属性类型描述

acceptedRisks

string

acceptedRisks 记录被接受启动更新的风险。例如,它可能会认为一个 Upgradeable=False,或缺少通过 desiredUpdate.force 覆盖的签名,或者没有处于 availableUpdates 组推荐的更新目标。

completionTime

``

completionTime (如果设置)是完全应用更新的时间。当前应用的更新将有一个 null completion 时间。总会为不是当前更新的条目设置完成时间(通常是下一次更新的开始时间)。

image

字符串

image 是包含更新的容器镜像位置。这个值始终会被填充。

startedTime

字符串

startedTime 是启动更新的时间。

state

字符串

State 反映了是否完全应用更新。Partial 状态表示更新没有被完全应用,但 Completed 状态表示更新至少一次(更新的所有部分都成功应用)。

已验证

布尔值

验证指示提供的更新是否在安装前正确验证。如果这是 false,则集群可能无法被信任。验证,在接受更新目标时,未涵盖依赖于集群状态的可升级检查。

version

string

version 是一个语义版本,用于标识更新版本。如果请求的镜像没有定义版本,或者检索镜像失败,则该值可能为空。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.