我正试图建立一个单节点Kubernetes集群,以便在运行在我的Windows Hyper-V上的Ubuntu Server 18.04.2虚拟机上进行测试。我使用标准的apt install docker.io
命令安装Docker,并使用命令kubeadm init --pod-network-cidr=10.244.0.0/16
初始化Kubernetes集群然后用CCD_ 3添加Flannel CNI;稳定的";Helm图表。
如果虚拟机使用Hyper-V的"默认交换机",则一切正常。我还有一个配置为"外部网络"的"额外交换机",选中了"允许管理操作系统共享此网络适配器",指向我的无线适配器。当我在办公室时,Ubuntu虚拟机被设置为使用这个"额外开关",我的笔记本电脑和Ubuntu虚拟机(eth0(的IP地址被设置为10.X.X.X.X,一切都如预期。
当我在家时,Ubuntu虚拟机设置为使用相同的"额外开关",我的笔记本电脑和Ubuntu虚拟机(eth0(的IP地址设置为192.168.X.X,rabbitmqpod抛出错误并不断重新启动,并记录错误消息:
Failed to get nodes from k8s - {failed_connect,[{to_address,{"kubernetes.default.svc.cluster.local",443}}, {inet,[inet],nxdomain}]}
做一些谷歌研究告诉我rabbitmqpod无法解析名称";kubernetes.default.svc.cluster.local";。
将"apiserver广告地址"添加到kubeadm inti,设置为我笔记本电脑的192.168.X.X IP地址,并没有什么区别。
我还尝试使用Weave Works而不是Flannel,并在'kubeadm-init'命令中省略CIDR,但我在";"额外开关";,同时在家庭默认交换机和办公网络上工作。
那么我错过了什么?在Hyper-V和外部交换机下运行时,是否需要Ubuntu网络设置?或者有没有我缺少的Kubernetes或Docker配置设置?谢谢
@Steve解决了问题,解决方案是:
首先,RabbitMQ Helm图表的新版本没有这个问题。但如果你想找到变通办法;坏的";名称解析,您可以将DNS重写规则添加到CoreDNS配置映射中,请参阅configmap CoreDNS。
查看coredns问题以获得问题的完整描述,以及如何将其缩小到链中需要"的特定DNS名称;重写";规则