命令[/usr/local/bin/dub路径/var/lib/Kafka/data writable]失败!在Kafka中

holgip5t  于 2023-03-01  发布在  Apache
关注(0)|答案(1)|浏览(446)

我想在k8s集群中部署一个Kafka。我有一个zookeeper,部署时没有任何问题,但部署kafka时,它没有运行,并卡在crashloopbackoff中。我检查了它的日志,下面是它的日志:

===> User uid=1000(appuser) gid=1000(appuser) groups=1000(appuser)
===> Configuring ...
===> Running preflight checks ...
===> Check if /var/lib/kafka/data is writable ...
Command [/usr/local/bin/dub path /var/lib/kafka/data writable] FAILED !

下面是我的部署文件:

kind: Deployment
apiVersion: apps/v1
metadata:
  name: kafka-broker0
spec:
  replicas: 2
  selector:
    matchLabels:
        app: kafka
        id: "0"
  template:
    metadata:
      labels:
        app: kafka
        id: "0"
    spec:
      containers:
      - name: kafka
        image: confluentinc/cp-kafka:6.2.2
        ports:
        - containerPort: 9092
        env:
        - name: KAFKA_ADVERTISED_LISTENERS
          value: PLAINTEXT://127.0.0.1:9092
        - name: KAFKA_ZOOKEEPER_CONNECT
          value: zoo1:2181
        - name: KAFKA_BROKER_ID
          value: "0"
        - name: KAFKA_CREATE_TOPICS
          value: input:1:1, output:1:1
        volumeMounts:
        - mountPath: /var/lib/kafka/data
          name: kafka-data
      volumes:
      - name: kafka-data
        persistentVolumeClaim:
          claimName: kafka-data

我发现了这个link,但是在所有的解决方案中,都是关于用docker部署的,并且没有任何针对kubernetes的解决方案。另外,我试图添加user: rootuser: "0:0",但是我找不到如何添加它。

58wvjzkj

58wvjzkj1#

我遇到了同样的问题,我找到了一种方法来做类似的事情,以link you are talking about,但使用Kubernetes。
在pod配置中,您可以添加:

spec:
      containers:
      - name: kafka
        image: confluentinc/cp-kafka:6.2.2
        securityContext:
          runAsUser: 0
          runAsGroup: 0

我不确定这是否是一个合适的解决方案,但它应该可以工作。在我的情况下,我不能使用它作为一个解决方案,因为我的集群配置不允许我以root身份运行pod。
也许你可以尝试设置runAsUser: 1000runAsGroup: 1000。这是我通过docker运行映像时看到的ID。虽然不确定这是否有效,因为我可以看到日志中的ID是相同的。

===> User
uid=1000(appuser) gid=1000(appuser) groups=1000(appuser)

相关问题