集群是用kubespray部署的4个worknode,coredns默认部署2个deployment。今天发现部署了coredns的node上的pod正常解析内部域名,而另外2个未运行coredns的node却无法解析。
正常来说所有的pod都是通过coredns来进行集群内域名解析的,我也搞不清楚为啥其他两个node没有跑coredns则就无法解析后面再研究。所以我临时的解决方法是扩容coredns让每个node都跑。
kubectl edit configmap dns-autoscaler --namespace=kube-system
coresPerReplica: 按照核心数目来计算副本集(replicas = cores / coresPerReplica)
nodesPerReplica:按照节点数目来计算副本集(replicas = nodes / nodesPerReplica)
min:最小副本数(默认为2,我先有4个节点改为4)
max:最大副本数
preventSinglePointFailure:防止单点故障
replicas = max( ceil( cores × 1/coresPerReplica ) , ceil( nodes × 1/nodesPerReplica ) )