驗證節點架設

節點一致性測試

節點一致性測試是一個容器化的測試框架,為節點提供系統驗證與功能測試。 此測試會驗證節點是否符合 Kubernetes 的最低要求;通過測試的節點就有資格加入 Kubernetes 叢集。

節點先決條件

要執行節點一致性測試,節點必須滿足與標準 Kubernetes 節點相同的先決條件。 節點應至少安裝以下背景程式:

  • 相容 CRI 的容器執行環境:例如 Docker、containerd 與 CRI-O
  • kubelet

執行節點一致性測試

若要執行節點一致性測試,請執行以下步驟:

  1. 確認 kubelet 的 --kubeconfig 選項的值;例如:--kubeconfig=/var/lib/kubelet/config.yaml。 由於測試框架會啟動一個本地控制平面來測試 kubelet,要使用 http://localhost:8080 作為 API 伺服器的網址。 此外,還有一些您可能需要使用的 kubelet 命令列參數:

    • --cloud-provider:如果您目前使用 --cloud-provider=gce,執行測試時應移除此命令列參數。
  1. 使用以下指令執行節點一致性測試:

    # $CONFIG_DIR 是您 kubelet 的 Pod 設定檔路徑。
    # $LOG_DIR 是測試結果的輸出路徑。
    sudo docker run -it --rm --privileged --net=host \
      -v /:/rootfs -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
      registry.k8s.io/node-test:0.2
    

執行其他架構的節點一致性測試

Kubernetes 也為其他架構提供了節點一致性測試的 Docker 映像檔:

架構 映像檔
amd64 node-test-amd64
arm node-test-arm
arm64 node-test-arm64

執行選定的測試

要執行特定的測試,需使用您想執行的測試正規表達式來覆寫環境變數 FOCUS

sudo docker run -it --rm --privileged --net=host \
  -v /:/rootfs:ro -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
  -e FOCUS=MirrorPod \ # Only run MirrorPod test
  registry.k8s.io/node-test:0.2

若要跳過特定測試,請使用您想跳過的測試正則表達式來覆寫環境變數 SKIP

sudo docker run -it --rm --privileged --net=host \
  -v /:/rootfs:ro -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
  -e SKIP=MirrorPod \ # Run all conformance tests but skip MirrorPod test
  registry.k8s.io/node-test:0.2

節點一致性測試是 node e2e test 的容器化版本。 在預設情況下,它會執行所有的一致性測試。

理論上,只要您正確配置容器並掛載必要的卷,您就能執行任何節點端對端測試。 但強烈建議僅執行一致性測試,因為執行非一致性測試所需的配置要複雜得多。

注意事項

  • 測試會在節點上留下一些 Docker 映像檔,包括節點一致性測試的映像檔,以及功能測試中所使用的容器映像檔。
  • 測試會在節點上留下已停止的容器。這些容器是在功能測試期間所建立的。

最後修改 April 01, 2026 at 11:03 PM PST: docs(zh-tw): translate best-practices/* part 2 (54288276a4)