首页 > 解决方案 > ebs-csi-node 守护程序集未在 arm64 节点上运行

问题描述

我正在使用混合了 amd64 和 arm64 节点的 eks 集群,在将带有 helm chart 2.3.0 的 aws-ebs-csi 驱动程序部署到我的集群后发现 ebs-csi-node 守护程序集仅在 amd64 节点上而不是在 arm64 上创建由于未配置哪个卷。

NAME           DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
aws-node       192       192       192     192          192         <none>                   691d
ebs-csi-node   19        19        19      19           19          kubernetes.io/os=linux   256d
kube-proxy     192       192       192     192          192         <none>                   691d

同时运行 ebs-csi-controller 的 2 个副本,它们都只部署在 amd64 节点上。我是否需要任何选择器来控制图表以选择需要部署 ebs-csi-controller 的节点?

标签: kubernetesamazon-ec2

解决方案


我正在使用 terraform 资源来配置 eks 集群中的 ebs-csi-controller,如下所示:

resource "helm_release" "aws-ebs-csi-driver" {
  name       = "aws-ebs-csi-driver"
  repository = "https://kubernetes-sigs.github.io/aws-ebs-csi-driver"
  chart      = "aws-ebs-csi-driver"
  namespace  = "kube-system"
  version = "2.3.0"

  values = [
    <<EOF
enableVolumeScheduling: true
enableVolumeResizing: true
enableVolumeSnapshot: true
node.tolerateAllTaints: true
EOF
  ]
}

发现即使在设置“node.tolerateAllTaints:true”值之后,在手动更新在所有节点上创建的 torelation DS 之后,DS 也没有使用 torelation“- operation: exists”进行更新。我正在纠正 terraform 中的关系。像这样更新值后:

values = [
    <<EOF
enableVolumeScheduling: true
enableVolumeResizing: true
enableVolumeSnapshot: true
node:
  tolerateAllTaints: true
EOF
  ]

DS 在所有节点上创建


推荐阅读