当 --advertise ip 地址是 DNS 条目而不是实际 IP 地址时,kubeadm 工具无法初始化集群

当 --advertise ip 地址是 DNS 条目而不是实际 IP 地址时,kubeadm 工具无法初始化集群

我正在使用 kube-adm 工具初始化集群但失败了。原因是当 kube-api 服务器启动时,它会查找配置,并且在配置中我们将“--advertise-address”标志设置为 DNS 条目而不是实际 IP。

当我们将其更改为 IP 地址时,集群就会启动,但用例是我们需要在那里有 DNS 条目。有什么办法吗?

ubuntu@ac1poc-20210407164708-dbvault-master1:~$ sudo docker ps -a
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS                     PORTS               NAMES
6dadb094ef45        4d217480042e             "kube-apiserver --ad…"   8 seconds ago       Exited (1) 7 seconds ago                       k8s_kube-apiserver_kube-apiserver-ac1poc-20210407164708-dbvault-master1_kube-system_d178ca26dd6ecb571ee1d795bf05d13c_0
9800cd1306ca        k8s.gcr.io/pause:3.4.1   "/pause"                 8 seconds ago       Up 7 seconds                                   k8s_POD_kube-apiserver-ac1poc-20210407164708-dbvault-master1_kube-system_d178ca26dd6ecb571ee1d795bf05d13c_0
447ca3b7c4e5        0369cf4303ff             "etcd --advertise-cl…"   18 seconds ago      Up 17 seconds                                  k8s_etcd_etcd-ac1poc-20210407164708-dbvault-master1_kube-system_aeecb86186a97a57d7b33389c398d994_0
f10dee583a73        k8s.gcr.io/pause:3.4.1   "/pause"                 18 seconds ago      Up 17 seconds                                  k8s_POD_etcd-ac1poc-20210407164708-dbvault-master1_kube-system_aeecb86186a97a57d7b33389c398d994_0
ff24fb98ffc4        62ad3129eca8             "kube-scheduler --au…"   28 seconds ago      Up 27 seconds                                  k8s_kube-scheduler_kube-scheduler-ac1poc-20210407164708-dbvault-master1_kube-system_043da16f3c9ebc5b6dc6a04761c2f844_0
3fb783c0d8c7        k8s.gcr.io/pause:3.4.1   "/pause"                 28 seconds ago      Up 27 seconds                                  k8s_POD_kube-scheduler-ac1poc-20210407164708-dbvault-master1_kube-system_043da16f3c9ebc5b6dc6a04761c2f844_0
ubuntu@ac1poc-20210407164708-dbvault-master1:~$ sudo docker logs 6dadb094ef45
Error: invalid argument "ac1poc-20210407164708-kube-api-f5082ea18c7584ad.elb.us-east-1.amazonaws.com" for "--advertise-address" flag: failed to parse IP: "ac1poc-20210407164708-kube-api-f5082ea18c7584ad.elb.us-east-1.amazonaws.com"

答案1

无法在 中使用 DNS 地址--apiserver-advertise-address
官方文件指出

API 服务器将公布其正在监听的 IP 地址。如果未设置,则将使用默认网络接口。

有一次,似乎会添加这样的功能[api 服务器 #33] [Kubernetes #59288],但最终报废, 和公关 #56956合并以确保只有IPv4IPv6可以使用。


解决方法是使用ControlPlaneEndpoint,但如果 IP 发生变化,API 服务器将不会启动,因此这不是最佳解决方案。

相关内容