kubernetes - Rancher Kubernetes 无法创建持久卷声明
问题描述
我无法在 Kubernetes (Rancher 2.3) 中创建持久卷声明。
我的存储类使用由 Rancher 提供的 VMware 云提供商“vSphere Storage for Kubernetes”
在 Rancher Web 界面中,事件显示如下错误:
(combined from similar events): Failed to provision volume with StorageClass "t-a-g1000-t6m-e0fd": Post https://vsphere.exemple.com:443/sdk: dial tcp: lookup vsphere.exemple.com on [::1]:53: read udp [::1]:51136->[::1]:53: read: connection refused
我在 Kubernetes Master 上遇到了同样的错误:
docker logs kube-controller-manager
解决方案
由于某种原因,kube-controller-manager
kubernet master 上 pod 的 DNS 解析器是空的:
docker exec kube-controller-manager cat /etc/resolv.conf
# Generated by dhcpcd
# /etc/resolv.conf.head can replace this line
# /etc/resolv.conf.tail can replace this line
由于主机服务器resolv.conf
是正确的,我只是重新启动了容器:
docker restart kube-controller-manager
(另一种丑陋的方法是使用手动编辑resolv.conf docker restart kube-controller-manager
,然后运行适当的echo XXX >> /etc/resolv.conf
......坏主意)
其他一些容器在此节点上可能存在类似问题。这是一种识别和重新启动这些容器的 hacky 方法:
cd cd /var/lib/docker/containers
ls -1 "$(grep nameserver -L */resolv.conf)" | sed -e 's#/.*##'
0c10e1374644cc262c8186e28787f53e02051cc75c1f943678d7aeaa00e5d450
70fd116282643406b72d9d782857bb7ec76dd85dc8a7c0a83dc7ab0e90d30966
841def818a8b4df06a0d30b0b7a66b75a3b554fb5feffe78846130cdfeb39899
ae356e26f1bf8fafe530d57d8c68a022a0ee0e13b4e177d3ad6d4e808d1b36da
d593735a2f6d96bcab3addafcfe3d44b6d839d9f3775449247bdb8801e2e1692
d9b0dfaa270d3f50169fb1aed064ca7a594583b9f71a111f653c71d704daf391
重启受影响的容器:
cd /var/lib/docker/containers ; ls -1 $(grep nameserver -L */resolv.conf) | sed -e 's#/.*##' | xargs -n1 -r docker restart
推荐阅读
- json - 如何使用结构的类型而不是 go 中的标签重新编组结构?
- c# - Sql 数据库 System.Data.SqlClient.SqlException:'无效的对象名称'dbo.LoginTbl'。
- android - 某些应用在 genymotion 的 Play 商店中不可见
- python - !_src.empty() 在函数 'cv::cvtColor'
- c# - 读取源权限时如何处理孤立的 NTFS 权限
- eclipse - 无法添加 org.eclipse.e4.rcp 功能
- javascript - Cosmos db 存储过程过滤器不起作用
- javascript - 生成响应式搜索广告 (RSA) 变体
- docker - 运行tensorflow docker时如何更改jupyter笔记本端口?
- python - BeautifulSoup 输出对于网络抓取仍然为空