如何从kubernetes容器访问谷歌云实例

时间:2017-04-26 00:33:16

标签: kubernetes google-compute-engine

我在Google Cloud中有 k8s 群集,在那里有前端/ api 容器。 除此之外,我在Google Cloud中有ElasticSearch集群( es1,es2 ),但在 k8s 下没有。

我可以按名称访问 api 容器' api '来自容器' 前端'。 我可以通过名称' es1 '

es2 访问 es1

从容器api / frontend中按 es1 es2 等名称访问 es 群集的正确方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

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

https://kubernetes.io/docs/concepts/services-networking/service/#services-without-selectors

您可以为每个es实例添加一个Endpoint条目。现在,您的内部群集DNS将为您的es实例解析和加载平衡,就好像它们是群集中的pod一样。

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

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

现在您可以正常使用my-service.my-namespace.svc.cluster.local访问该服务。

答案 1 :(得分:0)

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