AWS EKS安装S3 CSI插件[AWS 海外区]

109 阅读2分钟

Amazon S3 CSI驱动程序允许EKS集群管理S3中的对象,当我们运行在EKS中的pod需要挂载S3进行持久化存储时,必须先安装好S3 CSI驱动,通过S3 CSI我们的应用程序可以通过文件系统接口直接访问Amazon S3对象,就像访问本地文件一样,可以在不更改任何应用程序代码的情况下实现高聚合吞吐量的S3对象读写。具体可以参考Amazon S3 CSI driver

设置S3存储桶

我直接创建了一个新的S3 Bucket进行本次实验的演示,我创建了一个全新的S3 bucket并命名为s3-csi-1025-test

eks-us-s3-01.png

权限设置

创建 IAM policy

参考AWS Management Console 创建S3 CSI Policy,我们继续可以在AWS控制台进行操作。我们先创建IAM Policy并命名为AmazonS3CSIDriverPolicy,将<your-s3-bucketname>替换为你自己实际的S3 bucket

{
   "Version": "2012-10-17",
   "Statement": [
        {
            "Sid": "MountpointFullBucketAccess",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::<your-s3-bucketname>"
            ]
        },
        {
            "Sid": "MountpointFullObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:AbortMultipartUpload",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::<your-s3-bucketname>/*"
            ]
        }
   ]
}

eks-us-s3-02.png

eks-us-s3-03.png

创建完成后,我们可以在AWS IAM控制台查看AmazonS3CSIDriverPolicy eks-us-s3-04.png

创建 IAM 角色

参考AWS Management Console 创建S3 CSI Role,我们继续可以在AWS控制台进行操作。

首选在AWS IAM 控制台点击创建role,接着选择Web identity,然后再选择EKS OIDC后给Audience填入sts.amazonaws.com

eks-us-s3-05.png

选择前面创建好的AmazonS3CSIDriverPolicy eks-us-s3-06.png

给Role一个名称AmazonEKS_S3_CSI_DriverRole eks-us-s3-07.png

继续补充修改AmazonEKS_S3_CSI_DriverRole的信任策略

补充下面的设置"oidc.eks.<region-code>.amazonaws.com/id/<oidc-id>:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa",添加到我画红框的部分,将region-code<oidc-id>替换你自己的实际的值。

eks-us-s3-08.png

安装S3 CSI Addon

我们直接在EKS Addon页面进行添加 eks-us-s3-09.png

选择IAM roles for service accounts (IRSA)并选择AmazonEKS_S3_CSI_DriverRole

eks-us-s3-10.png

eks-us-s3-10.png

等待片刻,插件安装完成 eks-us-s3-11.png

测试

后面你可以自行参考S3 Static provisioning for Amazon EKS来对我们前面安装好的EFS CSI驱动进行功能测试