Rancher Server 使用域名导致 cattle-cluster-agent 报错无法解析
使用域名作为 Rancher Server 地址便于后期更换 ip 等操作,于是这次在公司研发环境搭建集群时使用该方案。
万万没想到,其他服务都正常,只有 cattle-cluster-agent 负载报错,无限重启。
1. 错误日志
INFO: Environment: CATTLE_ADDRESS=10.42.0.3 CATTLE_CA_CHECKSUM=af10b90a2d426cea306b2c2b5369a96dc472f175659668f2a591cbc3e9dbebfc CATTLE_CLUSTER=true CATTLE_CLUSTER_REGISTRY=192.168.149.191:10080 CATTLE_FEATURES= CATTLE_INGRESS_IP_DOMAIN=sslip.io CATTLE_INSTALL_UUID=329d52b8-1ede-4768-bd6b-995d2b61a5d4 CATTLE_INTERNAL_ADDRESS= CATTLE_IS_RKE=true CATTLE_K8S_MANAGED=true CATTLE_NODE_NAME=cattle-cluster-agent-6bf797488f-m4fw8 CATTLE_SERVER=https://server149115:18443 CATTLE_SERVER_VERSION=v2.5.14
2022/6/24 17:27:54 INFO: Using resolv.conf: nameserver 10.43.0.10 search cattle-system.svc.cluster.local svc.cluster.local cluster.local options ndots:5
2022/6/24 17:28:15 ERROR: https://server149115:18443/ping is not accessible (Could not resolve host: server149115)
从日志中可以看到,pod 内部无法解析配置的 rancher server 域名,导致该负载一直报错重启。
2. 解决方法
通过查找网上资料,发现需要编辑该负载的 yaml 模板文件,添加域名解析配置项即可。
需要添加的内容如下,尤其需要注意缩进,rancher 编辑器中老报红叉,需要耐心调整
spec:
hostAliases:
- ip: "192.168.149.115"
hostnames:
- "server149115"
总体所在位置层次如下,省略了中间配置项
apiVersion: apps/v1
kind: Deployment
spec:
replicas: 1
template:
metadata:
spec:
hostAliases:
- hostnames:
- server149115
ip: 192.168.149.115
3. 解决效果
网上乱七八糟的解决方案,有些 yaml 配置写的都有问题,非常无语,我这里是验证过的,没有问题的。
2022.08.22 更新
可以通过修改 cattle-cluster-agent
负载的『主机别名』配置实现,更加便捷直观。