在 Kubernetes 中,每个容器都有一个存活性探测和一个就绪探测,用于确定容器是否正在运行并准备好接受流量。如果探测失败,则 Kubernetes 将自动重启容器。对于 bitnami/zookeeper 和 bitnami/kafka 镜像,可能出现以下两种情况:存活性探测失败或就绪探测失败。
在存活性探测方面,这些镜像使用 ZK_CLI_CMD 和 KAFKA_HOME 环境变量。如果这些环境变量未设置或设置不正确,则存活性探测将失败。以下是一个正确设置环境变量的示例:
livenessProbe:
exec:
command:
- sh
- -c
- "/opt/bitnami/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181 ls / && /opt/bitnami/kafka/bin/kafka-topics.sh --list --bootstrap-server=127.0.0.1:9092"
initialDelaySeconds: 20
timeoutSeconds: 5
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
这段代码将创建一个名为 livenessProbe 的探测器,并使用 zkCli.sh 列出 Zookeeper 中的根节点,然后使用 kafka-topics.sh 列出 Kafka 中的所有主题。如果这两个命令都成功运行,则探测器将被认为是成功的。
在就绪探测方面,这些镜像使用 KAFKA_HOME 环境变量。如果这个环境变量未设置或设置不正确,则就绪探测将失败。以下是一个正确