k8s搭建三台zookeeper集群的yaml
时间: 2023-07-07 19:33:26 浏览: 159
好的,下面是一个简单的 YAML 文件,可以用来在 Kubernetes 上部署一个由三个 ZooKeeper 节点组成的集群:
```yaml
apiVersion: v1
kind: Service
metadata:
name: zk-headless
labels:
app: zk
spec:
clusterIP: None
ports:
- name: client
port: 2181
protocol: TCP
targetPort: 2181
- name: follower
port: 2888
protocol: TCP
targetPort: 2888
- name: leader-election
port: 3888
protocol: TCP
targetPort: 3888
selector:
app: zk
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: zk
spec:
serviceName: zk-headless
replicas: 3
selector:
matchLabels:
app: zk
template:
metadata:
labels:
app: zk
spec:
containers:
- name: zk
image: zookeeper:3.6.3
env:
- name: ZOO_MY_ID
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: ZOO_SERVERS
value: "zk-0.zk-headless,zk-1.zk-headless,zk-2.zk-headless"
ports:
- name: client
containerPort: 2181
- name: follower
containerPort: 2888
- name: leader-election
containerPort: 3888
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
emptyDir: {}
```
这个 YAML 文件定义了一个名为 `zk` 的 StatefulSet,使用了一个名为 `zk-headless` 的 Service 来提供服务发现。StatefulSet 中的每一个 Pod 都会启动一个 ZooKeeper 节点。
注意,这个 YAML 文件使用了 `emptyDir` 卷来存储 ZooKeeper 数据,这意味着当 Pod 被删除时,其中的数据也会被删除。如果你需要持久化存储,可以考虑使用 PersistentVolumeClaim(PVC)来存储数据。
阅读全文