Amazon EBS CSI 遷移常見問答集 - Amazon EKS

協助改善此頁面

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

想要為此使用者指南做出貢獻? 選擇 GitHub 上的編輯此頁面連結,該連結位於每個頁面的右窗格中。您的貢獻將幫助我們的使用者指南更適合每個人。

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

Amazon EBS CSI 遷移常見問答集

重要

如果您在 版本1.22或更早的叢集Pods上執行 ,則必須安裝 Amazon EBS CSI 驅動程式 (請參閱使用 Amazon EBS 存放Kubernetes磁碟區),然後再將叢集更新至版本1.23,以避免服務中斷。

Amazon EBS 容器儲存界面 (CSI) 遷移功能會將處理儲存操作的責任從 Amazon EBS 樹狀 EBS 儲存佈建器移至 Amazon EBS CSI 驅動程式 (請參閱 使用 Amazon EBS 存放Kubernetes磁碟區)。

CSI 驅動程式是什麼?

CSI 驅動程式:

  • 取代存在於Kubernetes專案原始程式碼中的Kubernetes「樹狀內」儲存驅動程式。

  • 使用儲存供應商,例如 Amazon EBS。

  • 提供簡化的外掛程式模型,讓儲存提供者更輕鬆地發行功能和維護支援 AWS ,而不需根據Kubernetes發行週期。

如需詳細資訊,請參閱 Kubernetes CSI 文件中的簡介

什麼是 CSI 遷移?

Kubernetes CSI 遷移功能將處理儲存操作的責任,從現有的樹狀內儲存外掛程式 (例如 kubernetes.io/aws-ebs) 移動至對應的 CSI 驅動程式。只要安裝對應的 CSI 驅動程式,現有的 StorageClassPersistentVolumePersistentVolumeClaim (PVC) 物件會繼續運作。啟用此功能時:

  • 利用 PVC 的現有工作負載會一如既往地運作。

  • Kubernetes 將所有儲存管理操作的控制權傳遞給 CSI 驅動程式。

如需詳細資訊,請參閱Kubernetes部落格上的 Kubernetes1.23:Kubernetes In-Tree to CSI Volume Migration Status Update

為了幫助您從樹狀內外掛程式遷移到 CSI 驅動程式,Amazon EKS 版本 1.23 和更新版本叢集預設啟用 CSIMigrationCSIMigration AWS 標記。這些標記可讓您的叢集將樹狀內 API 轉換為同等 CSI API。這些標記設定在由 Amazon EKS 管理的Kubernetes 控制平面,以及 Amazon EKS 最佳化 AMI 設定的 kubelet 設定。如果您有在叢集中使用 Amazon EBS 磁碟區的 Pods,您必須先安裝 Amazon EBS CSI 驅動程式,然後再將叢集更新為版本 1.23如果不這樣做,佈建和掛載等磁碟區操作可能無法如預期般運作。如需詳細資訊,請參閱使用 Amazon EBS 存放Kubernetes磁碟區

注意

樹狀內 StorageClass 佈建程式名為 kubernetes.io/aws-ebs。Amazon EBS CSI StorageClass 佈建程式名為 ebs.csi.aws.com

我可以將 kubernetes.io/aws-ebs StorageClass 磁碟區掛載於版本 1.23 和更新版本的叢集嗎?

可以,只要 Amazon EBS CSI 驅動程式已安裝。對於新建立的版本 1.23 以及更新版本的叢集,我們建議您安裝 Amazon EBS CSI 驅動程式作為叢集建立程序的一部分。我們也建議只使用根據 ebs.csi.aws.com 佈建程式的 StorageClasses

如果您已將叢集控制平面更新為 版本,1.23且尚未將節點更新為 1.23,則 CSIMigrationCSIMigration AWS kubelet 旗標不會啟用。在這種情況下,樹狀內驅動程式用於掛載基於 kubernetes.io/aws-ebs 的磁碟區。不過,仍必須安裝 Amazon EBS CSI 驅動程式,以確保使用基於 kubernetes.io/aws-ebs 磁碟區的 Pods 可以排程。其他磁碟區操作也需要此驅動程式才能成功。

我可以在 Amazon EKS 1.23 和更新版本的叢集上佈建 kubernetes.io/aws-ebs StorageClass 磁碟區嗎?

可以,只要 Amazon EBS CSI 驅動程式已安裝。

kubernetes.io/aws-ebs StorageClass 佈建程式有可能從 Amazon EKS 移除嗎?

kubernetes.io/aws-ebs StorageClass 佈建程式和 awsElasticBlockStore 磁碟區類型已不再受支援,但目前尚未計劃移除這些佈建程式和磁碟區類型。這些資源會被視為 Kubernetes API 的一部分。

如何安裝 Amazon EBS CSI 驅動程式?

我們建議安裝 Amazon EBS CSI 驅動程式 Amazon EKS 附加元件。當需要更新 Amazon EKS 附加元件時,您啟動更新後,Amazon EKS 會為您更新附加元件。如果您想自行管理驅動程式,則可以使用開放原始碼 Helm chart 進行安裝。

重要

Kubernetes 樹狀內 Amazon EBS 驅動程式於 Kubernetes 控制平面上執行。它使用指派給 Amazon EKS 叢集 IAM 角色的 IAM 許可來佈建 Amazon EBS 磁碟區。Amazon EBS CSI 驅動程式在節點上執行。驅動程式需要 IAM 許可才能佈建磁碟區。如需詳細資訊,請參閱步驟 1:建立 IAM 角色

如何檢查我的叢集中是否已安裝 Amazon EBS CSI 驅動程式?

若要判斷驅動程式是否安裝在您的叢集上,請執行下列命令:

kubectl get csidriver ebs.csi.aws.com

若要檢查該安裝是否由 Amazon EKS 管理,請執行下列命令:

aws eks list-addons --cluster-name my-cluster

1.23 如果我尚未安裝 Amazon EBS CSI 驅動程式,Amazon EKS 是否會阻止叢集更新至版本?

否.

如果我在將叢集更新為 1.23 版之前忘記安裝 Amazon EBS CSI 驅動程式,該怎麼辦? 我可以在更新叢集後安裝驅動程式嗎?

可以,但是叢集更新後,要求 Amazon EBS CSI 驅動程式的磁碟區操作將會失敗,直到安裝驅動程式為止。

什麼是套用於新建立的 Amazon EKS 版本 1.23 和更新版本叢集的預設 StorageClass

預設的 StorageClass 行為會保持不變。對於每個新叢集,Amazon EKS 都會套用基於 kubernetes.io/aws-ebsStorageClass,名為 gp2。我們不打算StorageClass從新建立的叢集中移除此項目。這和叢集預設 StorageClass 是分開的,如果您在不指定磁碟區類型的情況下,建立以 ebs.csi.aws.com 為基礎的 StorageClass,Amazon EBS CSI 驅動程式將預設使用 gp3

當我將叢集更新為版本 1.23 時,Amazon EKS 是否會對已存在於現有叢集中的 StorageClasses 進行任何變更?

否。

如何使用快照將持久性磁碟區從 kubernetes.io/aws-ebsStorageClass 遷移至 ebs.csi.aws.com

若要遷移持久性磁碟區,請參閱 AWS 部落格上的將 Amazon EKS 叢集從 gp2 遷移至 gp3 EBS 磁碟區

如何使用註釋修改 Amazon EBS 磁碟區?

aws-ebs-csi-driver 開始v1.19.0-eksbuild.2,您可以使用每個 PersistentVolumeClaim(PVC) 內的註釋來修改 Amazon EBS 磁碟區。新的磁碟區修改功能會實作為附屬,稱為 volumemodifier。如需詳細資訊,請參閱 AWS 部落格上的使用 EBS CSI 驅動程式在 Kubernetes 上簡化 Amazon EBS 磁碟區遷移和修改

Windows 工作負載是否支援遷移?

是。如果您要使用開放原始碼 Helm Chart 安裝 Amazon EBS CSI 驅動程式,請將 node.enableWindows設定為 true。依預設,如果將 Amazon EBS CSI 驅動程式安裝為 Amazon EKS 附加元件。建立 StorageClasses 時,設定 fsType 至 Windows 檔案系統,例如 ntfs。接下來,Windows 工作負載的磁碟區操作會遷移至 Amazon EBS CSI 驅動程式,與 Linux 工作負載相同。