[WARNING SystemVerification]: this Docker version is not on the list of validated versions: 28.0.2. Latest validated version: 20.10 error execution phase preflight: couldn't validate the identity of the API Server: Get "https://192.168.10.66:6443/
时间: 2025-03-21 13:11:36 浏览: 48
### 解决方案
#### Docker 版本不兼容问题
在 Kubernetes 的官方文档中提到,某些特定版本的 Docker 可能存在未经过验证的情况。当前环境中使用的 `Docker version 28.0.2` 并未被验证为与 Kubernetes 兼容[^3]。为了确保稳定性,建议降级至最新已验证的 Docker 版本(如 `20.10.x`)。以下是操作方法:
1. 卸载现有 Docker 版本:
```bash
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
```
2. 安装指定版本的 Docker:
```bash
sudo yum install -y docker-ce-20.10.* docker-ce-cli-20.10.* containerd.io
```
3. 启动并设置开机自启:
```bash
systemctl start docker && systemctl enable docker
```
完成上述步骤后,需重启所有节点以使更改生效。
---
#### API Server 身份验证错误解决方案
此问题通常由以下两种原因之一引起:Token 过期或 kube-apiserver 不可达[^4]。针对这两种情况分别提供了解决办法。
##### Token 过期处理
当工作节点尝试通过过期的 Token 加入主控节点时会触发该错误。可以通过刷新 Token 来解决问题:
```bash
kubeadm token create --print-join-command
```
执行以上命令将在终端打印新的 Join 命令,将其复制并在工作节点上运行即可成功加入集群。
##### Kube-apiserver 不可达排查
如果确认 Token 正常但仍无法连接,则可能是由于 kube-apiserver 服务异常或者网络配置不当所致。按照以下流程逐一检查:
1. **验证 kube-apiserver 是否正常运行**
使用以下命令查看其状态:
```bash
systemctl status kube-apiserver
```
如果发现停止或崩溃现象,请依据日志定位根本原因并修复。
2. **测试主机间连通性**
利用 curl 工具检测 Master 节点上的 API 地址是否可访问:
```bash
curl https://<Master_IP>:6443/version --cacert /etc/kubernetes/pki/ca.crt
```
若返回 JSON 数据则表明通信无误;反之应进一步分析防火墙规则、证书路径等问题[^2]。
3. **调整 DNS 设置**
确认 `/etc/resolv.conf` 文件中的 nameserver 参数指向合法公共 DNS 或内部解析服务器地址。
---
### 总结
综上所述,对于 `couldn't validate the identity of the API Server` 错误,优先考虑更新 Token 和核查 kube-apiserver 的可用性。与此同时,务必选用受支持范围内的容器引擎版本来规避潜在冲突风险。
```python
# 示例 Python 脚本用于自动化部分诊断过程
import os
def check_api_server(master_ip):
command = f"curl https://{master_ip}:6443/version --cacert /etc/kubernetes/pki/ca.crt"
result = os.system(command)
if result == 0:
print("API Server is reachable.")
else:
print("Failed to connect to API Server.")
check_api_server("<Your_Master_IP>")
```
阅读全文
相关推荐












