如何在沒有原始設定的情況下安全更新現有的 Kubernetes 伺服器

如何在沒有原始設定的情況下安全更新現有的 Kubernetes 伺服器

我收到了一個沒有設定檔的 Kubernetes 集群,並且沒有使用 helm 設定。作者說他們只是從命令列創建了所有內容。它是一個小型/新的集群,用於帶有 nginx 入口控制器的單一 API 伺服器。我對 Kubernetes 有足夠的了解,並且能夠添加新的 Web 伺服器,但現在我需要更深入地了解並更新現有配置。具體來說,我想在 nginx 控制器上啟用 prometheus 指標,但我不想破壞任何東西。

是否有一種標準方法可以從叢集中檢索現有配置(部署、服務等)、進行修改並套用它們?或者有沒有一種方法可以對現有配置的各個部分進行修補,而無需建立新的 yaml 檔案?

我知道我可以透過以下方式取得當前配置:

kubectl get services -n nginx -o yaml

該輸出有其他字段,如creationTimestamp、uid 等,我想我需要刪除它們。或者我可以直接將輸出儲存到 yaml 檔案中,進行修改以啟用 prometheus,然後將配置套用回控制器嗎?它會忽略 kube 創建的欄位嗎?我應該考慮採取不同的方法嗎?

其次,我應該將這些配置儲存在儲存庫中,還是這就是事情的完成方式?

答案1

看起來你幾乎擁有了你所需要的一切;只有一些次要的考慮因素:

  • kubectl -n <ns> get <CRD> -o yaml將為您提供帶有一些唯讀標識符的輸出,即使它們保留這些值,您也無法重新定義這些標識符,因此這些標識符不適合將它們保留為純文件。
  • 使用kubectl edit instead
  • 至於您是否應該將它們保留在您想要的任何 VCS 中,或者您是否應該即時進行修改 - 這完全由您決定;任何討論這個問題的嘗試都可能引發爭議。

相關內容