如何在 Google Cloud Platform 上使用 ClusterIP None 公开 StatefulSet 服务?

Rui*_*ins 2 google-cloud-platform kubernetes kubernetes-statefulset

如何ClusterIP=None在 Google Cloud Platform 中的 Kubernetes 上公开 StatefulSet 服务(cassandra、mysql 等)?

我需要更改 ClusterIP 配置吗?或者我需要配置 Google Cloud NAT?或者我需要改变其他事情?

谢谢

编辑:我想从互联网上的任何地方从外部IP连接到cassandra

EDIT2:我想解决方案是使用LoadBalance代替ClusterIP,但是当我使用 时LoadBalance,Cassandra 节点找不到种子节点。然后我仍然使用ClusterIP=NoneCassandra 集群,并创建了另一个 POD 以type=LoadBalance连接到 Cassandra 并连接到外部。现在它可以工作了:)

A_S*_*Suh 5

如果“公开”是指无需集群 IP 即可到达服务端点的能力,那么只需selector在无头服务中使用即可,即

apiVersion: v1
kind: Service
metadata:
  name: cassandra
spec:
  clusterIP: None
  selector:
    app: cassandra
  ports:
  - port: 80
    targetPort: 80
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅 文档

否则,如果您想在集群外部公开您的部署,您将无法使用无头服务来完成此操作。

  • @RuiMartins 那么 **ClusterIP: None** 背后的原因是什么?为什么无法使用端口类型 **LoadBalancer** 公开? (2认同)