[英]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 中的標簽更改時更改容器映像。
關於如何實現這一點,我更喜歡按照以下步驟在每個操作數的協調循環內執行檢查、創建、驗證和更新循環:
check
:操作數是否存在並且所有者引用與自定義資源匹配。create
:如果操作數不存在,則創建一個新的操作數。validate
操作數配置是否與自定義資源匹配。 (例如,將 Pod 的 Docker 鏡像與自定義資源進行比較。)validate
步驟中檢測到任何差異,請update
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.