k8s 部署zookeeper 可填的容器参数
时间: 2023-11-16 10:32:37 浏览: 130
Kubernetes 部署 ZooKeeper 可以使用以下可填参数:
- `tickTime`: ZooKeeper 中使用的基本时间单位(毫秒)。
- `initLimit`: 在启动时连接到 ZooKeeper 的从节点(follower)上使用的时间(tick 的数量)。
- `syncLimit`: 从节点与主节点(leader)之间进行同步的时间限制(tick 的数量)。
- `maxClientCnxns`: 单个客户端与 ZooKeeper 服务器之间的最大连接数。
- `dataDir`: ZooKeeper 服务器存储其数据的目录。
- `clientPort`: 客户端用于连接 ZooKeeper 服务器的端口。
- `autopurge.purgeInterval`: 自动清理功能的触发间隔时间(小时)。
- `autopurge.snapRetainCount`: 自动清理功能在保留多少个数据文件快照后停止。
以上这些参数可以在 Kubernetes 部署 ZooKeeper 时进行设置并填写。
相关问题
k8s 部署zookeeper 参数
可以使用Kubernetes部署ZooKeeper时,可以设置以下参数:
- replicas:ZooKeeper实例的数量。
- image:使用的ZooKeeper Docker镜像。
- resources:为ZooKeeper容器,分配的CPU和内存资源。
- zookeeperMyID:每个ZooKeeper实例的ID。
- zookeeperServers:ZooKeeper的服务列表,必须是「IP:端口:leader选举端口」的格式。
例如,在Kubernetes中部署一个三节点的ZooKeeper集群,可以使用以下配置:
```
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: zookeeper
spec:
serviceName: zookeeper
replicas: 3
selector:
matchLabels:
app: zookeeper
template:
metadata:
labels:
app: zookeeper
spec:
containers:
- name: zookeeper
image: zookeeper:3.5.8
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 100m
memory: 512Mi
env:
- name: ZOO_MY_ID
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: ZOO_SERVERS
value: "server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888"
ports:
- containerPort: 2181
name: client
- containerPort: 2888
name: peer
- containerPort: 3888
name: election
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: zookeeper
```
注意:上述示例中的服务名「zookeeper」和Pod名称「zoo1」、「zoo2」、「zoo3」,需要根据实际情况进行调整。
k8s启动zookeeper3.6.3
在 Kubernetes 中启动 Zookeeper 3.6.3 镜像需要编写一个 Kubernetes 的 YAML 文件进行部署。以下是一个示例 YAML 文件:
```yaml
apiVersion: v1
kind: Service
metadata:
name: zookeeper
spec:
type: ClusterIP
ports:
- name: client
port: 2181
protocol: TCP
selector:
app: zookeeper
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: zookeeper
spec:
selector:
matchLabels:
app: zookeeper
serviceName: zookeeper
replicas: 1
updateStrategy:
type: RollingUpdate
template:
metadata:
labels:
app: zookeeper
spec:
containers:
- name: zookeeper
image: zookeeper:3.6.3
ports:
- containerPort: 2181
- containerPort: 2888
- containerPort: 3888
volumeMounts:
- name: data
mountPath: /data
- name: log
mountPath: /datalog
env:
- name: ZOO_MY_ID
value: "1"
- name: ZOO_SERVERS
value: "server.1=zookeeper-0.zookeeper:2888:3888"
volumes:
- name: data
emptyDir: {}
- name: log
emptyDir: {}
```
在这个 YAML 文件中,首先定义了一个 Service,用于将 Zookeeper 集群暴露为 Kubernetes 集群内部的服务。接着定义了一个 StatefulSet,用于创建 Zookeeper 集群的副本。在容器定义中,指定了使用 Zookeeper 3.6.3 镜像,并将数据目录和日志目录挂载为容器的数据卷。
注意,这个示例 YAML 文件中只启动了一个 Zookeeper 节点,如果需要启动多个节点,需要修改 `replicas` 字段的值,并在 `ZOO_SERVERS` 环境变量中指定所有节点的信息。例如,如果需要启动 3 个节点,需要将 `replicas` 改为 3,并将 `ZOO_SERVERS` 的值设置为:
```
ZOO_SERVERS=server.1=zookeeper-0.zookeeper:2888:3888 server.2=zookeeper-1.zookeeper:2888:3888 server.3=zookeeper-2.zookeeper:2888:3888
```
其中,`zookeeper-0.zookeeper`、`zookeeper-1.zookeeper`、`zookeeper-2.zookeeper` 分别是三个节点的 Kubernetes DNS 名称,`2888` 和 `3888` 分别是 Zookeeper 节点之间通信的端口号。
阅读全文