Kubernetes安装报错:无法解析cloud.weave.works域名求解决
解决Kubernetes安装Weave网络插件时的DNS解析及连接问题
问题分析
你遇到的两个核心问题:
- DNS解析失败:无法解析
cloud.weave.works域名,导致无法获取Weave网络插件的配置文件 - Kubectl版本警告:属于次要提示,可忽略,但需确保kubectl能正常连接集群
解决步骤
1. 修复DNS解析问题
首先验证主机的DNS配置是否正常:
- 执行以下命令测试域名解析:
nslookup cloud.weave.works # 或 dig cloud.weave.works - 如果返回
no such host,修改系统DNS配置:
编辑/etc/resolv.conf,添加公共DNS服务器:
部分系统可能会自动覆盖该文件,可通过修改echo "nameserver 8.8.8.8" >> /etc/resolv.conf echo "nameserver 1.1.1.1" >> /etc/resolv.conf/etc/systemd/resolved.conf永久设置:sed -i 's/#DNS=/DNS=8.8.8.8 1.1.1.1/' /etc/systemd/resolved.conf systemctl restart systemd-resolved
2. 验证Kubectl集群连接
确保kubectl能正常访问K8s主节点:
- 检查当前上下文:
kubectl config current-context - 查看集群状态:
kubectl cluster-info
如果提示无法连接到服务器,需检查kubeconfig文件是否正确(默认路径~/.kube/config),或确认主节点的API Server端口(6443)是否开放。
3. 手动部署Weave网络插件
避免动态URL的解析问题,手动获取并部署Weave配置:
- 先获取本地kubectl的客户端版本:
K8S_VERSION=$(kubectl version --short --client | awk '{print $3}') - 通过curl下载对应版本的Weave配置文件:
curl -LO "https://cloud.weave.works/k8s/net?k8s-version=$K8S_VERSION" - 部署插件:
kubectl apply -f net?k8s-version=$K8S_VERSION
如果仍有问题,可直接使用Weave官方发布的固定版本DaemonSet配置文件,下载后执行部署命令。
4. 替代方案:切换到Calico网络插件
如果Weave的网络问题持续,可换用更稳定的Calico CNI插件,下载Calico官方的部署配置文件后执行:
kubectl apply -f <calico配置文件名>
部署后验证Pod状态:
kubectl get pods -n kube-system
内容的提问来源于stack exchange,提问作者Francklin TAPTUE
相关产品推荐
相关产品推荐

