规范架构
SwitchoverSpec 定义切换的所选状态。
dbclusterRef: string
newPrimary: string
newPrimaryInstance: string
primaryHost: string
| 字段类型 必需或可选 | 说明 | 
|---|---|
| dbclusterRef | |
| string可选 | DBClusterRef 是用于启动切换的 DBCluster 名称。 Switchover对象必须在它引用的 DBCluster 所在的命名空间中创建。此字段对于切换是必需的。 | 
| newPrimary | |
| string可选 | NewPrimary 是与当前主实例切换的备用实例。 | 
| newPrimaryInstance | |
| string可选 | NewPrimaryInstance 是与当前主实例切换的备用实例。已弃用:请改用 NewPrimary 字段。 | 
| primaryHost | |
| string可选 | PrimaryHost 是始终指向主实例的 IP。 | 
状态架构
SwitchoverStatus 定义观察到的切换状态。
conditions:
- lastTransitionTime: string
  message: string
  observedGeneration: integer
  reason: string
  status: string
  type: string
createTime: string
critcalIncidents:
- code: string
  createTime: string
  message: string
  messageTemplateParams:
  resource:
    component: string
    location:
      cluster: string
      group: string
      kind: string
      name: string
      namespace: string
      version: string
  stackTrace:
  - component: string
    message: string
  transientUntil: string
endTime: string
internal:
  newPrimary: string
  oldPrimary: string
  phase: string
observedGeneration: integer
reconciled: boolean
startTime: string
state: string
| 字段类型 必需或可选 | 说明 | 
|---|---|
| conditions | |
| list (object)可选 | Conditions 表示实体当前状态的最新可用观察结果。 | 
| conditions[] | |
| object可选 | Condition 包含此 API 资源当前状态的一个方面的详细信息。--- 此结构体旨在直接用作字段路径 .status.conditions 处的数组。例如:\n type FooStatus struct{ // 表示 foo 当前状态的观察结果。// 已知 .status.conditions.type 包括:“Available”“Progressing”和“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\"` \n // 其他字段 } | 
| conditions[].lastTransactionTime | |
| string必需 | lastTransitionTime 是条件上次从一种状态转换到另一种状态的时间。这应该是底层条件更改的时间。如果该信息未知,则可以使用 API 字段更改的时间。 | 
| conditions[].message | |
| string必需 | message 是人类可读的消息,指示有关转换的详细信息。这可能是空字符串。 | 
| conditions[].observedGeneration | |
| integer可选 | observedGeneration 表示设置条件所基于的 .metadata.generation。例如,如果 .metadata.generation 为 12,但 .status.conditions[x].observedGeneration 为 9,则表示条件相对于实例的当前状态已过时。 | 
| conditions[].reason | |
| string必需 | reason 包含一个程序化标识符,指示条件上次转换的原因。特定条件类型的生成者可以为此字段定义预期值和含义,以及这些值是否被视为有保证的 API。值应为 CamelCase 字符串。此字段不得为空。 | 
| conditions[].status | |
| string必需 | 有效值: | 
| conditions[].type | |
| string必需 | 条件的类型,采用 CamelCase 或 foo.example.com/CamelCase 形式。--- 许多 .condition.type 值(例如 Available)在各个资源中是一致的,但由于任意条件都可能会有用(请参阅 .node.status.conditions),因此能够解决冲突非常重要。它匹配的正则表达式为 (dns1123SubdomainFmt/)?(qualifiedNameFmt) | 
| createTime | |
| string可选 | CreateTime 是内部切换工作流机制创建的时间。 | 
| criticalIncidents | |
| list (object)可选 | CriticalIncidents 是所有活跃的严重突发事件的扁平列表。 | 
| criticalIncidents[] | |
| object可选 | CriticalIncident 包含有关正在进行的严重突发事件的所有信息。 | 
| criticalIncidents[].code | |
| string必需 | Code 是此特定错误的错误代码。错误代码是 DBSE+数字字符串,例如“DBSE1012”。 | 
| criticalIncidents[].createTime | |
| string必需 | CreateTime 是在来源创建此突发事件时的时间戳。 | 
| criticalIncidents[].message | |
| string可选 | Message 描述发生的突发事件/错误。 | 
| criticalIncidents[].messageTemplateParams | |
| object可选 | MessageTemplateParams 包含在界面中生成人性化数据驱动型消息版本所需的键值对。 | 
| criticalIncidents[].resource | |
| object必需 | Resource 包含有关报告突发事件的数据库服务组件以及 Kubernetes 资源的信息。 | 
| criticalIncidents[].resource.component | |
| string必需 | Component 是报告突发事件的数据库服务子系统的内部标识符。 | 
| criticalIncidents[].resource.location | |
| object可选 | 位置 | 
| criticalIncidents[].resource.location.cluster | |
| string可选 | Cluster 是受影响的 Kubernetes 资源的集群名称。 | 
| criticalIncidents[].resource.location.group | |
| string可选 | Group 是 Kubernetes 资源的组名称。 | 
| criticalIncidents[].resource.location.kind | |
| string可选 | Kind 是 Kubernetes 资源的种类。 | 
| criticalIncidents[].resource.location.name | |
| string可选 | Name 是受影响的 Kubernetes 资源的名称。 | 
| criticalIncidents[].resource.location.namespace | |
| string可选 | Namespace 是受影响的 Kubernetes 资源的命名空间。 | 
| criticalIncidents[].resource.location.version | |
| TYPE可选 | Version 是 Kubernetes 资源的版本。 | 
| criticalIncidents[].stackTrace | |
| list (object)可选 | StackTrace 包含来自堆栈轨迹的消息的非结构化列表。 | 
| criticalIncidents[].stackTrace[] | |
| object可选 | CriticalIncidentStackTraceMessage 包含可用于突发事件的堆栈轨迹信息。 | 
| criticalIncidents[].stackTrace[].component | |
| string可选 | Component 是记录消息的数据库服务组件的名称。 | 
| criticalIncidents[].stackTrace[].message | |
| string可选 | 记录的消息。 | 
| criticalIncidents[].stackTrace[].message | |
| string可选 | 如果存在,则 TransientUntil 指示在指定时间之前,问题应被视为暂时性问题。 | 
| endTime | |
| string可选 | EndTime 是切换达到最终状态的时间。 | 
| internal | |
| object可选 | Internal 由系统控制器使用。请勿依赖此部分中的信息。 | 
| internal.newPrimary | |
| string必需 | NewPrimary 是我们尝试切换到的实例。 | 
| internal.oldPrimary | |
| string必需 | OldPrimary 是切换开始时的主实例。 | 
| internal.phase | |
| string可选 | 有效值: | 
| observedGeneration | |
| integer可选 | 内部:控制器观察到的生成。 | 
| reconciled | |
| boolean可选 | 内部:资源是否由控制器进行了协调。 | 
| startTime | |
| string可选 | StartTime 是切换操作开始的时间。 | 
| state | |
| string可选 | 有效值: InProgress、Success、Failed_RollbackInProgress、Failed_RollbackSuccess、Failed_RollbackFailed。InProgress表示切换仍在进行中。Success表示切换已完成。Failed_RollbackInProgress表示操作器无法提升新的主实例,并且正在尝试重启旧的主实例。Failed_RollbackSuccess表示操作器无法提升新的主实例,并且已成功重启旧的主实例。Failed_RollbackFailed表示操作器无法提升新的主实例,并且无法重启旧的主实例。可能需要手动修复 DBCluster。 |