kubectl 使用約定

kubectl 的推薦用法約定。

在可重用指令碼中使用 kubectl

為了在指令碼中獲得穩定的輸出

  • 請求一種面向機器的輸出格式,例如 -o name-o json-o yaml-o go-template-o jsonpath
  • 完整限定版本。例如,jobs.v1.batch/myjob。這將確保 kubectl 不會使用可能隨時間變化的預設版本。
  • 不要依賴上下文、偏好或其他隱式狀態。

子資源

  • 您可以為 kubectl 子命令(例如 getpatcheditapplyreplace)使用 --subresource 引數,以獲取和更新支援它們的特定資源的子資源。在 Kubernetes v1.34 版本中,僅支援 statusscaleresize 子資源。
    • 對於 kubectl edit,不支援 scale 子資源。如果您將 --subresourcekubectl edit 一起使用並指定 scale 作為子資源,該命令將報錯。
  • 與子資源的 API 合約與完整資源相同。在將 status 子資源更新為新值時,請注意該子資源可能會被控制器自動調和為其他值。

最佳實踐

kubectl run

使 kubectl run 符合基礎設施即程式碼原則

  • 使用特定版本的標籤標記映象,並且不要將該標籤指向新版本。例如,使用 :v1234v1.2.3r03062016-1-4,而不是 :latest(有關更多資訊,請參閱 容器映象最佳實踐)。
  • 在指令碼中檢查高度引數化的映象。
  • 對於需要但無法透過 kubectl run 標誌表達的功能,請切換到已納入版本控制的配置檔案。

您可以使用 --dry-run=client 標誌來預覽將傳送到叢集的物件,而無需實際提交它。

kubectl apply

  • 您可以使用 kubectl apply 來建立或更新資源。有關使用 kubectl apply 更新資源的更多資訊,請參閱 Kubectl Book
最後修改於 2025 年 2 月 19 日太平洋標準時間上午 11:19:更新 kubetl 子資源文件 (ab6b9ae2ed)