Кафка темы удаляются после перезагрузки

У меня есть кластер kubernetes с одним модулем zookeeper и тремя модулями брокера kafka.

Дескриптор развертывания для zk:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: zookeeper
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: zookeeper
    spec:
      containers:
      - env:
        - name: ZOOKEEPER_ID
          value: "1"
        - name: ZOOKEEPER_SERVER_1
          value: zookeeper
        - name: ZOOKEEPER_CLIENT_PORT
          value: "2181"
        - name: ZOOKEEPER_TICK_TIME
          value: "2000"
        name: zookeeper
        image: confluentinc/cp-zookeeper:5.0.1
        ports:
        - containerPort: 2181
        volumeMounts:
        - mountPath: /var/lib/zookeeper/
          name: zookeeper-data
      nodeSelector:
        noderole: kafka1
      restartPolicy: Always
      volumes:
      - name: zookeeper-data
        persistentVolumeClaim:
          claimName: zookeeper-volume-claims

А для брокеров kafka действуют следующие правила (по одному для каждого брокера с соответствующими именами брокеров, слушателями и постоянными требованиями к объему):

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: kafka1
spec:
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        name: kafka1
    spec:
      containers:
      - env:
        - name: KAFKA_AUTO_CREATE_TOPICS_ENABLE
          value: "true"
        - name: KAFKA_ADVERTISED_LISTENERS
          value: "PLAINTEXT://<ip>:9092"
        - name: KAFKA_LISTENERS
          value: "PLAINTEXT://0.0.0.0:9092"
        - name: KAFKA_ZOOKEEPER_CONNECT
          value: <ip>:2181
        - name: KAFKA_BROKER_ID
          value: "1"
        name: kafka1
        image: confluentinc/cp-enterprise-kafka:5.0.1
        ports:
        - containerPort: 9092
        volumeMounts:
        - mountPath: /var/lib/kafka
          name: kafka1-data
      nodeSelector:
        noderole: kafka2
      restartPolicy: Always
      volumes:
      - name: kafka1-data
        persistentVolumeClaim:
          claimName: kafka1-volume-claim

Кластер запущен и работает, и я могу создавать темы, публиковать и получать сообщения.

Файл log.1 находится в / var / lib / zookeeper / log / version-2.

-rw-r--r-- 1 root root 67108880 Jan 18 11:34 log.1

И если я столкнусь с одним из брокеров:

kubectl exec -it kafka3-97454b745-wddpv bash

Я вижу два раздела темы:

drwxr-xr-x 2 root root 4096 Jan 21 10:34 test1-1
drwxr-xr-x 2 root root 4096 Jan 21 10:35 test1-0

Проблема возникает, когда я перезапускаю виртуальные машины, когда назначены брокеры муравьев zookeeper. Один для zk и по одному для каждого брокера (три виртуальных машины, которые соответствуют моему кластеру Kubernetes)

После перезагрузки в каждом из брокеров нет тем:

root@kafka3-97454b745-wddpv:/var/lib/kafka/data# ls -lrt
total 24
-rw-r--r-- 1 root root    0 Jan 21 10:56 cleaner-offset-checkpoint
-rw-r--r-- 1 root root   54 Jan 21 10:56 meta.properties
drwxr-xr-x 2 root root 4096 Jan 21 10:56 __confluent.support.metrics-0
drwxr-xr-x 2 root root 4096 Jan 21 10:56 _schemas-0
-rw-r--r-- 1 root root   49 Jan 21 11:10 recovery-point-offset-checkpoint
-rw-r--r-- 1 root root    4 Jan 21 11:10 log-start-offset-checkpoint
-rw-r--r-- 1 root root   49 Jan 21 11:11 replication-offset-checkpoint

И в zookeeper:

root@zookeeper-84bb68d45b-cklwm:/var/lib/zookeeper/log/version-2# ls -lrt
total 16
-rw-r--r-- 1 root root 67108880 Jan 21 10:56 log.1

И если я перечисляю темы, их больше нет.

Кластер Kubernetes работает в Azure.

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

Любая помощь могла бы быть полезна.


person josele    schedule 21.01.2019    source источник


Ответы (1)


Просто это была неправильная конфигурация пути монтирования. Пути должны указывать на папки данных и журналов транзакций, а не на родительские папки.

person josele    schedule 25.01.2019