驗證節點設定
節點一致性測試
“節點一致性測試”是一個容器化的測試框架,為節點提供系統驗證和功能測試。該測試驗證節點是否滿足 Kubernetes 的最低要求;透過測試的節點有資格加入 Kubernetes 叢集。
節點先決條件
要執行節點一致性測試,節點必須滿足與標準 Kubernetes 節點相同的先決條件。至少,節點應安裝以下守護程序:
- CRI 相容的容器執行時,例如 Docker、containerd 和 CRI-O
- kubelet
執行節點一致性測試
要執行節點一致性測試,請執行以下步驟:
計算 kubelet 的 `--kubeconfig` 選項的值;例如:`--kubeconfig=/var/lib/kubelet/config.yaml`。由於測試框架啟動一個本地控制平面來測試 kubelet,請使用 `https://: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
節點一致性測試是 節點端到端測試 的容器化版本。預設情況下,它執行所有一致性測試。
理論上,如果您正確配置容器並掛載所需的卷,您可以執行任何節點端到端測試。但是,強烈建議只執行一致性測試,因為執行非一致性測試需要更復雜的配置。
注意事項
- 該測試會在節點上留下一些 Docker 映象,包括節點一致性測試映象和功能測試中使用的容器映象。
- 該測試會在節點上留下死容器。這些容器是在功能測試期間建立的。
上次修改時間:2024 年 10 月 17 日下午 6:09 PST:清理最佳實踐:證書和節點一致性 (1d24167b04)