檢視次數:
配置檔適用性:級別 1
關閉唯讀埠。
Kubelet 進程除了主要的 Kubelet API 外,還提供了一個只讀 API。此只讀 API 提供未經身份驗證的訪問,可能會檢索有關集群的潛在敏感信息。
注意
注意
請參閱 Amazon EKS 文檔以獲取預設值。

影響

移除只讀端口將要求任何使用該端口的服務需要重新配置以使用主要的 Kubelet API。

審計

  1. 如果使用 Kubelet 配置文件,請檢查是否有條目 authentication: anonymous: enabled 設置為 0。
  2. SSH 連接到相關節點。在每個節點上運行以下命令以查找適當的 Kubelet 配置文件:
    ps -ef | grep kubelet
    上述命令的輸出應該返回類似於 --config/etc/kubernetes/kubelet/kubelet-config.json 的內容,這是 Kubelet 配置文件的位置資訊。
  3. 打開 Kubelet 配置文件:
    cat /etc/kubernetes/kubelet/kubelet-config.json
  4. 確認 --read-only-port 參數是否存在並設置為 0。
  5. 如果未提供 --read-only-port 參數,請檢查是否有由 --config 指定的 Kubelet 配置文件。檢查該文件中是否有 readOnlyPort 條目,並確保其設置為 0。

補救

如果要修改 Kubelet 配置文件,請編輯 kubelet-config.json 文件 /etc/kubernetes/kubelet/kubelet-config.json,並將以下參數設置為 0:
"readOnlyPort": 0
如果使用可執行參數,請在每個工作節點上編輯 kubelet 服務檔案 /etc/systemd/system/kubelet.service.d/10-kubelet-args.conf,並在 KUBELET_ARGS 變數字串的末尾添加以下參數:
--read-only-port=0
對於每個修復,請重新啟動 kubelet 服務並根據您的系統檢查狀態:
systemctl daemon-reload
systemctl restart kubelet.service
systemctl status kubelet -l