Кафка темы удаляются после перезагрузки - PullRequest
0 голосов
/ 21 января 2019

У меня есть кластер 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 ant brokers.Один для 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.Как видите, для этого я использую сливные изображения докеров.

Любая помощь будет очень признательна.

1 Ответ

0 голосов
/ 25 января 2019

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

...