驗證節點設定
節點一致性測試
節點一致性測試是一個容器化的測試框架,為節點提供系統驗證和功能測試。 該測試驗證節點是否符合 Kubernetes 的最低要求; 通過測試的節點有資格加入 Kubernetes 叢集。
節點先決條件
若要執行節點一致性測試,節點必須滿足與標準 Kubernetes 節點相同的先決條件。 至少,節點應安裝下列守護進程
- 與 CRI 相容的容器執行期,例如 Docker、containerd 和 CRI-O
- kubelet
執行節點一致性測試
若要執行節點一致性測試,請執行下列步驟
計算 kubelet 的
--kubeconfig
選項值; 例如:--kubeconfig=/var/lib/kubelet/config.yaml
。 由於測試框架啟動本機控制平面來測試 kubelet,因此請使用http://localhost:8080
作為 API 伺服器的 URL。 您可能想要使用其他一些 kubelet 命令列參數--cloud-provider
:如果您使用--cloud-provider=gce
,則應移除此標記以執行測試。
使用命令執行節點一致性測試
# $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 映像檔
架構 | 映像檔 |
---|---|
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
節點一致性測試是 節點 e2e 測試的容器化版本。 預設情況下,它會執行所有一致性測試。
理論上,如果您正確設定容器並掛載必要的磁碟區,您可以執行任何節點 e2e 測試。 但是強烈建議僅執行一致性測試,因為執行非一致性測試需要更複雜的組態。
注意事項
- 測試會在節點上留下一些 Docker 映像檔,包括節點一致性測試映像檔和功能測試中使用的容器映像檔。
- 測試會在節點上留下已終止的容器。 這些容器是在功能測試期間建立的。
上次修改於 2024年10月17日下午 6:09 PST: 清理最佳實務:憑證與節點一致性 (1d24167b04)