Назад | Перейти на главную страницу

кафка в капсуле кубернетов

Я новичок в работе с настройкой kubernetes и пытаюсь запустить модуль kafka с постоянным объемом, поэтому в случае отказа модуля память не теряется, и я могу развернуть новый кластер, используя постоянную память.

Проблема с этим

Я пытался сделать здесь

apiVersion: v1
kind: Service
metadata:
  name: kafka
  labels:
    app: kafka
spec:
  type: NodePort
  ports:
   - port: 9092
  selector:
   app: kafka
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
 name: kafka
spec:
 selector:
   matchLabels:
     app: kafka
 serviceName: "kafka"
 template:
   metadata:
     labels:
       app: kafka
   spec:
     terminationGracePeriodSeconds: 10
     containers:
     - name: kafka
       image: bitnami/kafka:latest
       # readinessProbe:
       #   httpGet:
       #     port: 7070
       #     path: /readiness
       #   initialDelaySeconds: 120
       #   periodSeconds: 15
       #   failureThreshold: 1
       # livenessProbe:
       #   httpGet:
       #     port: 7070
       #     path: /liveness
       #   initialDelaySeconds: 360
       #   periodSeconds: 15
       #   failureThreshold: 3
       ports:
       - containerPort: 9092
       volumeMounts:
       - name: kafka
         mountPath: /binami/kafka
 volumeClaimTemplates:
 - metadata:
     name: datadir
   spec:
     accessModes: [ "ReadWriteOnce" ]
     resources:
       requests:
         storage: 1Gi

но это, похоже, не работает, по какой-то причине он переходит в состояние ошибки с сообщением об ошибке:

pod has unbound immediate PersistentVolumeClaims

Что я не уверен, что понимаю? - громкость используется только этим?
и модуль не перезапустился, поэтому я совершенно не понимаю, почему это не работает?

PVC-config:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: datadir-kafka-0
  namespace: default
  selfLink: /api/v1/namespaces/default/persistentvolumeclaims/datadir-kafka-0
  uid: 264204f8-21cc-11ea-8f02-00155de9e001
  resourceVersion: '149105'
  creationTimestamp: '2019-12-18T19:25:28Z'
  labels:
    app: kafka
  annotations:
    control-plane.alpha.kubernetes.io/leader: >-
      {"holderIdentity":"640e4416-2192-11ea-978b-8c1645373373","leaseDurationSeconds":15,"acquireTime":"2019-12-18T19:25:28Z","renewTime":"2019-12-18T19:25:30Z","leaderTransitions":0}
    pv.kubernetes.io/bind-completed: 'yes'
    pv.kubernetes.io/bound-by-controller: 'yes'
    volume.beta.kubernetes.io/storage-provisioner: docker.io/hostpath
  finalizers:
    - kubernetes.io/pvc-protection
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  volumeName: pvc-264204f8-21cc-11ea-8f02-00155de9e001
  storageClassName: hostpath
  volumeMode: Filesystem
status:
  phase: Bound
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 1Gi

PV-конфигурация:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: pvc-264204f8-21cc-11ea-8f02-00155de9e001
  selfLink: /api/v1/persistentvolumes/pvc-264204f8-21cc-11ea-8f02-00155de9e001
  uid: 264dab2e-21cc-11ea-8f02-00155de9e001
  resourceVersion: '149091'
  creationTimestamp: '2019-12-18T19:25:28Z'
  annotations:
    docker.io/hostpath: >-
      C:\Users\kube\.docker\Volumes\datadir-kafka-0\pvc-264204f8-21cc-11ea-8f02-00155de9e001
    pv.kubernetes.io/provisioned-by: docker.io/hostpath
  finalizers:
    - kubernetes.io/pv-protection
spec:
  capacity:
    storage: 1Gi
  hostPath:
    path: >-
      /host_mnt/c/Users/kube/.docker/Volumes/datadir-kafka-0/pvc-264204f8-21cc-11ea-8f02-00155de9e001
    type: ''
  accessModes:
    - ReadWriteOnce
  claimRef:
    kind: PersistentVolumeClaim
    namespace: default
    name: datadir-kafka-0
    uid: 264204f8-21cc-11ea-8f02-00155de9e001
    apiVersion: v1
    resourceVersion: '149073'
  persistentVolumeReclaimPolicy: Delete
  storageClassName: hostpath
  volumeMode: Filesystem
status:
  phase: Bound

Похоже, что динамический поставщик PersistentVolume не поддерживает локальное хранилище, как указано Вот.

Вам необходимо указать StorageClassName указав локальный том, который вы создали в datadir volumeClaimTemplates вашей кафка StatefulSet. Вы можете прочитать пример Вот.

Попробуйте что-то вроде этого:

 volumeClaimTemplates:
 - metadata:
     name: datadir
   spec:
     accessModes: [ "ReadWriteOnce" ]
     storageClassName: hostpath
     resources:
       requests:
         storage: 1Gi