【问题标题】:Expose an external service to be accessible from within the cluster公开外部服务以从集群内部访问
【发布时间】:2020-01-19 13:10:54
【问题描述】:

我正在尝试从集群内建立与位于 GKE 集群之外的数据库的连接。

我已经阅读了各种教程,包括 https://cloud.google.com/blog/products/gcp/kubernetes-best-practices-mapping-external-services 和多个 SO 问题,但问题仍然存在。

这是我尝试设置 kafka 连接的示例配置:

---
kind: Endpoints
apiVersion: v1
metadata:
  name: kafka
subsets:
  - addresses:
      - ip: 10.132.0.5
    ports:
      - port: 9092

---
kind: Service
apiVersion: v1
metadata:
  name: kafka
spec:
  type: ClusterIP
  ports:
  - port: 9092
    targetPort: 9092

我可以通过 nc 10.132.0.5 9092 从节点 VM 本身直接连接来获得某种响应,但是如果我创建一个 pod,比如通过kubectl run -it --rm --restart=Never alpine --image=alpine sh,那么我将无法使用 @987654325 从 pod 内进行连接@。我的代码中的所有库都因超时而失败,因此这似乎是某种路由问题。

以Kafka为例,我在连接其他数据库时也遇到了同样的问题。

【问题讨论】:

    标签: networking kubernetes google-kubernetes-engine


    【解决方案1】:

    解决了,问题在我对 GCP 运作方式的理解范围内。

    为了解决这个问题,我必须添加一个防火墙规则,允许来自内部 GKE 网络的所有传入流量。就我而言,它是10.52.0.0/24 地址范围。

    希望它对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 2021-12-06
      • 2022-11-22
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多