0

我正在尝试在来自两个不同云提供商的两台机器上使用 kubeadm 设置 Kubernetes 集群。

这些是我采取的步骤:

  1. 我有两台 ubuntu 机器,一台来自 AWS,一台来自 Google Cloud
  2. 我创建了一个 VPN 并将两台机器加入其中
  3. 对于kubelet,我设置--node-ip为机器的VPN ip地址
  4. 对于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 实现这样的目标?

4

1 回答 1

0

我没有足够的声誉来添加评论,所以我使用 Answer 添加我的评论,我有同样的问题, kubectl get node 似乎都准备好了,但是使用 kubectl get pod -n kube-system

发现 flannel 的 pod 不工作,如果 flannel 不工作,那 dns 肯定不工作

法兰绒版本 0.9.0 似乎有些问题

这对我有用

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube- flannel.yml kubectl apply -f kube-flannel.yml

祝你好运

于 2017-11-05T03:03:39.350 回答