我正在尝试在来自两个不同云提供商的两台机器上使用 kubeadm 设置 Kubernetes 集群。
这些是我采取的步骤:
- 我有两台 ubuntu 机器,一台来自 AWS,一台来自 Google Cloud
- 我创建了一个 VPN 并将两台机器加入其中
- 对于kubelet,我设置
--node-ip
为机器的VPN ip地址 - 对于
kubeadm init
,我传递了--apiserver-advertise-address
标志并将其设置为机器的 VPN ip 地址
我正在使用 kubernetes v1.7.5 和 ubuntu 16.04。
我能够初始化一个新的主节点并将节点加入它(使用kubeadm join
)。kubectl get nodes
返回两个节点的状态Ready
。
但是,当我创建新部署(或扩展现有部署)并且在节点上分配新 pod 时,就会出现问题。服务发现和 DNS 解析在节点上调度的任何 pod 中都不起作用。我尝试 ping 外部 IP 并且它可以工作,但是与 DNS 有关的任何事情都不起作用。请注意,我正在使用 flannel 驱动程序进行网络连接。
我认为从节点无法访问 kubernetes 内置 DNS。有关如何解决此问题的任何想法?是否可以使用 kubeadm 实现这样的目标?