我收到了一個沒有設定檔的 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 中,或者您是否應該即時進行修改 - 這完全由您決定;任何討論這個問題的嘗試都可能引發爭議。