启用NodeLocalDNS失败

问题描述 投票:0回答:1

我们在GKE上有2个簇:devproduction。我试图在dev群集上运行此命令:

gcloud beta container clusters update "dev" --update-addons=NodeLocalDNS=ENABLED 

一切顺利,node-local-dns pod运行,并且一切正常,第二天早上,我决定在production群集上运行相同的命令,而node-local-dns无法运行,并且我注意到,两个PILLAR__LOCAL__DNS yaml中的PILLAR__DNS__SERVER并没有更改为正确的IP,我尝试在config yaml中更改这些变量,但是GKE始终使用PILLAR__DNS__SERVER变量将其覆盖为yaml ...

集群之间的唯一区别是,dev1.15.9-gke.24上运行,而生产1.15.11-gke.1

kubernetes google-kubernetes-engine kube-dns
1个回答
0
投票

显然1.15.11-gke.1版本有错误。

我首先在1.15.11-gke.1上重新创建它,并可以确认node-local-dns Pods处于CrashLoopBackOff状态:

node-local-dns-28xxt                                        0/1     CrashLoopBackOff   5          5m9s
node-local-dns-msn9s                                        0/1     CrashLoopBackOff   6          8m17s
node-local-dns-z2jlz                                        0/1     CrashLoopBackOff   6          10m

当我检查日志时:

$ kubectl logs -n kube-system node-local-dns-msn9s
2020/04/07 21:01:52 [FATAL] Error parsing flags - Invalid localip specified - "__PILLAR__LOCAL__DNS__", Exiting

解决方案:

升级到1.15.11-gke.3帮助。首先,您需要先升级主节点,然后再升级节点池。看起来在此版本上,所有内容运行正常且流畅:

$ kubectl get daemonsets -n kube-system node-local-dns 
NAME             DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                               AGE
node-local-dns   3         3         3       3            3           addon.gke.io/node-local-dns-ds-ready=true   44m

$ kubectl get pods -n kube-system -l k8s-app=node-local-dns
NAME                   READY   STATUS    RESTARTS   AGE
node-local-dns-8pjr5   1/1     Running   0          11m
node-local-dns-tmx75   1/1     Running   0          19m
node-local-dns-zcjzt   1/1     Running   0          19m

关于手动修复此特定守护程序yaml文件,我不推荐使用,因为您可以确定GKE's auto-repairauto-upgrade功能将迟早要覆盖它。

我希望它会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.