1.Kafka系列之K8S部署单节点

由于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的实践学习之旅了
欢迎关注公众号算法小生或许最新资讯

猜你喜欢

转载自blog.csdn.net/SJshenjian/article/details/129778250