123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- apiVersion: v1
- kind: Service
- metadata:
- name: kafka-svc
- namespace: qa
- labels:
- app: kafka
- spec:
- ports:
- - port: 9093
- name: server
- clusterIP: None #创建无头服务,如果需要对外暴露端口可自行创建service
- selector:
- app: kafka
- ---
- apiVersion: policy/v1beta1
- kind: PodDisruptionBudget
- metadata:
- name: kafka-pdb
- namespace: qa
- spec:
- selector:
- matchLabels:
- app: kafka
- minAvailable: 2
- ---
- apiVersion: apps/v1
- kind: StatefulSet
- metadata:
- name: kafka
- namespace: qa
- spec:
- selector:
- matchLabels:
- app: kafka
- serviceName: kafka-svc
- replicas: 3
- template:
- metadata:
- labels:
- app: kafka
- spec:
- affinity:
- podAntiAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- - labelSelector:
- matchExpressions:
- - key: "app"
- operator: In
- values:
- - kafka
- topologyKey: "kubernetes.io/hostname"
- podAffinity:
- preferredDuringSchedulingIgnoredDuringExecution:
- - weight: 1
- podAffinityTerm:
- labelSelector:
- matchExpressions:
- - key: "app"
- operator: In
- values:
- - zk
- topologyKey: "kubernetes.io/hostname"
- terminationGracePeriodSeconds: 300
- containers:
- - name: k8skafka
- imagePullPolicy: Always
- image: hub.evbj.easou.com/qa/kubernetes-kafka:1.0-10.2.1 #可自行去阿里云拉去对应镜像
- resources:
- requests:
- memory: "1Gi"
- cpu: "1000m"
- limits:
- memory: "1Gi"
- cpu: "1000m"
- ports:
- - containerPort: 9093
- name: server
- command:
- - sh
- - -c
- - "exec kafka-server-start.sh /opt/kafka/config/server.properties --override broker.id=${HOSTNAME##*-} \
- --override listeners=PLAINTEXT://:9093 \
- --override zookeeper.connect=zk-cs.qa.svc.cluster.local:2181 \ #这里配置了与zookeeper进行连接,非常重要。格式为:pod名.zookeeper的service名.名称空间.svc.cluster.local:2181
- --override log.dir=/var/lib/kafka "
- env:
- - name: KAFKA_HEAP_OPTS
- value: "-Xmx512M -Xms512M"
- - name: KAFKA_OPTS
- value: "-Dlogging.level=INFO"
- volumeMounts:
- - name: volume
- mountPath: /data/kafka
- readinessProbe:
- tcpSocket:
- port: 9093
- timeoutSeconds: 2
- securityContext:
- runAsUser: 1000
- fsGroup: 1000
- volumeClaimTemplates:
- - metadata:
- name: volume
- spec:
- accessModes: [ "ReadWriteOnce" ]
- storageClassName: rbd
- resources:
- requests:
- storage: 100Gi
|