驗證節點設定

節點一致性測試

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

節點先決條件

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

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

執行節點一致性測試

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

  1. 計算 kubelet 的 `--kubeconfig` 選項的值;例如:`--kubeconfig=/var/lib/kubelet/config.yaml`。由於測試框架啟動一個本地控制平面來測試 kubelet,請使用 `https://: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

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

理論上,如果您正確配置容器並掛載所需的卷,您可以執行任何節點端到端測試。但是,強烈建議只執行一致性測試,因為執行非一致性測試需要更復雜的配置。

注意事項

  • 該測試會在節點上留下一些 Docker 映象,包括節點一致性測試映象和功能測試中使用的容器映象。
  • 該測試會在節點上留下死容器。這些容器是在功能測試期間建立的。
上次修改時間:2024 年 10 月 17 日下午 6:09 PST:清理最佳實踐:證書和節點一致性 (1d24167b04)