我创建了如下的mongo服务:
apiVersion: v1
kind: Service
metadata:
name: mongo-svc
spec:
type: ExternalName
externalName: 10.0.2.2
ports:
- port: 27017
使用以下命令启动集群时:
minikube start --vm-driver=virtualbox
我希望将Virtualbox回送地址(10.0.2.2)映射到在我的本地主机上运行的本地Mongo数据库实例。
但是,登录到Pod并尝试ping 10.0.2.2时,我遇到了100%的包裹丢失的情况。
我这里缺少什么吗?
答案 0 :(得分:0)
因此,如果您尝试将MongoDB公开为外部服务,并且基本上将mongo-svc映射到10.0.2.2,则
第一个问题是,根据Kubernetes文档,ExtrnalName必须是实际服务的标准域名: “ ExternalName接受IPv4地址字符串,但作为包含数字的DNS名称,而不是IP地址。类似于IPv4地址的外部名称不会由CoreDNS或ingress-nginx解析。”
第二个问题是外部服务的全部要点是通过创建ExternalName服务来抽象外部服务,以便Pod可以通过mongo-svc.default.svc.cluster.local连接到外部服务(如果您使用默认名称空间中的mongo-svc,这似乎是基于您的YAML的情况),并且不使用外部服务名称及其位置,以便您可以修改服务定义并在需要时指向另一个服务。