故障切换 v1.3.0 自定义资源定义

规范架构

FailoverSpec 表示单次故障转移操作的参数。

dbclusterRef: string
newPrimary: string

字段

类型
必填或可选

 

说明
dbclusterRef
string
必填
DBClusterRef 是用于发起故障转移的 DBCluster 名称。必须在引用的 DBCluster 所在的命名空间中创建 Failover 对象。
newPrimary
string
可选
NewPrimary 是将要提升为新主实例的备用实例。如果留空,系统会自动选择最佳实例进行故障切换。

状态架构

FailoverStatus 表示故障转移的当前状态。

conditions:
- lastTransitionTime: string
  message: string
  observedGeneration: integer
  reason: string
  status: string
  type: string
createTime: string
criticalIncidents:
- code: string
  createTime: string
  message: string
  messageTemplateParams: object
  resource:
    component: string
    location:
      cluster: 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[]
object
可选
条件表示实体当前状态的最新可用观察结果。
conditions[].lastTransitionTime
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。该值必须是驼峰式字符串。 此字段不得为空。
conditions[].status
string
必填
条件的状态,为 True、False、Unknown 之一。
conditions[].type
string
必填
条件类型(采用驼峰命名法)或 foo.example.com/CamelCase。许多 .condition.type 值在各个资源中保持一致,例如“可用”。 由于任意条件(例如 .node.status.conditions)可能很有用,因此能够解析冲突非常重要。与其匹配的正则表达式为 (dns1123SubdomainFmt/)?(qualifiedNameFmt)。
createTime
string
可选
CreateTime 是内部故障转移工作流机制的创建时间。
criticalIncidents[]
object
必填
CriticalIncidents 是所有有效严重事故的平面列表。
criticalIncidents[].code
string
必填
Code 是此特定错误的错误代码。错误代码是 DBSE+numeric 字符串,例如 DBSE1012
criticalIncidents[].createTime
string
必填
CreateTime 是此突发事件在来源处创建时的时间戳。
criticalIncidents[].message
string
可选
Message 用于描述发生的突发事件或错误。
criticalIncidents[].messageTemplateParams
object
可选
MessageTemplateParams 包含在界面中生成简单易用的数据驱动型消息版本所需的键值对。
criticalIncidents[].resource
object
必填
资源包含报告了相应事故的数据库服务组件的信息,以及 Kubernetes 资源的信息。
criticalIncidents[].resource.component
string
必填
组件是报告了相应问题的数据库服务子系统的内部标识符。
criticalIncidents[].resource.location
object
可选
位置信息。
criticalIncidents[].resource.location.cluster
string
可选
受影响 Kubernetes 资源所在集群的名称。
criticalIncidents[].resource.location.group
string
可选
Kubernetes 资源的组名称。
criticalIncidents[].resource.location.kind
string
可选
Kubernetes 资源的类型。
criticalIncidents[].resource.location.name
string
可选
受影响 Kubernetes 资源的名称。
criticalIncidents[].resource.location.namespace
string
可选
受影响 Kubernetes 资源的命名空间。
criticalIncidents[].resource.location.version
string
可选
Kubernetes 资源的版本。
criticalIncidents[].stackTrace[]
object
可选
堆栈轨迹中的消息的非结构化列表。
criticalIncidents[].stackTrace[].component
string
可选
记录消息的数据库服务组件的名称。
criticalIncidents[].stackTrace.message
string
可选
记录的消息。
criticalIncidents[].transientUntil
string
可选
TransientUntil(如果存在)表示在指定时间之前必须将问题视为暂时性问题。
endTime
string
可选
EndTime 是故障转移达到最终状态的时间。
internal
object
可选
“内部”供系统控制器使用。请勿依赖此部分中的信息。
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 表示故障切换仍在进行中。
  • 成功表示故障切换已完成。当新的主要实例成功升级后,该过程即告完成。
  • Failed_RollbackInProgress 表示运营商无法提升新的主实例,并且正在尝试重启旧主实例。
  • Failed_RollbackSuccess 表示操作员无法将新主实例提升为主实例,并且成功重启了旧主实例。
  • Failed_RollbackFailed 表示操作员无法提升新主实例,也无法重启旧主实例。您可能需要手动修复 DBCluster。