我们应该何时以及如何在“service.yaml”文件中指定“clusterIP”?

我们应该何时以及如何在“service.yaml”文件中指定“clusterIP”?

我尝试使用部署mysqlcassandra数据库kubernetes.io/docs说明。在这两个文件中service.yaml,它们的用法clusterIP: None如下:

为了cassandra

apiVersion: v1
kind: Service
metadata:
  labels:
    app: cassandra
  name: cassandra
spec:
  ports:
  - port: 9042
  selector:
    app: cassandra
  clusterIP: None

为了mysql

apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
  - port: 3306
  selector:
    app: mysql
  clusterIP: None

我想知道,为什么他们没有clusterIPservice.yaml文件中指定?我们应该如何指定它以及用例是什么?

答案1

在这里你正在使用无头服务。每当clusterIP设置为 none 时,这意味着它是一个无头服务StatefulSets目前需要一个 Headless Service 来负责 Pod 的网络标识。因为与无国籍者部署 statefulset pod 将具有稳定、唯一的网络标识符(pod 名称)。

clusterIP为了回答你的问题,我们没有设置无头的服务。我们需要将其设置为none。因此,服务将使用状态集pods并在通信时自行分配IP。

要了解更多详细信息和示例,您可以参考此官方k8文档

相关内容