我们正在将所有服务转移到托管在Google容器引擎上的Docker。与此同时,我们在docker中有一些服务而有些服务没有。
在Kubernetes中,服务发现很容易通过DNS,但如何从容器集群外部解析服务?即,如何从Google Compute Engine实例连接到在Kubernetes中运行的服务?
答案 0 :(得分:1)
我现在的解决方案是使用服务clusterIP地址。
您可以通过执行$ gcloud container clusters describe CLUSTER NAME --zone ZONE
来查看此IP地址。此IP地址默认不是静态的,但您可以在定义服务时分配它。
来自文档:
您可以将自己的群集IP地址指定为服务创建请求的一部分。为此,请设置spec.clusterIP
通过IP地址而不是DNS名称在群集外部访问服务。
部署另一个群集后,上述解决方案无效。事实证明,无法达到新的IP范围,并且您确实需要添加网络路由。
您可以通过运行获取群集IP范围
clusterIpv4Cidr
在输出中,ip范围显示为键10.32.0.0/14
,在我的情况下为$ gcloud compute routes create --destination-range 10.32.0.0/14 --next-hop-instance NODE0 INSTANCE NAME
。
然后为该ip范围创建指向群集中某个节点的路由。 manage_pages