簡體   English   中英

如何在 Kubernetes 運營商內部執行無縫升級

[英]How to perform a seamless upgrade inside a Kubernetes operator

我想為管理分布式數據庫的 Kubernetes 操作員添加無縫升級功能。 是否有一些好的做法可以做到這一點?

特別是在配置方面,這是我的 CR.yaml:

apiVersion: qserv.lsst.org/v1alpha1
kind: Qserv
metadata:
  name: qserv
spec:
  czar:
    image: qserv/qserv:v1.0.0
    replicas: 1
  storage: 1Gi
  storageClassName: standard
  worker:
    image: qserv/qserv:v1.0.0
    replicas: 2

當我的CR.yaml文件中的容器映像標簽發生變化時,我CR.yaml應該執行數據庫架構升級? 我應該在我的CR.yaml添加一個“performDatabaseUpgrade=true”字段嗎? 或者是否有其他技術,例如創建額外的 CRD?

另外,有沒有推薦的方法在operator-sdk框架內實現這個?

我更喜歡您提到的第一種方法,即在 CR.yaml 中的標簽更改時更改容器映像。

關於如何實現這一點,我更喜歡按照以下步驟在每個操作數的協調循環內執行檢查、創建、驗證和更新循環:

  1. check :操作數是否存在並且所有者引用與自定義資源匹配。
  2. create :如果操作數不存在,則創建一個新的操作數。
  3. validate操作數配置是否與自定義資源匹配。 (例如,將 Pod 的 Docker 鏡像與自定義資源進行比較。)
  4. 如果您在validate步驟中檢測到任何差異,請update

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM