我在Minikube(安装在Mac上)中运行了一项服务(/ deployment / pod),该服务需要调用直接在Mac(即Minikube外部)上运行的外部http服务。该外部服务的域名已定义在我的Mac / etc / hosts文件中。但是,我在Minikube中的服务无法调用该外部服务。知道我需要在哪里配置吗?非常感谢。 C
答案 0 :(得分:5)
创建Endpoints
,它将流量转发到您想要的外部IP地址(您的本地计算机)。您可以使用Endpoints
直接连接,但是根据Goole Cloud best practice
(doc)可以通过Service
创建您的Endpoints
kind: Endpoints
apiVersion: v1
metadata:
name: local-ip
subsets:
- addresses:
- ip: 10.240.0.4 # IP of your desire end point
ports:
- port: 27017 # Port that you want to access
然后创建您Service
kind: Service
apiVersion: v1
metadata:
name: local-ip
Spec:
type: ClusterIP
ports:
- port: 27017
targetPort: 27017
现在,您可以使用Service
名称来调用外部http服务。在这种情况下,loal-ip
像minikube
的任何其他内部服务一样。
答案 1 :(得分:0)
由于您的minikube在便携式计算机上的虚拟机上运行,因此您只需要在该计算机上minikube ssh
,然后在该虚拟机的/etc/hosts
文件中输入外部服务的地址即可。
答案 2 :(得分:0)
感谢你们双方的迅速答复。 更改/ etc / hosts文件的解决方案不起作用。另一个解决方案(创建端点和相应的服务)效果很好。再次感谢-我真的为此感到挣扎。