一、zookeeper部署
1. 创建zookeeper的statefulset(有状态服务)
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: zookeeper-test
spec:
selector:
matchLabels:
app: zk
serviceName: zookeeper
template:
metadata:
labels:
app: zk
spec:
containers:
- name: zk
image: zookeeper:latest
ports:
- containerPort: 2181
name: zkclient
2. 创建zookeeper无头服务商(Service)
apiVersion: v1
kind: Service
metadata:
name: zookeeper
spec:
clusterIP: None
ports:
- port: 2181
selector:
app: zk
二、kafka部署
1. 创建kafka的statefulset(有状态服务)
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: kafka
spec:
selector:
matchLabels:
app: kafka
serviceName: kafka-test
template:
metadata:
labels:
app: kafka
spec:
containers:
- name: kafka
image: bitnami/kafka:latest
ports:
- containerPort: 9092
name: service
env:
- name: ALLOW_ANONYMOUS_LOGIN
value: "yes"
- name: KAFKA_CFG_ZOOKEEPER_CONNECT
value: "zookeeper-test-0.zookeeper.default.svc.cluster.local:2181"
- name: ALLOW_PLAINTEXT_LISTENER
value: "yes"
2. 创建kafka无头服务商(Service)
apiVersion: v1
kind: Service
metadata:
name: kafka-test
spec:
clusterIP: None
ports:
- port: 9092
selector:
app: kafka
3. 创建kafka Service(在集群外可访问)
apiVersion: v1
kind: Service
metadata:
name: kafka-client
spec:
type: NodePort
ports:
- port: 9092
targetPort: 9092
nodePort: 30092
selector:
app: kafka