首頁 > 後端開發 > Golang > 主體

建構 Kubernetes Operator 用於滾動更新

WBOY
發布: 2024-02-09 22:18:19
轉載
438 人瀏覽過

构建 Kubernetes Operator 用于滚动更新

php小編小新在這裡為大家介紹如何建立 Kubernetes Operator 用於滾動更新。 Kubernetes Operator 是一種自訂控制器,可擴充 Kubernetes 平台的功能。滾動更新是一種在不中斷服務的前提下,逐步更新應用程式的方式。透過建立一個專門用於滾動更新的 Operator,我們可以更靈活地管理應用程式的升級和回滾。本文將介紹建置 Kubernetes Operator 的基本步驟,並詳細解釋如何實作捲動更新功能。讓我們一起深入了解吧!

問題內容

我建立了一個 Kubernetes 應用程式(例如部署 D1,使用 docker 映像 I1),它將在客戶端叢集上運行。

要求1:

現在,我想在每次更新我的 docker 映像 I1 時滾動更新,而不需要客戶端做任何努力 (不知何故,客戶端叢集應該會自動拉取最新的docker映像)

要求2:

每當我更新特定的 configMap 時,客戶端叢集都應該自動開始使用新的 configMap

我應該如何達成這個目標?

  1. 使用 Kubernetes Cronjobs ?
  2. Kubernetes 操作員?
  3. 或其他什麼?

我聽說 k8s Operator 很有用

解決方法

要求 2 開始:

每當我更新特定的 configMap 時,客戶端叢集都應該 自動開始使用新的configMap

如果 configmap 已安裝到部署中,它將自動更新,但是如果作為環境重新啟動而注入是唯一的選項,除非您使用 sidecar 解決方案或重新啟動進程。

參考:更新 configmap 而不重新啟動 POD

#我該如何實現這個目標?

  • ImagePullpolicy 不是一個好的選擇,但是,在這種情況下,需要手動幹預才能重新啟動部署,並且 從客戶端提取最新圖像,並且它不會在 受控方式。

使用 Kubernetes Cronjobs ?

  • 您將在哪一邊運行 Cronjobs?如果是客戶端就可以了 也是這樣。

    否則,您可以使用公開的 API 來保持部署,這將運行作業到 當推送任何鏡像時,使用最新標籤更新部署 到您的 docker 註冊表。

Kubernetes 操作員?

  • 運算子是一個很好的原生 K8s 選項,您可以用 Go 寫, Python 或您的首選語言,帶/不帶 Operator 框架或客戶端程式庫。

或其他什麼?

如果您只是想更新部署,請在部署或作業中執行API,您可以以受控方式安排時間,操作員也不會出現任何問題,這將是一個更原生的問題如果您可以建立、管理和部署一個方法,那麼這是一個很好的方法。

如果將來您需要從單一真實來源管理多個客戶端的所有叢集(部署、服務、防火牆、網路),您可以探索 Anthos

Git 儲存庫同步的設定管理安托斯

#

以上是建構 Kubernetes Operator 用於滾動更新的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板