由于Kafka依赖Zookeeper,我们先来部署Zookeeper单节点
1. zookeeper.yaml
该文件中我们新增了livenessProbe存活检查机制
apiVersion: apps/v1
kind: Deployment
metadata:
name: zookeeper-pod
namespace: middleware
labels:
app: zookeeper
spec:
replicas: 1
selector:
matchLabels:
project: zookeeper-pod
app: zookeeper
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
revisionHistoryLimit: 5
template:
metadata:
labels:
project: zookeeper-pod
app: zookeeper
spec:
containers:
- name: zookeeper
image: zookeeper:3.8.1
imagePullPolicy: Always
livenessProbe:
tcpSocket:
port: 2181
---
apiVersion: v1
kind: Service
metadata:
name: zookeeper-pod
namespace: middleware
labels:
project: zookeeper-pod
app: zookeeper
spec:
type: NodePort
selector:
project: zookeeper-pod
app: zookeeper
ports:
- port: 2181
targetPort: 2181
nodePort: 32181
# 部署zookeeper
kubectl apply -f zookeeper.yaml
# 查看pod运行状态
kubectl get pods -n middleware
NAME READY STATUS RESTARTS AGE
zookeeper-pod-55cbcd55d4-cfcqm 1/1 Running 0 19m
2. kafka.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: kafka
namespace: middleware
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
revisionHistoryLimit: 5
selector:
matchLabels:
project: kafka
app: kafka
template:
metadata:
labels:
project: kafka
app: kafka
spec:
containers:
- name: kafka
image: bitnami/kafka:3.3.1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9092
name: web
protocol: TCP
env:
- name: KAFKA_CFG_ZOOKEEPER_CONNECT
value: zookeeper-pod.middleware:2181
- name: KAFKA_CFG_LISTENERS
value: PLAINTEXT://0.0.0.0:9092
- name: KAFKA_CFG_ADVERTISED_LISTENERS
# 改为本机IP4地址
value: PLAINTEXT://192.168.1.5:30092
#- name: KAFKA_HEAP_OPTS
# value: -Xmx2048m -Xms2048m
- name: ALLOW_PLAINTEXT_LISTENER
value: "yes"
---
apiVersion: v1
kind: Service
metadata:
name: kafka
namespace: middleware
labels:
app: kafka
spec:
type: NodePort
selector:
project: kafka
app: kafka
ports:
- port: 9092
targetPort: 9092
nodePort: 30092
kubectl apply -f kafka.yaml
kubectl get pods -n middleware
NAME READY STATUS RESTARTS AGE
kafka-7cc7786fcc-69mvp 1/1 Running 0 22s
zookeeper-pod-55cbcd55d4-cfcqm 1/1 Running 0 34m
# 删除之前部署的redis
kubectl delete deployment redis-pod -n middleware
# 查看当前所有的部署
kubectl get deployment -n middleware
NAME READY UP-TO-DATE AVAILABLE AGE
kafka 1/1 1 1 14m
zookeeper-pod 1/1 1 1 38m
OK, K8S本地部署单节点Zookeeper与Kafka成功,后面我们就开始Kafka的实践学习之旅了
欢迎关注公众号算法小生或许最新资讯