選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用適用於 Amazon S3 CSI 驅動程式的掛載點存取 Amazon S3 物件

焦點模式
使用適用於 Amazon S3 CSI 驅動程式的掛載點存取 Amazon S3 物件 - Amazon EKS

協助改善此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要提供此使用者指南,請選擇位於每個頁面右窗格的 GitHub 上的編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

協助改善此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要提供此使用者指南,請選擇位於每個頁面右窗格的 GitHub 上的編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用適用於 Amazon S3 容器儲存介面 (CSI) 驅動程式的掛載點,您的 Kubernetes 應用程式可以透過檔案系統介面存取 Amazon S3 物件,在不變更任何應用程式程式碼的情況下達到高彙總輸送量。CSI 驅動程式建立在適用於 Amazon S3 的掛載點上,以磁碟區的形式呈現 Amazon S3 儲存貯體,可供 Amazon EKS 和自我管理 Kubernetes 叢集中的容器存取。本主題說明如何將 Amazon S3 CSI 驅動程式掛載點部署至 Amazon EKS 叢集。

考量事項

  • Amazon S3 CSI 驅動程式的掛載點目前與 Windows 型容器映像不相容。

  • Amazon S3 CSI 驅動程式的掛載點目前與 Amazon EKS 混合節點不相容。

  • Amazon S3 CSI 驅動程式的掛載點不支援 AWS Fargate。不過,支援在 Amazon EC2 中執行的容器 (使用 Amazon EKS 或自訂 Kubernetes 安裝)。

  • Amazon S3 CSI 驅動程式的掛載點僅支援靜態佈建。不支援動態佈建或建立新儲存貯體。

    注意

    靜態佈建是指使用 PersistentVolume 物件bucketName中指定為 的現有 Amazon S3 儲存貯volumeAttributes體。如需詳細資訊,請參閱 GitHub 上的靜態佈建

  • 使用適用於 Amazon S3 CSI 驅動程式的掛載點掛載的磁碟區不支援所有 POSIX 檔案系統功能。如需檔案系統行為的詳細資訊,請參閱 GitHub 上 Amazon S3 檔案系統行為的掛載點

先決條件

  • 叢集的現有 AWS Identity and Access Management (IAM) OpenID Connect (OIDC) 提供者。若要判定您是否已經擁有一個,或是要建立一個,請參閱 為您的叢集建立 IAM OIDC 身分提供者

  • 在您的裝置或 AWS CloudShell 上安裝和設定 CLI AWS 的 2.12.3 版或更新版本。

  • kubectl 命令列工具安裝在您的裝置或 AWS CloudShell 上。該版本可以與叢集的 Kubernetes 版本相同,也可以比您叢集的 Kubernetes 版本更早或更晚一個次要版本。例如,如果您的叢集版本為 1.29,則可以搭配使用 kubectl 1.281.291.30 版。若要安裝或升級 kubectl,請參閱 設定 kubectl和 eksctl

建立 IAM 政策

Amazon S3 CSI 驅動程式的掛載點需要 Amazon S3 許可才能與您的檔案系統互動。此節將介紹如何建立可授予必要許可的 IAM 政策。

下列範例政策遵循掛載點的 IAM 許可建議。或者,您可以使用 AWS 受管政策 AmazonS3FullAccess,但此受管政策授予的許可比掛載點所需的許可更多。

如需掛載點建議許可的詳細資訊,請參閱 GitHub 上的掛載點 IAM 許可

  1. 開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. 在左側導覽窗格中選擇 Policies (政策)。

  3. 政策頁面上,選擇建立政策

  4. 對於政策編輯器,選擇 JSON

  5. 政策編輯器下,複製並貼上以下內容:

    重要

    amzn-s3-demo-bucket1 取代為您自己 Amazon S3 儲存貯體的名稱。

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

    Amazon S3 Express One Zone 儲存類別引進的目錄儲存貯體,使用與一般用途儲存貯體不同的身分驗證機制。您應該使用 s3:*動作,而不是使用 s3express:CreateSession動作。如需目錄儲存貯體的資訊,請參閱《Amazon S3 使用者指南》中的目錄儲存貯體。

    以下是您將用於目錄儲存貯體的最低權限政策範例。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3express:CreateSession", "Resource": "arn:aws: s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket1--usw2-az1--x-s3" } ] }
  6. 選擇 Next (下一步)

  7. 檢閱與建立頁面上,為您的政策命名。本範例逐步教學使用的名稱是 AmazonS3CSIDriverPolicy

  8. 選擇 建立政策

建立 IAM 角色

Amazon S3 CSI 驅動程式的掛載點需要 Amazon S3 許可才能與您的檔案系統互動。此節將介紹如何建立 IAM 角色以委派這些許可。若要建立此角色,您可以使用下列其中一個工具:

注意

IAM 政策 AmazonS3CSIDriverPolicy 於上一節建立。

eksctl

使用 建立 Amazon S3 CSI 驅動程式 IAM 角色的掛載點 eksctl

若要建立 IAM 角色和 Kubernetes 服務帳戶,請執行下列命令。這些命令也會將 AmazonS3CSIDriverPolicy IAM 政策連接至角色、使用 IAM 角色的 Amazon Resource Name (ARNs3-csi-controller-sa) 標註 Kubernetes 服務帳戶 (),並將 Kubernetes 服務帳戶名稱新增至 IAM 角色的信任政策。

CLUSTER_NAME=my-cluster REGION=region-code ROLE_NAME=AmazonEKS_S3_CSI_DriverRole POLICY_ARN=AmazonEKS_S3_CSI_DriverRole_ARN eksctl create iamserviceaccount \ --name s3-csi-driver-sa \ --namespace kube-system \ --cluster $CLUSTER_NAME \ --attach-policy-arn $POLICY_ARN \ --approve \ --role-name $ROLE_NAME \ --region $REGION \ --role-only

AWS Management Console

  1. 開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. 在左側導覽窗格中,選擇 Roles (角色)。

  3. Roles (角色) 頁面上,選擇 Create role (建立角色)。

  4. Select trusted entity (選取信任的實體) 頁面上,執行以下作業:

    1. Trusted entity type (信任的實體類型) 區段中,選擇 Web identity (Web 身分)。

    2. 對於 Identity provider (身分提供者),為您的叢集選擇 OpenID Connect provider URL (OpenID Connect 供應商 URL)(如 Amazon EKS Overview (概觀) 下所示)。

      如果沒有顯示 URLs,請檢閱先決條件

    3. 針對 Audience (對象),選擇 sts.amazonaws.com

    4. 選擇 Next (下一步)

  5. Add permissions (新增許可) 頁面上,執行以下作業:

    1. 篩選政策方塊中,輸入 AmazonS3CSIDriverPolicy。

      注意

      此政策於上一節建立。

    2. 勾選在搜尋中傳回的 AmazonS3CSIDriverPolicy 結果左側的核取方塊。

    3. 選擇 Next (下一步)

  6. Name, review, and create (命名、檢閱和建立) 頁面上,執行以下作業:

    1. 針對角色名稱,輸入角色的唯一名稱,例如 AmazonEKS_S3_CSI_DriverRole。

    2. 藉由連接標籤做為鍵值對,在新增標籤 (選用) 下將中繼資料新增至角色。如需有關在 IAM 中使用標籤的詳細資訊,請參閱《IAM 使用者指南》中的標記 IAM 資源

    3. 選擇建立角色

  7. 建立角色之後,在主控台中選擇角色,以開啟角色進行編輯。

  8. 選擇 Trust Relationships (信任關係) 標籤,然後選擇 Edit Trust Relationship (編輯信任政策)。

  9. 查找與下列相似的行:

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"

    在上一行的末尾新增一個逗號,然後在上一行之後新增下一行。將 region-code 取代為您叢集所在的 AWS 區域。將 EXAMPLED539D4633E53DE1B71EXAMPLE 取代為叢集的 OIDC 提供者 ID。

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa"
  10. 確定運算Condition子設定為 "StringEquals"

  11. 選擇 Update policy (更新政策) 以完成操作。

AWS CLI

  1. 檢視叢集的 OIDC 提供者 URL。使用您叢集的名稱取代 my-cluster。如果來自命令的輸出是 None,則請檢閱先決條件

    aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text

    範例輸出如下。

    https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
  2. 建立 IAM 角色,將 Kubernetes 服務帳戶授予 AssumeRoleWithWebIdentity 動作。

    1. 將下列內容複製到名為 aws-s3-csi-driver-trust-policy.json 的檔案。使用您的帳戶 ID 取代 111122223333。將 EXAMPLED539D4633E53DE1B71EXAMPLEregion-code 取代為上一個步驟中傳回的值。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws: iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com" } } } ] }
    2. 建立角色。您可以將 AmazonEKS_S3_CSI_DriverRole 變更為不同的名稱,但如果您這麼做,請務必在後續步驟中也進行變更。

      aws iam create-role \ --role-name AmazonEKS_S3_CSI_DriverRole \ --assume-role-policy-document file://"aws-s3-csi-driver-trust-policy.json"
  3. 使用以下命令將先前建立的 IAM 政策連接至角色。

    aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/AmazonS3CSIDriverPolicy \ --role-name AmazonEKS_S3_CSI_DriverRole
    注意

    IAM 政策 AmazonS3CSIDriverPolicy 於上一節建立。

  4. 如果您要將驅動程式安裝為 Amazon EKS 附加元件,請略過此步驟。對於驅動程式的自我管理安裝,請建立 Kubernetes 服務帳戶,這些帳戶會標註您建立之 IAM 角色的 ARN。

    1. 將下列內容儲存到名為 mountpoint-s3-service-account.yaml 的檔案中。使用您的帳戶 ID 取代 111122223333

      --- apiVersion: v1 kind: ServiceAccount metadata: labels: app.kubernetes.io/name: aws-mountpoint-s3-csi-driver name: mountpoint-s3-csi-controller-sa namespace: kube-system annotations: eks.amazonaws.com/role-arn: arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
    2. 在您的叢集上建立 Kubernetes 服務帳戶。Kubernetes 服務帳戶 (mountpoint-s3-csi-controller-sa) 會以您建立的 IAM 角色標註,名為 AmazonEKS_S3_CSI_DriverRole

      kubectl apply -f mountpoint-s3-service-account.yaml
      注意

      當您在此程序中部署外掛程式時,其會建立並設定為使用名為 s3-csi-driver-sa 的服務帳戶。

安裝適用於 Amazon S3 CSI 驅動程式的掛載點

您可以透過 Amazon EKS 附加元件安裝適用於 Amazon S3 CSI 驅動程式的掛載點。您可以使用下列工具將附加元件新增至叢集:

或者,您也可以將 Amazon S3 CSI 驅動程式的掛載點安裝為自我管理安裝。如需執行自我管理安裝的說明,請參閱 GitHub 上的安裝

從 開始v1.8.0,您可以設定 CSI 驅動程式的 Pod 可容忍的污點。若要執行此作業,請指定一組自訂的污點,以搭配 來容忍,node.tolerations或使用 來清理所有污點node.tolerateAllTaints。如需詳細資訊,請參閱 Kubernetes 文件中的 標記和容錯

eksctl

使用 新增 Amazon S3 CSI 附加元件 eksctl

執行下列命令。將 my-cluster 取代為您的叢集名稱、將 111122223333 取代為您的 帳戶 ID,並將 AmazonEKS_S3_CSI_DriverRole 取代為先前建立的 IAM 角色名稱。

eksctl create addon --name aws-mountpoint-s3-csi-driver --cluster my-cluster \ --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole --force

如果您移除 --force 選項,且任何 Amazon EKS 附加元件設定與您現有的設定衝突,則更新 Amazon EKS 附加元件會失敗,而且您會收到錯誤訊息,協助您解決衝突。指定此選項之前,請確定 Amazon EKS 附加元件不會管理您需要管理的設定,因為這些設定會由此選項覆寫。如需有關此設定之其他選項的詳細資訊,請參閱 eksctl 文件中的 Addons (附加元件)。如需 Amazon EKS Kubernetes 欄位管理的詳細資訊,請參閱 決定您可以為 Amazon EKS 附加元件自訂的欄位

您可以透過eksctl組態檔案自訂 。如需詳細資訊,請參閱 eksctl 文件中的使用組態值。下列範例顯示如何容忍所有污點。

# config.yaml ... addons: - name: aws-mountpoint-s3-csi-driver serviceAccountRoleARN: arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole configurationValues: |- node: tolerateAllTaints: true

AWS Management Console

  1. 開啟 Amazon EKS 主控台

  2. 在左側導覽窗格中選擇叢集

  3. 選擇您要設定 Amazon S3 CSI 附加元件掛載點的叢集名稱。

  4. 選擇附加元件索引標籤。

  5. 選擇取得更多附加元件

  6. 選取附加元件頁面上,執行下列動作:

    1. Amazon EKS-addons 區段中,選取 Amazon S3 CSI 驅動程式掛載點核取方塊。

    2. 選擇 Next (下一步)

  7. 設定選取的附加元件設定頁面上,執行以下操作:

    1. 選取您要使用的版本

    2. 針對選取 IAM 角色,選取您連接 Amazon S3 CSI 驅動程式 IAM 政策掛載點的 IAM 角色名稱。

    3. (選用) 展開選用組態設定後,更新衝突解決方法。如果您選取覆寫,則可以使用 Amazon EKS 附加元件設定覆寫現有附加元件的一或多個設定。如果您未啟用此選項,且與現有設定發生衝突,則操作會失敗。您可以使用產生的錯誤訊息對此衝突進行疑難排解。選取此選項之前,請確定 Amazon EKS 附加元件不會管理自我管理所需的設定。

    4. (選用) 展開選用組態設定後,在組態值欄位中設定容錯。

    5. 選擇 Next (下一步)

  8. 檢閱並新增頁面上,選擇建立。附加元件安裝完成後,您會看到已安裝的附加元件。

AWS CLI

使用 CLI 新增 Amazon S3 CSI AWS 附加元件的掛載點

執行下列命令。將 my-cluster 取代為您的叢集名稱、將 111122223333 取代為您的 帳戶 ID,並將 AmazonEKS_S3_CSI_DriverRole 取代為先前建立的角色名稱。

aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \ --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole

您可以使用 --configuration-values旗標自訂 命令。下列替代範例顯示如何容忍所有污點。

aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \ --service-account-role-arn arn:aws: iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole \ --configuration-values '{"node":{"tolerateAllTaints":true}}'

設定 Amazon S3 的掛載點

在大多數情況下,您只能使用儲存貯體名稱來設定 Amazon S3 的掛載點。如需設定 Amazon S3 掛載點的說明,請參閱在 GitHub 上設定 Amazon S3 掛載點

部署範例應用程式

您可以將靜態佈建部署到現有 Amazon S3 儲存貯體上的驅動程式。如需詳細資訊,請參閱 GitHub 上的靜態佈建

移除 Amazon S3 CSI 驅動程式的掛載點

有兩種選項可以用來移除 Amazon EKS 附加元件。

  • Preserve add-on software on your cluster (在叢集上保留附加元件軟體):此選項會移除任何設定的 Amazon EKS 管理。其也會移除 Amazon EKS 通知您更新的功能,並在您啟動更新後自動更新 Amazon EKS 附加元件。不過,該選項會保留您叢集上的附加元件軟體。此選項會使附加元件成為自我管理安裝,而不是 Amazon EKS 附加元件。使用此選項,附加元件不會停機。本程序中的命令使用此選項。

  • Remove add-on software entirely from your cluster (從叢集中完全移除附加元件軟體):只有叢集上沒有資源依賴於附加元件提供的功能時,我們才會建議您將 Amazon EKS 附加元件從叢集中移除。若要執行此選項,請從您在此程序中使用的命令刪除 --preserve

如果附加元件有與其相關聯的 IAM 帳戶,則不會移除 IAM 帳戶。

您可以使用下列工具來移除 Amazon S3 CSI 附加元件:

eksctl

使用 移除 Amazon S3 CSI 附加元件 eksctl

my-cluster 取代為您的叢集名稱,然後執行下列命令。

eksctl delete addon --cluster my-cluster --name aws-mountpoint-s3-csi-driver --preserve

AWS Management Console

  1. 開啟 Amazon EKS 主控台

  2. 在左側導覽窗格中選擇叢集

  3. 選取要移除 Amazon EBS CSI 附加元件的叢集名稱。

  4. 選擇附加元件索引標籤。

  5. 選擇 Amazon S3 CSI 驅動程式的掛載點

  6. 選擇移除

  7. 移除:aws-mountpoint-s3-csi-driver 確認對話方塊中,執行下列動作:

    1. 若希望 Amazon EKS 停止管理附加元件的設定,請選取在叢集上保留。若要在叢集上保留附加元件軟體,請執行此動作。如此一來,您就可以自行管理附加元件的所有設定。

    2. 輸入 aws-mountpoint-s3-csi-driver

    3. 選取 Remove (移除)。

AWS CLI

使用 CLI 移除 Amazon S3 CSI AWS 附加元件

my-cluster 取代為您的叢集名稱,然後執行下列命令。

aws eks delete-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver --preserve
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。