如何从kubernetes容器访问google云实例

如何从kubernetes容器访问google云实例,kubernetes,google-compute-engine,Kubernetes,Google Compute Engine,我在谷歌云中有k8s集群和前端/api容器。 除此之外,我在谷歌云中有ElasticSearch集群(es1,es2),但不在k8s下 我可以通过容器“frontend”的名称“api”访问api容器。 我可以通过名称“es1”从es2访问es1 从containers api/frontend通过名称(如es1、es2)访问es群集的正确方法是什么 谢谢 如果您希望引用Kubernetes群集外部的资源,就像它们在群集内部一样,最简单的选择可能是为每个ElasticSearch实例分配一个静态

我在谷歌云中有k8s集群和前端/api容器。 除此之外,我在谷歌云中有ElasticSearch集群(es1,es2),但不在k8s

我可以通过容器“frontend”的名称“api”访问api容器。 我可以通过名称“es1”从es2访问es1

从containers api/frontend通过名称(如es1es2)访问es群集的正确方法是什么


谢谢

如果您希望引用Kubernetes群集外部的资源,就像它们在群集内部一样,最简单的选择可能是为每个ElasticSearch实例分配一个静态IP,然后指定一个带有手动端点的Kubernetes服务:

可以为每个es实例添加端点条目。现在,您的内部群集DNS将解析es实例并实现负载平衡,就像它们是群集中的吊舱一样

您可以这样创建端点(注意服务上缺少选择器):


现在,您可以像往常一样使用
my service.my namespace.svc.cluster.local
访问服务。

在与您的实例相同的网络/子网络中创建Kubernetes群集(GKE),然后您可以从k8s吊舱连接GCE实例的内部Ip。

谢谢!我会试试的
kind: Endpoints
apiVersion: v1
metadata:
  name: my-service
subsets:
  - addresses:
      - ip: 1.2.3.4
    ports:
      - port: 9376
---

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376