協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格中的 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" } }
-
選取下一步
-
-
檢閱附加元件組態,然後選取建立