You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS EKS部署Strimzi持久化Kafka时Zookeeper Pod处于Pending状态

解决EKS 1.24 + Strimzi 0.33 持久化ZooKeeper Pod Pending问题

核心原因

EKS 1.24版本移除了内置的EBS存储驱动,必须使用AWS EBS CSI驱动才能动态创建持久化卷。临时部署(kafka-ephemeral-single.yaml)不依赖持久化PV,所以能正常运行;而持久化部署需要动态生成EBS卷,因CSI驱动未正确配置导致PVC无法绑定,进而Pod处于Pending状态。

解决步骤

1. 检查并安装AWS EBS CSI驱动

首先确认集群中是否已部署EBS CSI驱动:

kubectl get pods -n kube-system -l app.kubernetes.io/name=aws-ebs-csi-driver

如果没有返回运行中的Pod,使用eksctl快速安装:

eksctl create addon --name aws-ebs-csi-driver --cluster <你的集群名称> --force

安装完成后再次检查Pod状态,确保所有CSI驱动Pod处于Running状态。

2. 修正gp2存储类的Provisioner配置

默认的gp2存储类可能仍使用旧的内置驱动标识kubernetes.io/aws-ebs,需要改为CSI驱动的标识ebs.csi.aws.com:
查看当前存储类配置:

kubectl get storageclass gp2 -o yaml

若provisioner字段不是ebs.csi.aws.com,直接编辑存储类:

kubectl edit storageclass gp2

将provisioner值修改为ebs.csi.aws.com,保存退出。

3. 验证CSI驱动的IAM权限

EBS CSI驱动需要足够的IAM权限才能创建/管理EBS卷,确保其ServiceAccount关联了正确的IAM角色:
检查kube-system下的CSI服务账户:

kubectl get sa -n kube-system ebs-csi-controller-sa

确认该账户已通过IRSA(IAM Roles for Service Accounts)关联了带有AmazonEBSCSIDriverPolicy权限的IAM角色。如果未关联,需要:

  • 创建IAM策略(直接使用AWS托管的AmazonEBSCSIDriverPolicy)
  • 创建IAM角色并绑定到kube-system/ebs-csi-controller-sa服务账户
  • 确保CSI驱动部署使用该ServiceAccount

4. 重新触发PVC绑定

修改配置后,删除原有异常的PVC并重新部署Strimzi集群:

kubectl delete pvc data-my-cluster-zookeeper-0
kubectl apply -f kafka-persistent-single.yaml

等待几分钟后检查Pod状态:

kubectl get pods -n <你的命名空间>

确认ZooKeeper Pod进入Running状态。

内容的提问来源于stack exchange,提问作者Mahendran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:24:22