我尝试使用mysql指令部署cassandra和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我想知道,他们为什么不在clusterIP文件中指定service.yaml呢?我们应该如何指定它,用例是什么?
发布于 2022-12-30 11:44:14
这里您正在使用无头服务。每当clusterIP设置为none时,这意味着它是无头服务。StatefulSets目前需要一个无头服务来负责Pods的网络标识。因为与无状态部署不同,状态集荚将具有稳定、唯一的网络标识符(pod名称)。
为了回答您的问题,我们不会在无头服务的情况下设置clusterIP。我们需要将其设置为none。因此,服务将使用状态集荚的唯一标识符(DNS查找),并在通信时自行分配IP。
要想更详细地了解示例,您可以参考这个官方k8文档
https://serverfault.com/questions/1119093
复制相似问题