apiVersion: v1 kind: Namespace metadata: name: kafka --- apiVersion: v1 kind: Service metadata: name: kafka-svc labels: app: kafka-app namespace: kafka spec: clusterIP: None ports: - name: '9092' port: 9092 protocol: TCP targetPort: 9092 selector: app: kafka-app --- apiVersion: apps/v1 kind: StatefulSet metadata: name: kafka labels: app: kafka-app namespace: kafka spec: serviceName: kafka-svc replicas: 1 selector: matchLabels: app: kafka-app template: metadata: labels: app: kafka-app spec: volumes: - name: kafka-data persistentVolumeClaim: claimName: kafka-pv-claim containers: - name: kafka image: pujielan/kafka:3.4.0 imagePullPolicy: IfNotPresent ports: - containerPort: 9092 - containerPort: 9093 env: - name: REPLICAS value: '1' - name: SERVICE value: kafka-svc - name: NAMESPACE value: kafka - name: SHARE_DIR value: /mnt/kafka volumeMounts: - name: kafka-data mountPath: /mnt/kafka volumeClaimTemplates: - metadata: name: kafka-data spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: openebs-hostpath