|
|
---
|
|
|
icon: edit
|
|
|
date: 2023-03-09
|
|
|
category:
|
|
|
- 系统配置
|
|
|
headerDepth: 5
|
|
|
---
|
|
|
|
|
|
|
|
|
# kubesphere 部署 zookeeper 和 kafka 以及 在k8s 部署是需要注意的问题
|
|
|
## 搭建zookeeper
|
|
|
选用镜像是官方镜像 zookeeper 内存和cpu 限制不用给太多
|
|
|
|
|
|
![image-1678374469184](https://local.wuanwanghao.top:9000/test/test/image-1678374469184.png)
|
|
|
|
|
|
创建配置字典 和存储卷 用于持久化数据 和挂载配置文件
|
|
|
|
|
|
存储卷 自行创建
|
|
|
|
|
|
配置字典
|
|
|
![image-1678374651276](https://local.wuanwanghao.top:9000/test/test/image-1678374651276.png)
|
|
|
```conf
|
|
|
dataDir=/data # 保存zookeeper中的数据
|
|
|
clientPort=2181 # 客户端连接端口,通常不做修改
|
|
|
dataLogDir=/datalog
|
|
|
tickTime=2000 # 通信心跳时间
|
|
|
initLimit=5 # LF(leader - follower)初始通信时限
|
|
|
syncLimit=2 # LF 同步通信时限
|
|
|
autopurge.snapRetainCount=3
|
|
|
autopurge.purgeInterval=0
|
|
|
maxClientCnxns=60
|
|
|
standaloneEnabled=true
|
|
|
admin.enableServer=true
|
|
|
server.1=localhost:2888:3888;2181
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
deployment.yml
|
|
|
```yml
|
|
|
kind: StatefulSet
|
|
|
apiVersion: apps/v1
|
|
|
metadata:
|
|
|
name: zookeeper
|
|
|
namespace: wanghao
|
|
|
labels:
|
|
|
app: zookeeper
|
|
|
annotations:
|
|
|
kubesphere.io/creator: admin
|
|
|
spec:
|
|
|
replicas: 1
|
|
|
selector:
|
|
|
matchLabels:
|
|
|
app: zookeeper
|
|
|
template:
|
|
|
metadata:
|
|
|
creationTimestamp: null
|
|
|
labels:
|
|
|
app: zookeeper
|
|
|
annotations:
|
|
|
kubesphere.io/restartedAt: '2023-03-08T01:47:35.415Z'
|
|
|
logging.kubesphere.io/logsidecar-config: '{}'
|
|
|
spec:
|
|
|
volumes:
|
|
|
- name: host-time
|
|
|
hostPath:
|
|
|
path: /etc/localtime
|
|
|
type: ''
|
|
|
- name: volume-nffzxk
|
|
|
configMap:
|
|
|
name: zookeeper
|
|
|
defaultMode: 420
|
|
|
- name: volume-2lak5i
|
|
|
persistentVolumeClaim:
|
|
|
claimName: zookeeper
|
|
|
containers:
|
|
|
- name: container-oryqbp
|
|
|
image: zookeeper
|
|
|
ports:
|
|
|
- name: tcp-2181
|
|
|
containerPort: 2181
|
|
|
protocol: TCP
|
|
|
- name: tcp-2888
|
|
|
containerPort: 2888
|
|
|
protocol: TCP
|
|
|
- name: tcp-3888
|
|
|
containerPort: 3888
|
|
|
protocol: TCP
|
|
|
- name: tcp-8080
|
|
|
containerPort: 8080
|
|
|
protocol: TCP
|
|
|
resources:
|
|
|
limits:
|
|
|
cpu: 500m
|
|
|
memory: 200Mi
|
|
|
volumeMounts:
|
|
|
- name: host-time
|
|
|
readOnly: true
|
|
|
mountPath: /etc/localtime
|
|
|
- name: volume-nffzxk
|
|
|
readOnly: true
|
|
|
mountPath: /conf/zoo.cfg
|
|
|
subPath: zoo.cfg
|
|
|
- name: volume-2lak5i
|
|
|
mountPath: /data
|
|
|
terminationMessagePath: /dev/termination-log
|
|
|
terminationMessagePolicy: File
|
|
|
imagePullPolicy: IfNotPresent
|
|
|
restartPolicy: Always
|
|
|
terminationGracePeriodSeconds: 30
|
|
|
dnsPolicy: ClusterFirst
|
|
|
nodeSelector:
|
|
|
kubernetes.io/hostname: k8s-node3
|
|
|
serviceAccountName: default
|
|
|
serviceAccount: default
|
|
|
securityContext: {}
|
|
|
schedulerName: default-scheduler
|
|
|
serviceName: zookeeper-f6d8
|
|
|
podManagementPolicy: OrderedReady
|
|
|
updateStrategy:
|
|
|
type: RollingUpdate
|
|
|
rollingUpdate:
|
|
|
partition: 0
|
|
|
revisionHistoryLimit: 10
|
|
|
```
|
|
|
|
|
|
|
|
|
## 搭建kafka
|
|
|
选用镜像 ```wurstmeister/zookeeper```
|
|
|
![image-1678375058969](https://local.wuanwanghao.top:9000/test/test/image-1678375058969.png)
|
|
|
启动是添加环境变量
|
|
|
```
|
|
|
KAFKA_BROKER_ID:0 #该ID是集群的唯一标识
|
|
|
|
|
|
KAFKA_ADVERTISED_LISTENERS:PLAINTEXT://local.wuanwanghao.top:9092 #kafka发布到zookeeper供客户端使用的服务地址。
|
|
|
|
|
|
KAFKA_ZOOKEEPER_CONNECT: zookeeper.wanghao:2181 #zk的连接地址
|
|
|
|
|
|
KAFKA_LISTENERS:PLAINTEXT://0.0.0.0:9092 #允许使用PLAINTEXT侦听器
|
|
|
```
|
|
|
|
|
|
|
|
|
主要一点创建kafka 相应服务的时候一定不要把服务名称定义为```kafka```,
|
|
|
相关问题以踩坑 [Invalid value tcp://10.0.35.234:9092 for configuration port: Not a number of type INT](https://github.com/wurstmeister/kafka-docker/issues/122) |