--- apiVersion: v1 kind: Service metadata: name: kafka-nodeport namespace: mid spec: selector: app: kafka type: NodePort ports: - name: outer-port port: 9092 protocol: TCP targetPort: 9092 --- apiVersion: v1 kind: Service metadata: name: kafka-headless namespace: mid labels: app: kafka-headless spec: selector: app: kafka type: ClusterIP clusterIP: None publishNotReadyAddresses: true sessionAffinity: ClientIP ports: - name: inside-port port: 9091 protocol: TCP targetPort: 9091 - name: outer-port port: 9092 protocol: TCP targetPort: 9092 - name: cluster-port port: 9093 protocol: TCP targetPort: 9093 --- apiVersion: apps/v1 kind: StatefulSet metadata: name: kafka namespace: mid spec: podManagementPolicy: OrderedReady replicas: 3 selector: matchLabels: app: kafka serviceName: kafka-headless template: metadata: name: kafka labels: app: kafka spec: serviceAccountName: kafka containers: - name: kafka image: harbor.uenpay.com/base/kafka:v2.8.0 #image: registry.cn-hangzhou.aliyuncs.com/zhengyu1992/kafka:v2.8.0_root imagePullPolicy: Always resources: limits: cpu: 4 memory: 8Gi requests: cpu: 1 memory: 2Gi env: - name: NODE_ID valueFrom: fieldRef: fieldPath: metadata.name - name: KAFKA_HEAP_OPTS value: -Xmx512M -Xms512M - name: HOST_IP valueFrom: fieldRef: fieldPath: status.podIP - name: TZ value: Asia/Shanghai command: ["/bin/bash","-c"] args: ["/kafka/start-kafka.sh"] ports: - name: interactiveport containerPort: 9092 protocol: TCP - name: controlport containerPort: 9093 protocol: TCP volumeMounts: - name: data mountPath: /kafka/combined-logs - name: config mountPath: /kafka/start-kafka.sh subPath: start-kafka.sh - name: timezone mountPath: /etc/localtime livenessProbe: periodSeconds: 15 tcpSocket: port: 9092 securityContext: runAsUser: 0 volumes: - name: config configMap: defaultMode: 493 name: kafka-config - name: timezone hostPath: path: /etc/localtime # tolerations: # - key: node-role.kubernetes.io # effect: NoSchedule # operator: Equal # value: master # - effect: NoSchedule # operator: Exists # affinity: # nodeAffinity: # preferredDuringSchedulingIgnoredDuringExecution: # - weight: 1 # preference: # matchExpressions: # - key: node # operator: In # values: # - master1 # - node1 volumeClaimTemplates: - metadata: name: data #不写下面两行用默认存储类 annotations: volume.beta.kubernetes.io/storage-class: "cephfs-sc" spec: accessModes: - ReadWriteMany # - ReadWriteOnce resources: requests: storage: 100Gi updateStrategy: type: RollingUpdate