我正在尝试设置一个单节点 Kubernetes 集群,以便在我的 Windows Hyper-V 上运行的 Ubuntu Server 18.04.2 VM 上进行测试。我使用标准命令安装 Docker apt install docker.io
,并使用该命令初始化 Kubernetes 集群,kubeadm init --pod-network-cidr=10.244.0.0/16
然后添加 Flannel CNI,kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
然后使用其“稳定”Helm 图表安装 rabbitmq-ha。
如果 VM 使用 Hyper-V 的“默认开关”,那么一切都按预期工作。我还有一个“Extra Switch”配置为“外部网络”,选中“允许管理操作系统共享此网络适配器”,指向我的无线适配器。当我在办公室时,Ubuntu VM 设置为使用此“Extra Switch”,我的笔记本电脑和 Ubuntu VM (eth0) 的 IP 地址设置为 10.XXX,一切正常。
当我在家时,Ubuntu VM 设置为使用相同的“Extra Switch”,我的笔记本电脑和 Ubuntu VM (eth0) 的 IP 地址设置为 192.168.XX,rabbitmq pod 抛出错误并不断重启,与记录的错误消息:
Failed to get nodes from k8s - {failed_connect,[{to_address,{"kubernetes.default.svc.cluster.local",443}}, {inet,[inet],nxdomain}]}
做一些谷歌研究告诉我rabbitmq pod无法解析名称“kubernetes.default.svc.cluster.local”。
将“apiserver-advertise-address”添加到 kubeadm inti,设置为我笔记本电脑的 192.168.XX IP 地址,并没有什么不同。
我还尝试使用 Weave Works 而不是 Flannel,并在“kubeadm init”命令中省略了 CIDR,但我在家里的“Extra Switch”上遇到了相同的 rabbitmq 错误,同时在家庭默认交换机上工作并在办公室网络上工作.
那么我错过了什么?在 Hyper-V 和外部交换机下运行时是否需要 Ubuntu 网络设置?还是我缺少 Kubernetes 或 Docker 配置设置?谢谢!