0

我正在尝试设置一个单节点 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 地址,并没有什么不同。

我还尝试使用 Wea​​ve Works 而不是 Flannel,并在“kubeadm init”命令中省略了 CIDR,但我在家里的“Extra Switch”上遇到了相同的 rabbitmq 错误,同时在家庭默认交换机上工作并在办公室网络上工作.

那么我错过了什么?在 Hyper-V 和外部交换机下运行时是否需要 Ubuntu 网络设置?还是我缺少 Kubernetes 或 Docker 配置设置?谢谢!

4

1 回答 1

0

由于@Steve 解决了问题,解决方案是:

首先,较新版本的 RabbitMQ Helm 图表没有这个问题。但是,如果您想找到解决“错误”名称解析的方法,您可以将 DNS 重写规则添加到 CoreDNS 配置映射,请参阅 configmap-coredns

查看 coredns-issue 以获得对问题的完整描述以及如何将其缩小到需要“重写”规则的链中的特定 DNS 名称。

于 2020-10-19T15:07:06.703 回答