生成 kubectl 命令的參考文件

此頁面顯示如何生成 kubectl 命令參考文件。

準備工作

要求

  • 您需要一臺執行 Linux 或 macOS 的機器。

  • 您需要安裝以下工具

  • 您的 PATH 環境變數必須包含必需的構建工具,例如 Go 二進位制檔案和 python

  • 您需要了解如何向 GitHub 儲存庫建立拉取請求。這包括建立儲存庫的個人分支。有關更多資訊,請參閱 從本地克隆進行工作

設定本地倉庫

建立本地工作區並設定 GOPATH

mkdir -p $HOME/<workspace>

export GOPATH=$HOME/<workspace>

克隆以下倉庫的本地副本

go get -u github.com/spf13/pflag
go get -u github.com/spf13/cobra
go get -u gopkg.in/yaml.v2
go get -u github.com/kubernetes-sigs/reference-docs

如果還沒有 kubernetes/website 倉庫,請立即獲取

git clone https://github.com/<your-username>/website $GOPATH/src/github.com/<your-username>/website

克隆 kubernetes/kubernetes 倉庫的本地副本,命名為 k8s.io/kubernetes

git clone https://github.com/kubernetes/kubernetes $GOPATH/src/k8s.io/kubernetes

$GOPATH/src/k8s.io/kubernetes/vendor/github.com 中刪除 spf13 包

rm -rf $GOPATH/src/k8s.io/kubernetes/vendor/github.com/spf13

kubernetes/kubernetes 倉庫提供了 kubectlkustomize 的原始碼。

  • 確定你的 kubernetes/kubernetes 倉庫克隆的根目錄。例如,如果你按照前面的步驟獲取了倉庫,你的根目錄就是 $GOPATH/src/k8s.io/kubernetes。其餘步驟將你的根目錄稱為 <k8s-base>

  • 確定你的 kubernetes/website 倉庫克隆的根目錄。例如,如果你按照前面的步驟獲取了倉庫,你的根目錄就是 $GOPATH/src/github.com/<your-username>/website。其餘步驟將你的根目錄稱為 <web-base>

  • 確定你的 kubernetes-sigs/reference-docs 倉庫克隆的根目錄。例如,如果你按照前面的步驟獲取了倉庫,你的根目錄就是 $GOPATH/src/github.com/kubernetes-sigs/reference-docs。其餘步驟將你的根目錄稱為 <rdocs-base>

在你的本地 k8s.io/kubernetes 倉庫中,檢出你感興趣的分支,並確保它是最新的。例如,如果你想生成 Kubernetes 1.33.0 的文件,可以使用以下命令

cd <k8s-base>
git checkout v1.33.0
git pull https://github.com/kubernetes/kubernetes 1.33.0

如果你不需要編輯 kubectl 原始碼,請按照 設定構建變數 中的說明進行操作。

編輯 kubectl 原始碼

kubectl 命令參考文件是根據 kubectl 原始碼自動生成的。如果你想更改參考文件,第一步是更改 kubectl 原始碼中的一個或多個註釋。在你的本地 kubernetes/kubernetes 倉庫中進行更改,然後向 github.com/kubernetes/kubernetes 的 master 分支提交一個拉取請求。

PR 56673 是一個修復了 kubectl 原始碼中拼寫錯誤的拉取請求示例。

監視你的拉取請求,並回複審稿人的評論。繼續監視你的拉取請求,直到它被合併到 kubernetes/kubernetes 倉庫的目標分支。

將你的更改挑選到釋出分支

你的更改現在已合併到 master 分支,該分支用於開發下一個 Kubernetes 版本。如果你希望你的更改出現在已釋出 Kubernetes 版本的文件中,你需要提議將你的更改挑選(cherry-pick)到釋出分支。

例如,假設 master 分支正在用於開發 Kubernetes 1.34,而你想將你的更改反向移植到 release-1.33 分支。有關如何執行此操作的說明,請參閱 提議挑選(Cherry Pick)

監視你的挑選(cherry-pick)拉取請求,直到它被合併到釋出分支。

設定構建變數

轉到 <rdocs-base> 目錄。在命令列中,設定以下環境變數。

  • K8S_ROOT 設定為 <k8s-base>
  • K8S_WEBROOT 設定為 <web-base>
  • K8S_RELEASE 設定為你想要構建的文件版本。例如,如果你想構建 Kubernetes 1.33 的文件,請將 K8S_RELEASE 設定為 1.33。

例如

export K8S_WEBROOT=$GOPATH/src/github.com/<your-username>/website
export K8S_ROOT=$GOPATH/src/k8s.io/kubernetes
export K8S_RELEASE=1.33

建立版本化目錄

createversiondirs 構建目標會建立一個版本化目錄,並將 kubectl 參考配置檔案複製到該目錄中。版本化目錄的名稱遵循 v<major>_<minor> 的模式。

<rdocs-base> 目錄中,執行以下構建目標

cd <rdocs-base>
make createversiondirs

在 k8s.io/kubernetes 中檢出釋出標籤

在你的本地 <k8s-base> 倉庫中,檢出你想要記錄的 Kubernetes 版本的 ist-release 分支。例如,如果你想生成 Kubernetes 1.33.0 的文件,請檢出 v1.33 標籤。確保你的本地分支是最新的。

cd <k8s-base>
git checkout v1.33.0
git pull https://github.com/kubernetes/kubernetes v1.33.0

執行文件生成程式碼

在你的本地 <rdocs-base> 目錄中,執行 copycli 構建目標。命令以 root 使用者身份執行

cd <rdocs-base>
make copycli

copycli 命令會清理臨時構建目錄,生成 kubectl 命令檔案,並將彙總的 kubectl 命令參考 HTML 頁面和資源複製到 <web-base> 目錄。

查詢生成的檔案

驗證這兩個檔案已生成

[ -e "<rdocs-base>/gen-kubectldocs/generators/build/index.html" ] && echo "index.html built" || echo "no index.html"
[ -e "<rdocs-base>/gen-kubectldocs/generators/build/navData.js" ] && echo "navData.js built" || echo "no navData.js"

查詢複製的檔案

驗證所有生成的檔案是否已複製到你的 <web-base> 目錄

cd <web-base>
git status

輸出應包含已修改的檔案

static/docs/reference/generated/kubectl/kubectl-commands.html
static/docs/reference/generated/kubectl/navData.js

輸出可能還包括

static/docs/reference/generated/kubectl/scroll.js
static/docs/reference/generated/kubectl/stylesheet.css
static/docs/reference/generated/kubectl/tabvisibility.js
static/docs/reference/generated/kubectl/node_modules/bootstrap/dist/css/bootstrap.min.css
static/docs/reference/generated/kubectl/node_modules/highlight.js/styles/default.css
static/docs/reference/generated/kubectl/node_modules/jquery.scrollto/jquery.scrollTo.min.js
static/docs/reference/generated/kubectl/node_modules/jquery/dist/jquery.min.js
static/docs/reference/generated/kubectl/node_modules/font-awesome/css/font-awesome.min.css

本地測試文件

在你的本地 <web-base> 目錄中構建 Kubernetes 文件。

cd <web-base>
git submodule update --init --recursive --depth 1 # if not already done
make container-serve

檢視 本地預覽

在 kubernetes/website 中新增和提交更改

執行 git addgit commit 來提交檔案。

建立拉取請求

kubernetes/website 倉庫建立拉取請求。監視你的拉取請求,並根據需要回複審閱評論。繼續監視你的拉取請求,直到它被合併。

在你的拉取請求合併幾分鐘後,你更新的參考主題將顯示在 已釋出的文件 中。

下一步

最後修改時間:2025 年 6 月 28 日太平洋標準時間晚上 11:02:en: fix non-functional link (3707dce917)