启用 NodeLocalDNS 失败
Enabling NodeLocalDNS fails
我们在 GKE 上有 2 个集群:dev
和 production
。我试图在 dev
集群上 运行 这个命令:
gcloud beta container clusters update "dev" --update-addons=NodeLocalDNS=ENABLED
一切都很顺利,node-local-dns pods 正在 运行ning 并且一切正常,第二天早上我决定 运行 在 production
集群上执行相同的命令node-local-dns 无法 运行,我注意到 PILLAR__LOCAL__DNS 和 PILLAR__DNS__SERVER在 yaml 中没有更改为正确的 IP,我试图在配置 yaml 中更改这些变量,但是 GKE 不断用 PILLAR__DNS__SERVER[ 将它们覆盖回 yaml =29=] 变量...
集群之间的唯一区别是 dev
运行s 在 1.15.9-gke.24
和生产 1.15.11-gke.1
.
显然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
有帮助。 首先你需要升级你的 master-node 然后你的 节点池。看起来在这个版本上一切都运行良好且顺利:
$ 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
关于手动修复这个特定的 daemonset yaml
文件,我不会推荐它,因为你可以确定 GKE 的 auto -repair 和 auto-upgrade 功能迟早会覆盖它。
希望对您有所帮助。
我们在 GKE 上有 2 个集群:dev
和 production
。我试图在 dev
集群上 运行 这个命令:
gcloud beta container clusters update "dev" --update-addons=NodeLocalDNS=ENABLED
一切都很顺利,node-local-dns pods 正在 运行ning 并且一切正常,第二天早上我决定 运行 在 production
集群上执行相同的命令node-local-dns 无法 运行,我注意到 PILLAR__LOCAL__DNS 和 PILLAR__DNS__SERVER在 yaml 中没有更改为正确的 IP,我试图在配置 yaml 中更改这些变量,但是 GKE 不断用 PILLAR__DNS__SERVER[ 将它们覆盖回 yaml =29=] 变量...
集群之间的唯一区别是 dev
运行s 在 1.15.9-gke.24
和生产 1.15.11-gke.1
.
显然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
有帮助。 首先你需要升级你的 master-node 然后你的 节点池。看起来在这个版本上一切都运行良好且顺利:
$ 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
关于手动修复这个特定的 daemonset yaml
文件,我不会推荐它,因为你可以确定 GKE 的 auto -repair 和 auto-upgrade 功能迟早会覆盖它。
希望对您有所帮助。