微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用外部交换机无法在Ubuntu Hyper-V服务器上的Kubernetes中解析名称

如何解决使用外部交换机无法在Ubuntu Hyper-V服务器上的Kubernetes中解析名称

我试图在Windows Hyper-V上运行的Ubuntu Server 18.04.2 VM上建立一个单节点Kubernetes集群以进行测试。我使用标准的apt install docker.io命令安装Docker,并使用命令kubeadm init --pod-network-cidr=10.244.0.0/16初始化Kubernetes集群。 然后用kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml添加Flannel CNI,然后使用其“稳定” Helm图表安装rabbitmq-ha。

如果VM使用的是Hyper-V的“认开关”,则一切正常。我还将“外部交换机”配置为“外部网络”,并选中了“允许管理操作系统共享此网络适配器”,指向我的无线适配器。当我在办公室时,将Ubuntu VM设置为使用此“额外开关”,将笔记本电脑和Ubuntu VM的IP地址(eth0)设置为10.X.X.X,一切正常。

当我在家时,将Ubuntu VM设置为使用相同的“额外开关”,我的笔记本电脑和Ubuntu VM的IP地址(eth0)设置为192.168.XX,并且Rabbitmq pod连续抛出错误重新启动,并记录错误消息:

Failed to get nodes from k8s - {Failed_connect,[{to_address,{"kubernetes.default.svc.cluster.local",443}},{inet,[inet],nxdomain}]}

做过一次Google搜索后发现,rabbitmq pod无法解析名称“ kubernetes.default.svc.cluster.local”。

将“ apiserver-advertise-address”添加到设置为我笔记本电脑的192.168.X.X IP地址的kubeadm inti上。

我还尝试使用weave Works代替Flannel,并在“ kubeadm init”命令中省略了CIDR,但是在家用认开关上工作时,在“额外开关”上的家中出现了相同的Rabbitmq错误。办公网络。

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

解决方法

@Steve解决了问题,解决方法是:

首先,较新版本的RabbitMQ Helm图表不存在此问题。但是,如果要解决“名称错误”的解决方法,可以将DNS重写规则添加到CoreDNS配置图中,请参见configmap-coredns

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?