驗證節點設定

節點一致性測試

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

節點先決條件

若要執行節點一致性測試,節點必須滿足與標準 Kubernetes 節點相同的先決條件。 至少,節點應安裝下列守護進程

  • 與 CRI 相容的容器執行期,例如 Docker、containerd 和 CRI-O
  • kubelet

執行節點一致性測試

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

  1. 計算 kubelet 的 --kubeconfig 選項值; 例如:--kubeconfig=/var/lib/kubelet/config.yaml。 由於測試框架啟動本機控制平面來測試 kubelet,因此請使用 http://localhost:8080 作為 API 伺服器的 URL。 您可能想要使用其他一些 kubelet 命令列參數

    • --cloud-provider:如果您使用 --cloud-provider=gce,則應移除此標記以執行測試。
  2. 使用命令執行節點一致性測試

    # $CONFIG_DIR is the pod manifest path of your kubelet.
    # $LOG_DIR is the test output path.
    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 映像檔

架構映像檔
amd64node-test-amd64
armnode-test-arm
arm64node-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

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

理論上,如果您正確設定容器並掛載必要的磁碟區,您可以執行任何節點 e2e 測試。 但是強烈建議僅執行一致性測試,因為執行非一致性測試需要更複雜的組態。

注意事項

  • 測試會在節點上留下一些 Docker 映像檔,包括節點一致性測試映像檔和功能測試中使用的容器映像檔。
  • 測試會在節點上留下已終止的容器。 這些容器是在功能測試期間建立的。
上次修改於 2024年10月17日下午 6:09 PST: 清理最佳實務:憑證與節點一致性 (1d24167b04)