kubectl 使用慣例

`kubectl` 的建議使用慣例。

在可重複使用的腳本中使用 `kubectl`

為了在腳本中獲得穩定的輸出

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

子資源

  • 您可以使用 `--subresource` beta 旗標,用於 `get`、`patch`、`edit` 和 `replace` 等 kubectl 指令,以擷取和更新所有支援子資源的資源的子資源。目前,僅支援 `status` 和 `scale` 子資源。
    • 對於 `kubectl edit`,不支援 `scale` 子資源。如果您將 `--subresource` 與 `kubectl edit` 一起使用,並指定 `scale` 作為子資源,則指令將會錯誤。
  • 相對於子資源的 API 合約與完整資源相同。在將 `status` 子資源更新為新值時,請記住,子資源可能會被控制器協調為不同的值。

最佳實務

kubectl run

為了讓 `kubectl run` 滿足基礎設施即程式碼 (Infrastructure as Code) 的需求

  • 使用特定版本的標籤標記映像檔,且不要將該標籤移動到新版本。例如,使用 `:v1234`、`v1.2.3`、`r03062016-1-4`,而不是 `:latest` (如需更多資訊,請參閱 組態最佳實務)。
  • 在腳本中檢查映像檔是否已高度參數化。
  • 切換到已簽入原始碼控制的組態檔,以獲取所需但無法透過 `kubectl run` 旗標表達的功能。

您可以使用 `--dry-run=client` 旗標預覽將傳送到您叢集的物件,而無需真正提交它。

kubectl apply

  • 您可以使用 `kubectl apply` 建立或更新資源。如需更多關於使用 kubectl apply 更新資源的資訊,請參閱 Kubectl Book
上次修改時間:2023 年 3 月 7 日上午 10:22 PST:reference/kubectl: Update docs for moving feaature to beta (b8651be9c2)