我想在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: root
或user: "0:0"
,但是我找不到如何添加它。
1条答案
按热度按时间58wvjzkj1#
我遇到了同样的问题,我找到了一种方法来做类似的事情,以link you are talking about,但使用Kubernetes。
在pod配置中,您可以添加:
我不确定这是否是一个合适的解决方案,但它应该可以工作。在我的情况下,我不能使用它作为一个解决方案,因为我的集群配置不允许我以root身份运行pod。
也许你可以尝试设置
runAsUser: 1000
和runAsGroup: 1000
。这是我通过docker运行映像时看到的ID。虽然不确定这是否有效,因为我可以看到日志中的ID是相同的。