DBInstance v1.3.0 自訂資源定義

選取說明文件版本:

規格結構定義

DBInstanceSpec 會定義 DBInstance 的所需狀態。

conditions:
- lastTransactionTime: string
  message: string
  observedGeneration: integer
  reason: string
  status: string
  type: string
criticalIncidents:
- code: string
  createTime: string
  message: string
  messageTemplateParams: object
  resource:
    component: string
    location:
      cluster: string
      group: string
      kind: string
      name: string
      namespace: string
      version: string
  stackTrace:
  - component: string
    message: string
  transientUntil: string
lastBackupTime: string
nextBackupTime: string
observedGeneration: integer
dbcParent:
  name: string
instanceType: string
isStopped: boolean
nodeCount: integer
progressTimeout: string
resources:
  cpu:
  - disks:
    accessModes: string
    annotations: object
    name: string
    selector:
      matchExpressions:
      - key: string
        operator: string
        values: string
        matchLabels: object
    size: string
    storageClass: string
    volumeName: string
  memory: integer or string
schedulingconfig:
  nodeaffinity:
    preferredDuringSchedulingIgnoredDuringExecution:
      preference:
        matchExpressions:
        - key: string
          operator: string
          values: string
        matchFields:
        - key: string
          operator: string
          values: string
      weight: integer
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
        matchExpressions:
        - key: string
          operator: string
          values: string
        matchFields:
        - key: string
          operator: string
          values: string
  podAffinity:
    preferredDuringSchedulingIgnoredDuringExecution:
      podAffinityTerm:
        labelSelector:
          matchExpressions:
          - key: string
            operator: string
            values: string
          matchLabels:
        namespaceSelector:
          matchExpressions:
          - key: string
            operator: string
            values: string
          matchLabels: object
        namespaces: string
        topologyKey: string
      weight: integer
    requiredDuringSchedulingIgnoredDuringExecution:
      labelSelector:
        matchExpressions:
        - key: string
          operator: string
          values: string
        matchLabels: object
      namespaceSelector:
        matchExpressions:
        - key: string
          operator: string
          values: string
        matchLabels: object
      namespaces: string
      topologyKey: string
  podAntiAffinity:
    preferredDuringSchedulingIgnoredDuringExecution:
      podAffinityTerm:
        labelSelector:
          matchExpressions:
          - key: string
            operator: string
            values: string
          matchLabels:
        namespaceSelector:
          matchExpressions:
          - key: string
            operator: string
            values: string
          matchLabels: object
        namespaces: string
        topologyKey: string
      weight: integer
    requiredDuringSchedulingIgnoredDuringExecution:
      labelSelector:
        matchExpressions:
        - key: string
          operator: string
          values: string
        matchLabels: object
      namespaceSelector:
        matchExpressions:
        - key: string
          operator: string
          values: string
        matchLabels: object
      namespaces: string
      topologyKey: string
  tolerations:
  - effect: string
    key: string
    operator: string
    tolerationSeconds: integer
    value: string

欄位

類型
必要或選填

 

說明
dbcParent
object
選填
DBClusterParent 是這個 DBInstance 從中複製的 DBCluster。
dbcParent.name
string
選填
參照對象的名稱。詳情請參閱「名稱」。
instanceType
string
選填
InstanceType 表示 DBInstance 的類型。目前僅支援「ReadPool」類型。
isStopped
boolean
選填
IsStopped 為 true 時,會停止這個 DBInstance 中的 DBNodes。這個欄位預設為 false。停止 DBCluster 的主要 DBNode 不會自動停止 ReadPool DBInstance 的 DBNodes。停止執行個體時,系統會釋出執行個體的運算資源 (CPU、記憶體)。不過,DBNode 仍會保留儲存空間資源。
nodeCount
integer
必填
NodeCount 會決定要為這個 DBInstance 建立的 DBNode 數量。
progressTimeout
string
選填
ProgressTimeout 會決定控制器嘗試佈建 DBNode 的秒數,或 DBNode 可能無法就緒的秒數,之後控制器會將 DBNode 視為失敗。如果值為 0,表示不使用逾時。
resources
object
選填
資源會指定用於屬於這個 DBInstance 的執行個體 (也就是 DBNodes) 的資源。如果省略,執行個體會使用與 DBCluster 的主要執行個體相同的資源。
resources.cpu
integer or string
必填
分配給資料庫容器的 CPU 數量。
resources.disks
object
必填
分配給資料庫容器的磁碟規格。
resources.disks.accessModes
string
選填
AccessModes 包含磁碟區的所需存取模式。詳情請參閱「存取模式」。
resources.disks.annotations
object
選填
已在永久磁碟區要求中新增其他註解。因此可與其他工具整合。
resources.disks.name
string
必填
磁碟名稱。允許的值包括「DataDisk」、「LogDisk」、「BackupDisk」和「ObsDisk」。
resources.disks.selector
object
選填
要用於繫結的磁碟區標籤查詢。這是選填欄位。如果設定這個欄位,系統會使用標籤相符的磁碟區做為磁碟的備份磁碟區。詳情請參閱 PersistentVolumeClaimSpec
resources.disks.selector.matchExpressions
object
選填
matchExpressions 是標籤選取器需求的清單。這些條件會以 AND 運算子連結。
resources.disks.selector.matchExpressions.key
string
必填
鍵是選取器套用的標籤鍵。
resources.disks.selector.matchExpressions.operator
string
必填
運算子代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists 和 DoesNotExist。
resources.disks.selector.matchExpressions.values
string
選填
values 是字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。這個陣列會在策略性合併修補程式期間遭到取代。
resources.disks.selector.matchLabels
object
選填
matchLabels 是 {key,value} 組合的對應。matchLabels 對應中的單一 {key,value} 相當於 matchExpressions 的元素,其鍵欄位為「key」,運算子為「In」,且值陣列只包含「value」。這些條件會以 AND 運算子連結。
resources.disks.size
string
必填
磁碟大小 (以位元組為單位),例如「10Gi」代表 10 Gibibytes。允許的大小單位前置字元為:以 2 為底的「Ki」、「Mi」、「Gi」、「Ti」、「Pi」和「Ei」。10 倍的單位也包括「K」、「M」、「G」、「T」、「P」和「E」。詳情請參閱「單位前置字元」。
resources.disks.storageClass
string
選填
StorageClass 會指向特定 CSI 儲存空間類別。這是選填欄位。如果未設定這個欄位,系統會使用 Kubernetes 叢集的預設 CSI 儲存空間類別。如果 Kubernetes 叢集沒有預設值,則持續性磁碟區聲明會失敗,資料庫叢集也無法佈建。詳情請參閱「儲存空間級別」。
resources.disks.volumeName
string
選填
VolumeName 是繫結至這個磁碟的永久磁碟區繫結參照。這是選填欄位。這樣就能重複使用現有磁碟區。請注意,如果指定這個欄位,「storageClass」值將不會生效。詳情請參閱「繫結」。
resources.memory
integer or string
必填
分配給資料庫容器的記憶體量。
schedulingConfig
object
選填
SchedulingConfig 會指定執行個體在 Kubernetes 節點上的排程方式。如果省略,執行個體會使用與 DBCluster 主要執行個體相同的排程設定。排程設定中的任何欄位變更時,Kubernetes Pod 可能會根據設定重新排程到不同節點。
schedulingConfig.nodeAffinity
object
選填
NodeAffinity 會說明執行個體的節點相依性排程規則。
schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
object
選填
排程器會優先將 Pod 排程至符合這個欄位指定相依性運算式的節點。排程器可能會選擇違反一或多個運算式的節點。最優先的節點是權重總和最大的節點。換句話說,對於符合所有排程需求的每個節點 (資源要求、requiredDuringScheduling 關聯性運算式等),請逐一檢查這個欄位的元素,如果節點符合對應的 matchExpressions,則將「權重」加到總和中;權重總和最高的節點就是最優先的節點。
schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference
object
必填
與對應權重相關聯的節點選取器字詞。
schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions
object
選填
依節點標籤列出的節點選取器需求。
schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.key
string
必填
選取器套用的標籤鍵。
schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operator
string
必填
代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists、DoesNotExist、Gt 和 Lt。
schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values
string
選填
字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。如果運算子為 Gt 或 Lt,值陣列必須只有一個元素,且會解譯為整數。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields
object
選填
依節點欄位列出的節點選取器需求清單。
schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.key
string
必填
選取器套用的標籤鍵。
schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operator
string
必填
代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists、DoesNotExist、Gt 和 Lt。
schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values
string
選填
字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。如果運算子為 Gt 或 Lt,值陣列必須只有一個元素,且會解譯為整數。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
必填
與對應 nodeSelectorTerm 相符的權重,範圍為 1 到 100。
schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
object
選填
如果在排程時未滿足這個欄位指定的親和性需求,系統就不會將 Pod 排程到節點上。如果在 Pod 執行期間,因更新等因素導致不符合這個欄位指定的親和性需求,系統可能會或可能不會嘗試最終將 Pod 從節點中移除。
schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
object
必填
節點選取器字詞清單。這些字詞會以 OR 運算子連結。
schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
object
選填
依節點標籤列出的節點選取器需求。
schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.key
string
必填
選取器套用的標籤鍵。
schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator
string
必填
代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists、DoesNotExist、Gt 和 Lt。
schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
string
選填
字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。如果運算子為 Gt 或 Lt,值陣列必須只有一個元素,且會解譯為整數。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields
object
選填
依節點欄位列出的節點選取器需求清單。
schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.key
string
必填
選取器套用的標籤鍵。
schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator
string
必填
代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists、DoesNotExist、Gt 和 Lt。
schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
string
選填
字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。如果運算子為 Gt 或 Lt,值陣列必須只有一個元素,且會解譯為整數。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.podAffinity
object
選填
PodAffinity 說明執行個體的 Pod 相依性排程規則。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution
object
選填
排程器會優先將 Pod 排程至符合這個欄位指定相依性運算式的節點。排程器可能會選擇違反一或多個運算式的節點。 權重總和最高的節點會優先採用。針對符合所有排程需求的每個節點 (例如資源要求和 requiredDuringScheduling 親和性運算式),請逐一疊代這個欄位的元素,並將「權重」加到總和中 (如果節點有符合對應 podAffinityTerm 的 Pod)。總和最高的節點是首選。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm
object
必填
與對應權重相關聯的 Pod 親和性字詞。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector
object
選填
一組資源 (在本例中為 Pod) 的標籤查詢。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions
object
選填
matchExpressions 是標籤選取器需求的清單。這些條件會以 AND 運算子連結。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.key
string
必填
鍵是選取器套用的標籤鍵。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.operator
string
必填
運算子代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists 和 DoesNotExist。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.values
string
選填
values 是字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchLabels
object
選填
matchLabels 是 {key,value} 組合的對應。matchLabels 對應中的單一 {key,value} 相當於 matchExpressions 的元素,其鍵欄位為「key」,運算子為「In」,且值陣列只包含「value」。這些條件會以 AND 運算子連結。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector
object
選填
針對字詞適用的命名空間集進行標籤查詢。這個詞彙適用於此欄位選取的命名空間,以及命名空間欄位中列出的命名空間的聯集。空值選取器和空值或空白命名空間清單表示「這個 Pod 的命名空間」。空白選取器 ({}) 會比對所有命名空間。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions
object
選填
matchExpressions 是標籤選取器需求的清單。這些條件會以 AND 運算子連結。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.key
string
必填
鍵是選取器套用的標籤鍵。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.operator
string
必填
運算子代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists 和 DoesNotExist。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.values
string
選填
values 是字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchLabels
object
選填
matchLabels 是 {key,value} 組合的對應。matchLabels 對應中的單一 {key,value} 相當於 matchExpressions 的元素,其鍵欄位為「key」,運算子為「In」,且值陣列只包含「value」。這些條件會以 AND 運算子連結。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces
string
選填
namespaces 會指定詞彙適用的命名空間名稱靜態清單。這個詞彙適用於此欄位中列出的命名空間,以及 namespaceSelector 選取的命名空間。如果命名空間清單為空或為空值,且 namespaceSelector 為空值,則表示「這個 Pod 的命名空間」。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces
string
必填
這個 Pod 必須與指定命名空間中符合 labelSelector 的 Pod 位於同一位置 (親和性) 或不同位置 (反親和性)。共置是指在節點上執行,而節點的標籤值 (含拓撲鍵) 與任何所選 Pod 執行的節點相符。拓撲鍵不得為空。
schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
必填
與相符的對應 podAffinityTerm 相關聯的權重,範圍為 1 到 100。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution
object
選填
如果在排程時未滿足這個欄位指定的親和性需求,系統就不會將 Pod 排程到節點上。如果在 Pod 執行期間,因 Pod 標籤更新等因素,導致不符合這個欄位指定的親和性規定,系統可能會嘗試最終從節點中移除 Pod,也可能不會。如果有多個元素,系統會將對應於每個 podAffinityTerm 的節點清單交集;換句話說,所有條件都必須符合。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
選填
一組資源 (在本例中為 Pod) 的標籤查詢。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
object
選填
matchExpressions 是標籤選取器需求的清單。這些條件會以 AND 運算子連結。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
string
必填
鍵是選取器套用的標籤鍵。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
string
必填
運算子代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists 和 DoesNotExist。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
string
選填
values 是字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
object
選填
matchLabels 是 {key,value} 組合的對應。matchLabels 對應中的單一 {key,value} 相當於 matchExpressions 的元素,其鍵欄位為「key」,運算子為「In」,且值陣列只包含「value」。這些條件會以 AND 運算子連結。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
object
選填
針對字詞適用的命名空間集進行標籤查詢。這個詞彙適用於此欄位選取的命名空間,以及命名空間欄位中列出的命名空間的聯集。空值選取器和空值或空白命名空間清單表示「這個 Pod 的命名空間」。空白選取器 ({}) 會比對所有命名空間。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
object
選填
matchExpressions 是標籤選取器需求的清單。這些條件會以 AND 運算子連結。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
string
必填
鍵是選取器套用的標籤鍵。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
string
必填
運算子代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists 和 DoesNotExist。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
string
選填
values 是字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
object
選填
matchLabels 是 {key,value} 組合的對應。matchLabels 對應中的單一 {key,value} 相當於 matchExpressions 的元素,其鍵欄位為「key」,運算子為「In」,且值陣列只包含「value」。這些條件會以 AND 運算子連結。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
string
選填
namespaces 會指定詞彙適用的命名空間名稱靜態清單。這個詞彙適用於此欄位中列出的命名空間,以及 namespaceSelector 選取的命名空間。如果命名空間清單為空或為空值,且 namespaceSelector 為空值,則表示「這個 Pod 的命名空間」。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
string
選填
namespaces 會指定詞彙適用的命名空間名稱靜態清單。這個詞彙適用於此欄位中列出的命名空間,以及 namespaceSelector 選取的命名空間。如果命名空間清單為空或為空值,且 namespaceSelector 為空值,則表示「這個 Pod 的命名空間」。
schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
string
必填
這個 Pod 必須與指定命名空間中符合 labelSelector 的 Pod 位於同一位置 (親和性) 或不同位置 (反親和性)。共置是指在節點上執行,而節點的標籤值 (含拓撲鍵) 與任何所選 Pod 執行的節點相符。拓撲鍵不得為空。
schedulingConfig.podAntiAffinity
string
必填
這個 Pod 必須與指定命名空間中符合 labelSelector 的 Pod 位於同一位置 (親和性) 或不同位置 (反親和性)。共置是指在節點上執行,而節點的標籤值 (含拓撲鍵) 與任何所選 Pod 執行的節點相符。拓撲鍵不得為空。
schedulingConfig.podAntiAffinity
object
選填
PodAntiAffinity 會說明執行個體的 Pod 反相依性排程規則。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
object
選填
排程器會優先將 Pod 排程至符合這個欄位指定反親和性運算式的節點,但排程器可能會選擇違反一或多個運算式的節點。 最優先的節點是權重總和最大的節點。換句話說,對於符合所有排程需求 (資源要求、requiredDuringScheduling 反親和性運算式等) 的每個節點,請逐一疊代這個欄位的元素,並將「權重」加到總和中 (如果節點有符合對應 podAffinityTerm 的 Pod)。總和最高的節點是首選。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm
object
必填
與對應權重相關聯的 Pod 親和性字詞。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector
object
選填
一組資源 (在本例中為 Pod) 的標籤查詢。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions
object
選填
matchExpressions 是標籤選取器需求的清單。這些條件會以 AND 運算子連結。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.key
string
必填
鍵是選取器套用的標籤鍵。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.operator
string
必填
運算子代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists 和 DoesNotExist。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.values
string
選填
values 是字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchLabels
object
選填
matchLabels 是 {key,value} 組合的對應。matchLabels 對應中的單一 {key,value} 相當於 matchExpressions 的元素,其鍵欄位為「key」,運算子為「In」,且值陣列只包含「value」。這些條件會以 AND 運算子連結。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector
object
選填
針對字詞適用的命名空間集進行標籤查詢。這個詞彙適用於此欄位選取的命名空間,以及命名空間欄位中列出的命名空間的聯集。空值選取器和空值或空白命名空間清單表示「這個 Pod 的命名空間」。空白選取器 ({}) 會比對所有命名空間。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions
object
選填
matchExpressions 是標籤選取器需求的清單。這些條件會以 AND 運算子連結。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.key
string
必填
鍵是選取器套用的標籤鍵。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.operator
string
必填
運算子代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists 和 DoesNotExist。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.values
string
選填
values 是字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchLabels
string
選填
matchLabels 是 {key,value} 組合的對應。matchLabels 對應中的單一 {key,value} 相當於 matchExpressions 的元素,其鍵欄位為「key」,運算子為「In」,且值陣列只包含「value」。這些條件會以 AND 運算子連結。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces
string
選填
namespaces 會指定詞彙適用的命名空間名稱靜態清單。這個詞彙適用於此欄位中列出的命名空間,以及 namespaceSelector 選取的命名空間。如果命名空間清單為空或為空值,且 namespaceSelector 為空值,則表示「這個 Pod 的命名空間」。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey
string
必填
這個 Pod 必須與指定命名空間中符合 labelSelector 的 Pod 位於同一位置 (親和性) 或不同位置 (反親和性)。共置是指在節點上執行,而節點的標籤值 (含拓撲鍵) 與任何所選 Pod 執行的節點相符。拓撲鍵不得為空。
schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
必填
與相符的對應 podAffinityTerm 相關聯的權重,範圍為 1 到 100。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution
object
選填
如果在排程時未滿足這個欄位指定的反親和性需求,系統就不會將 Pod 排程到節點上。如果在 Pod 執行期間,因 Pod 標籤更新等原因,導致系統無法滿足這個欄位指定的反親和性需求,系統可能會或可能不會嘗試最終將 Pod 從節點中移除。如果有多個元素,系統會將對應於每個 podAffinityTerm 的節點清單交集,也就是說,必須滿足所有條件。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
選填
一組資源 (在本例中為 Pod) 的標籤查詢。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
object
選填
matchExpressions 是標籤選取器需求的清單。這些條件會以 AND 運算子連結。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
string
必填
鍵是選取器套用的標籤鍵。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
string
必填
運算子代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists 和 DoesNotExist。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
string
選填
values 是字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.matchLabels
object
選填
matchLabels 是 {key,value} 組合的對應。matchLabels 對應中的單一 {key,value} 相當於 matchExpressions 的元素,其鍵欄位為「key」,運算子為「In」,且值陣列只包含「value」。這些條件會以 AND 運算子連結。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
object
選填
針對字詞適用的命名空間集進行標籤查詢。這個詞彙適用於此欄位選取的命名空間,以及命名空間欄位中列出的命名空間的聯集。空值選取器和空值或空白命名空間清單表示「這個 Pod 的命名空間」。空白選取器 ({}) 會比對所有命名空間。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
object
選填
matchExpressions 是標籤選取器需求的清單。這些條件會以 AND 運算子連結。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
string
必填
鍵是選取器套用的標籤鍵。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
string
必填
運算子代表鍵與一組值的關係。有效運算子包括 In、NotIn、Exists 和 DoesNotExist。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
string
選填
values 是字串值陣列。如果運算子為 In 或 NotIn,值陣列不得為空。如果運算子為 Exists 或 DoesNotExist,值陣列必須為空。這個陣列會在策略性合併修補程式期間遭到取代。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
object
選填
matchLabels 是 {key,value} 組合的對應。matchLabels 對應中的單一 {key,value} 相當於 matchExpressions 的元素,其鍵欄位為「key」,運算子為「In」,且值陣列只包含「value」。這些條件會以 AND 運算子連結。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
string
選填
namespaces 會指定詞彙適用的命名空間名稱靜態清單。這個詞彙適用於此欄位中列出的命名空間,以及 namespaceSelector 選取的命名空間。如果命名空間清單為空或為空值,且 namespaceSelector 為空值,則表示「這個 Pod 的命名空間」。
schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
string
必填
這個 Pod 必須與指定命名空間中符合 labelSelector 的 Pod 位於同一位置 (親和性) 或不同位置 (反親和性)。共置是指在節點上執行,而節點的標籤值 (含拓撲鍵) 與任何所選 Pod 執行的節點相符。拓撲鍵不得為空。
schedulingConfig.tolerations
object
選填
容許事項:可管理是否允許在已套用特定汙點的 Kubernetes 節點上排程執行個體。
schedulingConfig.tolerations.effect
string
選填
效果表示要比對的汙染效果。如果為空白,則表示符合所有汙染效果。如有指定,允許的值為 NoSchedule、PreferNoSchedule 和 NoExecute。
schedulingConfig.tolerations.key
string
選填
Key 是容許事項適用的污點鍵。如果為空白,則表示比對所有汙染鍵。如果金鑰為空白,運算子必須為 Exists。這個組合表示要比對所有值和所有鍵。
schedulingConfig.tolerations.operator
string
選填
運算子代表鍵與值之間的關係。有效運算子為「存在」和「等於」。預設值為「Equal」。「Exists」等同於值的萬用字元,因此 Pod 可以容許特定類別的所有汙點。
schedulingConfig.tolerations.tolerationSeconds
integer
選填
TolerationSeconds 代表容許條件容許汙染的時間長度 (必須是 NoExecute 效果,否則系統會忽略這個欄位)。預設不會設定,表示永遠容許汙染 (不會移除)。系統會將零和負值視為 0 (立即移除)。
schedulingConfig.tolerations.value
string
選填
值是容許值比對的汙染值。如果運算子為 Exists,值必須為空值,否則就只是普通字串。

狀態結構定義

DBInstanceStatus 會定義 DBInstance 的觀察狀態。

conditions:
- lastTransitionTime:
  message: string
  observedGeneration: integer
  reason: string
  status: string
  type: string
criticalIncidents:
- code: string
  createTime: string
  message: string
  messageTemplateParams: object
  resource:
    component: string
    location:
      cluster: string
      group: string
      kind: string
      name: string
      namespace: string
      version: string
  stackTrace:
  - component: string
    message: string
  transientUntil: string
endpoints:
- name: string
  value: string
observedGeneration: integer
reconciled: boolean

欄位

類型
必要或選填

 

說明
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 包含程式輔助 ID,指出條件上次轉換的原因。特定條件類型的產生者可以定義這個欄位的預期值和意義,以及這些值是否視為有保障的 API。值須為 CamelCase 字串,這個欄位可能不是空白。
conditions.status
string
必填
條件的狀態,可以是 True、False 或 Unknown。
conditions.type
string
必填
條件類型,格式為 CamelCase 或 foo.example.com/CamelCase。許多 .condition.type 值在 Available 等資源中保持一致,但任意條件可能很有用 (請參閱 .node.status.conditions),因此解除衝突的能力非常重要。相符的規則運算式為 (dns1123SubdomainFmt/)?(qualifiedNameFmt)。
criticalIncidents
object
選填
CriticalIncidents 是所有有效重大事件的平面清單。
criticalIncidents.code
string
必填
「代碼」是這項特定錯誤的錯誤代碼。錯誤代碼為 DBSE+數字字串,例如「DBSE1012」。
criticalIncidents.createTime
string
必填
CreateTime 是指在來源建立這個事件的時間戳記。
criticalIncidents.message
string
選填
訊息會說明發生的事件或錯誤。
criticalIncidents.messageTemplateParams
object
選填
MessageTemplateParams 包含鍵/值組合,用於在使用者介面中產生易於使用的資料驅動型 Message 版本。
criticalIncidents.resource
object
必填
資源包含回報事件的資料庫服務元件相關資訊,以及 Kubernetes 資源的相關資訊。
criticalIncidents.resource.component
string
必填
Component 是回報事件的資料庫服務子系統內部 ID。
criticalIncidents.resource.location
object
選填
位置
criticalIncidents.resource.location.cluster
string
選填
叢集是受影響 Kubernetes 資源的叢集名稱。
criticalIncidents.resource.location.group
string
選填
Group 是 Kubernetes 資源的群組名稱。
criticalIncidents.resource.location.kind
string
選填
Kind 是 Kubernetes 資源的種類。
criticalIncidents.resource.location.name
string
選填
名稱是受影響的 Kubernetes 資源名稱。
criticalIncidents.resource.location.namespace
string
選填
命名空間是受影響 Kubernetes 資源的命名空間。
criticalIncidents.resource.location.version
string
選填
Group 是 Kubernetes 資源的版本。
criticalIncidents.stackTrace
object
選填
StackTrace 包含來自堆疊追蹤的非結構化訊息清單。
criticalIncidents.stackTrace.component
string
選填
Component 是記錄訊息的資料庫服務元件名稱。
criticalIncidents.stackTrace.message
string
選填
記錄的訊息。
criticalIncidents.transientUntil
string
選填
如果存在 TransientUntil,表示問題必須視為暫時性問題,直到指定時間為止。
endpoints
object
選填
端點是指可存取 DBInstance 中 DBNodes 的端點。
endpoints.name
string
必填
名稱包含端點名稱。
endpoints.value
string
選填
值包含端點資訊。
observedGeneration
integer
選填
控制器觀察到的世代。
reconciled
boolean
選填
指出控制器是否已協調資源。