--- apiVersion: v1 kind: Service metadata: name: kafka-svc spec: ports: - port: 9093 targetPort: 9093 name: server protocol: TCP nodePort: 9093 type: NodePort --- apiVersion: apps/v1 kind: StatefulSet metadata: name: kafka spec: serviceName: kafka-svc replicas: 3 selector: matchLabels: app: kafka template: metadata: labels: app: kafka spec: hostAliases: - ip: "192.168.40.127" hostnames: - "bigdata-127" - ip: "192.168.40.151" hostnames: - "bigdata-151" - ip: "192.168.40.152" hostnames: - "bigdata-152" 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 securityContext: runAsUser: 0 imagePullPolicy: Always image: 192.168.40.153:9080/k8s/kafka:test3 resources: requests: memory: "1Gi" cpu: 500m ports: - containerPort: 9093 hostPort: 9093 env: - name: KA_PORT value: "9093" - name: HOST_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: ZK_DIR value: "zk-0.zk-hs.default.svc.cluster.local:2182/kafka-test" volumeMounts: - name: datadir mountPath: /opt/kafka-logs securityContext: runAsUser: 1000 fsGroup: 1000 volumeClaimTemplates: - metadata: name: datadir spec: accessModes: [ "ReadWriteMany" ] storageClassName: nfs resources: requests: storage: 5Gi