協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格中的 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立儲存體方案
Amazon EKS Auto Mode StorageClass
中的 定義了應用程式請求持久性儲存時,如何自動佈建 Amazon EBS 磁碟區。此頁面說明如何建立和設定 StorageClass
,以使用 Amazon EKS Auto 模式佈建 EBS 磁碟區。
透過設定 StorageClass
,您可以指定 EBS 磁碟區的預設設定,包括磁碟區類型、加密、IOPS 和其他儲存參數。您也可以StorageClass
將 設定為使用 AWS KMS 金鑰進行加密管理。
EKS Auto Mode 不會StorageClass
為您建立 。您必須建立StorageClass
參考ebs.csi.eks.amazonaws.com
,才能使用 EKS Auto Mode 的儲存功能。
首先,建立名為 的檔案storage-class.yaml
:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: auto-ebs-sc annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: ebs.csi.eks.amazonaws.com volumeBindingMode: WaitForFirstConsumer parameters: type: gp3 encrypted: "true"
其次,將儲存類別套用至您的叢集。
kubectl apply -f storage-class.yaml
關鍵元件:
-
provisioner: ebs.csi.eks.amazonaws.com
- 使用 EKS Auto 模式 -
volumeBindingMode: WaitForFirstConsumer
- 延遲磁碟區建立,直到 Pod 需要它 -
type: gp3
- 指定 EBS 磁碟區類型 -
encrypted: "true"
- EBS 會加密使用 建立的任何磁碟區StorageClass
。EBS 將使用預設aws/ebs
金鑰別名。如需詳細資訊,請參閱《Amazon EBS 使用者指南》中的 Amazon EBS 加密如何運作。此值是選用的,但建議使用。 -
storageclass.kubernetes.io/is-default-class: "true"
- Kubernetes 預設會使用此儲存體類別,除非您在持久性磁碟區宣告中指定不同的磁碟區類別。此值是選用的。如果您要從不同的儲存控制器遷移,請謹慎設定此值。
使用自我管理的 KMS 金鑰來加密 EBS 磁碟區
若要使用自我管理的 KMS 金鑰來加密 EKS Auto Mode 自動化的 EBS 磁碟區,您需要:
-
建立自我管理的 KMS 金鑰。
-
如需詳細資訊,請參閱《KMS 使用者指南》中的建立對稱加密 KMS 金鑰或 Amazon Elastic Block Store (Amazon EBS) 如何使用 KMS。
-
-
建立新的政策,以允許存取 KMS 金鑰。
-
使用以下範例 IAM 政策來建立政策。插入新自我管理 KMS 金鑰的 ARN。如需詳細資訊,請參閱《IAM 使用者指南》中的建立角色和連接政策 (主控台)。 AWS
-
-
將政策連接至 EKS 叢集角色。
-
使用 AWS 主控台尋找 EKS 叢集角色的 ARN。角色資訊會顯示在概觀區段中。如需詳細資訊,請參閱Amazon EKS 叢集 IAM 角色。
-
-
更新
StorageClass
以參考parameters.kmsKeyId
欄位中的 KMS 金鑰 ID。
自我管理 KMS IAM 政策範例
在下列政策中更新下列值:
-
<account-id>
– AWS 您的帳戶 ID,例如111122223333
-
<aws-region>
– 叢集 AWS 的區域,例如us-west-2
{ "Version": "2012-10-17", "Id": "key-auto-policy-3", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<account-id>:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "<account-id>", "kms:ViaService": "ec2.<aws-region>.amazonaws.com" } } } ] }
自我管理 KMS 範例 StorageClass
parameters: type: gp3 encrypted: "true" kmsKeyId: <custom-key-arn>
StorageClass
參數參考
如需 Kubernetes StorageClass
資源的一般資訊,請參閱 Kubernetes 文件中的儲存類別
StorageClass
資源的 THe parameters
區段是特定的 AWS。使用下表來檢閱可用的選項。
參數 | 值 | 預設 | 描述 |
---|---|---|---|
"https://csi.storage.k8s.io/fstype" |
xfs、ext2、ext3、ext4 |
ext4 |
磁碟區建立期間將格式化的檔案系統類型。此參數區分大小寫! |
「類型」 |
io1、io2、gp2、gp3、sc1、st1、Standard、sbp1、sbg1 |
gp3 |
EBS 磁碟區類型。 |
"iopsPerGB" |
每秒每個 GiB 的 I/O 操作。可以為 IO1, IO2和 GP3 磁碟區指定 。 |
||
「allowAutoIOPSPerGBIncrease」 |
true、false |
false |
當 時 |
"iops" |
每秒的 I/O 操作。可以為 IO1, IO2和 GP3 磁碟區指定 。 |
||
「輸送量」 |
125 |
MiB/s 中的輸送量。只有在指定 gp3 磁碟區類型時才有效。 |
|
「加密」 |
true、false |
false |
是否應該加密磁碟區。有效值為「true」或「false」。 |
"blockExpress" |
true、false |
false |
啟用建立 io2 Block Express 磁碟區。 |
"kmsKeyId" |
加密磁碟區時要使用之金鑰的完整 ARN。如果未指定, AWS 將針對磁碟區所在的區域使用預設 KMS 金鑰。如果未變更 |
||
"blockSize" |
格式化基礎檔案系統時要使用的區塊大小。僅 linux 節點支援 ,且具有 fstype |
||
「inodeSize」 |
格式化基礎檔案系統時要使用的索引子大小。僅 linux 節點支援 ,且具有 fstype |
||
"bytesPerInode" |
格式化基礎檔案系統 |
||
"numberOfInodes" |
格式化基礎檔案系統 |
||
"ext4BigAlloc" |
true、false |
false |
透過啟用 |
"ext4ClusterSize" |
啟用 |
如需詳細資訊,請參閱 GitHub 上的 AWS EBS CSI 驅動程式
考量事項
EKS Auto Mode 的區塊儲存功能與 EBS CSI 驅動程式不同。
-
靜態佈建
-
如果您想要搭配 EKS Auto 模式使用外部建立的 EBS 磁碟區,您需要手動新增具有 金鑰
eks:eks-cluster-name
和叢集名稱值的 AWS 標籤。
-
-
節點啟動提示
-
您無法使用節點啟動污點功能,以防止儲存功能就緒前進行 Pod 排程
-
-
動態佈建磁碟區上的自訂標籤
-
您不能使用額外標籤 CLI 旗標,在動態佈建的 EBS 磁碟區上設定自訂標籤
-
您可以使用
StorageClass
標記來新增自訂標籤。EKS Auto Mode 會將標籤新增至相關聯的 AWS 資源。您需要更新自訂標籤的叢集 IAM 角色。如需詳細資訊,請參閱EKS Auto 資源的自訂 AWS 標籤。
-
-
EBS 詳細效能指標
-
您無法存取 EBS 詳細效能的 Prometheus 指標
-
安裝 CSI 快照控制器附加元件
EKS Auto 模式與 CSI 快照控制器 Amazon EKS 附加元件相容。
AWS 建議您將此附加元件設定為在內建system
節點集區上執行。
如需詳細資訊,請參閱:
在系統節點集區中安裝快照控制器
-
在 AWS 主控台中開啟您的 EKS 叢集
-
從附加元件索引標籤中,選取取得更多附加元件
-
選取 CSI 快照控制器,然後選取下一步
-
在設定選取的附加元件設定頁面上,選取選用組態設定以檢視附加元件組態結構描述
-
插入下列 yaml,將快照控制器與
system
節點集區建立關聯。快照控制器包含CriticalAddonsOnly
污點的容錯。{ "nodeSelector": { "karpenter.sh/nodepool": "system" } }
-
選取下一步
-
-
檢閱附加元件組態,然後選取建立