从Minikube内部调用外部服务

时间:2019-01-31 16:10:24

标签: kubernetes minikube

我在Minikube(安装在Mac上)中运行了一项服务(/ deployment / pod),该服务需要调用直接在Mac(即Minikube外部)上运行的外部http服务。该外部服务的域名已定义在我的Mac / etc / hosts文件中。但是,我在Minikube中的服务无法调用该外部服务。知道我需要在哪里配置吗?非常感谢。 C

3 个答案:

答案 0 :(得分:5)

创建Endpoints,它将流量转发到您想要的外部IP地址(您的本地计算机)。您可以使用Endpoints直接连接,但是根据Goole Cloud best practicedoc)可以通过Service

进行访问

enter image description here

创建您的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-ipminikube的任何其他内部服务一样。

答案 1 :(得分:0)

由于您的minikube在便携式计算机上的虚拟机上运行,​​因此您只需要在该计算机上minikube ssh,然后在该虚拟机的/etc/hosts文件中输入外部服务的地址即可。

答案 2 :(得分:0)

感谢你们双方的迅速答复。 更改/ etc / hosts文件的解决方案不起作用。另一个解决方案(创建端点和相应的服务)效果很好。再次感谢-我真的为此感到挣扎。