【问题标题】:How to access google cloud instances from kubernetes containers如何从 Kubernetes 容器访问谷歌云实例
【发布时间】:2017-06-06 04:27:41
【问题描述】:

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

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

从容器 api/frontend 通过 es1es2 等名称访问 es 集群的正确方法是什么?

谢谢!

【问题讨论】:

    标签: kubernetes google-compute-engine


    【解决方案1】:

    如果您想像在集群内部一样引用 Kubernetes 集群外部的资源,最简单的选择可能是为每个 ElasticSearch 实例分配一个静态 IP,然后使用手动 Endpoints 指定一个 Kubernetes Service:

    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 访问该服务了。

    【讨论】:

    • 谢谢!我会试试的
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 2017-02-09
      • 2021-11-30
      • 2018-05-01
      • 1970-01-01
      相关资源
      最近更新 更多