文章目录
AWS EKS动态创建卷配置
需求
开发测试环境需要创建redis,mysql等中间件,使用动态pvc存储并挂载卷。
EBS CSI DRIVER
什么是EBS CSI DRIVER
Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) 驱动程序允许 Amazon Elastic Kubernetes Service (Amazon EKS) 集群管理持久性卷的 Amazon EBS 卷的生命周期。
为什么要安装EBS CSI DRIVER
- EKS 1.24及以上首次安装默认没有EBS CSI驱动,如果要使用动态存储卷,需要安装EBS CSI驱动程序。
将 Amazon EBS CSI 驱动程序作为 Amazon EKS 附加组件管理
先决条件
- 集群的现有 AWS Identity and Access Management IAM OpenID Connect (OIDC) 提供商
- Amazon EBS CSI 驱动程序 IAM 角色
查看并创建IAM OIDC提供商
https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/enable-iam-roles-for-service-accounts.html
1,确定集群是否拥有现有IAM OIDC提供商,检索集群的 OIDC 提供商 ID 并将其存储在变量中
oidc_id=$(aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)
2,确定您的账户中是否已存在具有您的集群 ID 的 IAM OIDC 提供商。
aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4
如果返回了输出,则表示您的集群已经有 IAM OIDC 提供商,您可以跳过下一步。如果没有返回输出,则您必须为集群创建 IAM OIDC 提供商。
3,使用以下命令为您的集群创建 IAM OIDC 身份提供商。将 my-cluster 替换为您自己的值。
eksctl utils associate-iam-oidc-provider --cluster my-cluster --approve
创建IAM policy和角色
eksctl create iamserviceaccount \
--name ebs-csi-controller-sa \
--namespace kube-system \
--cluster test \
--attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
--approve \
--role-only \
--role-name AmazonEKS_test_EBS_CSI_DriverRole
PS: role-name有多个集群的时候需要修改,不可同名
添加 Amazon EBS CSI 附加组件
运行以下命令。将 my-c