Bantu tingkatkan halaman ini
Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyimpan Kubernetes volume dengan Amazon EBS
Driver Amazon Elastic Block Store (AmazonEBS) Container Storage Interface (CSI) mengelola siklus hidup EBS volume Amazon sebagai penyimpanan untuk Kubernetes Volume yang Anda buat. EBSCSIDriver Amazon membuat EBS volume Amazon untuk jenis ini Kubernetes volume: volume fana generik dan volume persisten.
Pertimbangan
-
Anda tidak dapat memasang EBS volume Amazon ke Fargate Pods.
-
Anda dapat menjalankan EBS CSI pengontrol Amazon di node Fargate, tetapi node Amazon EBS CSI DaemonSet hanya dapat berjalan di EC2 instans Amazon.
Support akan disediakan untuk versi add-on terbaru dan satu versi sebelumnya. Bug atau kerentanan yang ditemukan di versi terbaru akan di-backport ke rilis sebelumnya dalam versi minor baru.
Prasyarat
-
Sebuah klaster yang sudah ada. Untuk melihat versi platform yang diperlukan, jalankan perintah berikut.
aws eks describe-addon-versions --addon-name aws-ebs-csi-driver
-
Yang ada AWS Identity and Access Management (IAM) OpenID Connect (OIDC) penyedia untuk cluster Anda. Untuk menentukan apakah Anda sudah memiliki satu, atau harus membuat satu, lihat Buat sebuah IAM OIDC penyedia untuk klaster Anda.
-
Jika Anda menggunakan kluster yang dibatasi secara luas PodSecurityPolicy, pastikan add-on diberikan izin yang cukup untuk diterapkan. Untuk izin yang diperlukan oleh setiap add-on Pod, lihat definisi manifes add-on yang relevan di GitHub.
Langkah 1: Buat IAM peran
EBSCSIPlugin Amazon memerlukan IAM izin untuk melakukan panggilan atas nama Anda. AWS APIs Jika Anda tidak melakukan langkah-langkah ini, mencoba menginstal add-on dan menjalankan kubectl describe pvc
akan muncul failed to provision volume with
StorageClass
bersama dengan could not create volume in EC2:
UnauthorizedOperation
kesalahan. Untuk informasi selengkapnya, lihat Mengatur izin pengemudi di GitHub.
Prosedur berikut menunjukkan kepada Anda cara membuat IAM peran dan melampirkan kebijakan AWS
terkelola padanya. Anda dapat menggunakaneksctl
, AWS Management Console, atau AWS CLI.
Langkah-langkah spesifik dalam prosedur ini ditulis untuk menggunakan driver sebagai EKS add-on Amazon. Langkah-langkah yang berbeda diperlukan untuk menggunakan driver sebagai add-on yang dikelola sendiri. Untuk informasi selengkapnya, lihat Mengatur izin driver di GitHub.
- eksctl
-
Untuk membuat IAM peran EBS CSI plugin Amazon Anda dengan eksctl
-
Buat IAM peran dan lampirkan kebijakan. AWS mempertahankan kebijakan AWS
terkelola atau Anda dapat membuat kebijakan kustom Anda sendiri. Anda dapat membuat IAM peran dan melampirkan kebijakan AWS terkelola dengan perintah berikut. Ganti gugus saya
dengan nama cluster Anda. Perintah menerapkan AWS CloudFormation tumpukan yang membuat IAM peran dan melampirkan IAM kebijakan padanya. Jika cluster Anda berada di
AWS GovCloud (AS-Timur) atau AWS GovCloud (AS-Barat) Wilayah AWS, maka ganti arn:aws:
dengan. arn:aws-us-gov:
eksctl create iamserviceaccount \
--name ebs-csi-controller-sa \
--namespace kube-system \
--cluster my-cluster
\
--role-name AmazonEKS_EBS_CSI_DriverRole
\
--role-only \
--attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
--approve
-
Jika Anda menggunakan KMSkunci khusus untuk enkripsi pada EBS volume Amazon Anda, sesuaikan IAM peran sesuai kebutuhan. Sebagai contoh, lakukan hal berikut:
-
Salin dan tempel kode berikut ke kms-key-for-encryption-on-ebs
.json
file baru. Ganti custom-key-arn
dengan KMStombol kustomARN.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": ["custom-key-arn
"],
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": ["custom-key-arn
"]
}
]
}
-
Buat kebijakan. Anda dapat mengubah KMS_Key_For_Encryption_On_EBS_Policy
ke nama yang berbeda. Namun, jika Anda melakukannya, pastikan untuk mengubahnya di langkah selanjutnya juga.
aws iam create-policy \
--policy-name KMS_Key_For_Encryption_On_EBS_Policy
\
--policy-document file://kms-key-for-encryption-on-ebs
.json
-
Lampirkan IAM kebijakan ke peran dengan perintah berikut. Ganti 111122223333
dengan ID akun Anda. Jika cluster Anda berada di
AWS GovCloud (AS-Timur) atau AWS GovCloud (AS-Barat) Wilayah AWS, maka ganti arn:aws:
dengan. arn:aws-us-gov:
aws iam attach-role-policy \
--policy-arn arn:aws:iam::111122223333
:policy/KMS_Key_For_Encryption_On_EBS_Policy
\
--role-name AmazonEKS_EBS_CSI_DriverRole
- AWS Management Console
-
Untuk membuat IAM peran EBS CSI plugin Amazon Anda dengan AWS Management Console
Buka IAM konsol di https://console.aws.amazon.com/iam/.
-
Di panel navigasi sebelah kiri, pilih Peran.
-
Pada halaman Peran, pilih Buat peran.
-
Pada halaman Pilih entitas tepercaya, lakukan hal berikut:
Di bagian Jenis entitas tepercaya, pilih Identitas web.
-
Untuk penyedia Identitas, pilih OpenID Connect penyedia URL untuk klaster Anda (seperti yang ditunjukkan di bawah Ikhtisar di AmazonEKS).
-
Untuk Audiens, pilih sts.amazonaws.com
.
Pilih Berikutnya.
-
Pada halaman Tambahkan izin, lakukan hal berikut:
-
Di dalam kotak Filter kebijakan, masukkan AmazonEBSCSIDriverPolicy
.
-
Pilih kotak centang di sebelah kiri yang AmazonEBSCSIDriverPolicy
dikembalikan dalam pencarian.
Pilih Berikutnya.
-
Pada halaman Nama, tinjau, dan buat, lakukan hal berikut:
-
Untuk nama Peran, masukkan nama unik untuk peran Anda, sepertiAmazonEKS_EBS_CSI_DriverRole
.
Di bawah Tambahkan tag (Opsional), tambahkan metadata ke peran dengan melampirkan tag sebagai pasangan nilai kunci. Untuk informasi selengkapnya tentang penggunaan tag diIAM, lihat Menandai IAM sumber daya di Panduan IAM Pengguna.
-
Pilih Buat peran.
Setelah peran dibuat, pilih peran di konsol untuk dibuka, dan kemudian diedit.
Pilih tab Trust relationship, lalu pilih Edit trust policy.
-
Temukan garis yang terlihat mirip dengan baris berikut:
"oidc.eks.region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
:aud": "sts.amazonaws.com"
Tambahkan koma ke akhir baris sebelumnya, lalu tambahkan baris berikut setelah baris sebelumnya. Ganti region-code
dengan tempat Wilayah AWS cluster Anda berada. Ganti EXAMPLED539D4633E53DE1B71EXAMPLE
dengan ID OIDC penyedia klaster Anda.
"oidc.eks.region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa"
Pilih Perbarui kebijakan untuk menyelesaikan.
-
Jika Anda menggunakan KMSkunci khusus untuk enkripsi pada EBS volume Amazon Anda, sesuaikan IAM peran sesuai kebutuhan. Sebagai contoh, lakukan hal berikut:
-
Di panel navigasi di sebelah kiri, pilih Kebijakan.
-
Pada halaman Kebijakan, pilih Buat Kebijakan.
-
Pada halaman Buat kebijakan, pilih JSONtab.
-
Salin dan tempel kode berikut ke editor, ganti custom-key-arn
dengan KMSkunci khususARN.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": ["custom-key-arn
"],
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": ["custom-key-arn
"]
}
]
}
-
Pilih Berikutnya: Tag
-
Pada halaman Tambahkan tag (Opsional), pilih Berikutnya: Ulasan.
-
Untuk Nama, masukkan nama unik untuk kebijakan Anda (misalnya,KMS_Key_For_Encryption_On_EBS_Policy
).
-
Pilih Buat kebijakan.
-
Di panel navigasi sebelah kiri, pilih Peran.
-
Pilih AmazonEKS_EBS_CSI_DriverRole
di konsol untuk membukanya untuk diedit.
-
Dari daftar tarik-turun Tambahkan izin, pilih Lampirkan kebijakan.
-
Di dalam kotak Filter kebijakan, masukkan KMS_Key_For_Encryption_On_EBS_Policy
.
-
Pilih kotak centang di sebelah kiri KMS_Key_For_Encryption_On_EBS_Policy
yang dikembalikan dalam pencarian.
-
Pilih Lampirkan kebijakan.
- AWS CLI
-
Untuk membuat IAM peran EBS CSI plugin Amazon Anda dengan AWS CLI
-
Lihat OIDC penyedia klaster AndaURL. Ganti my-cluster
dengan nama klaster Anda. Jika output dari perintah adalah None
, tinjau Prasyarat.
aws eks describe-cluster --name my-cluster
--query "cluster.identity.oidc.issuer" --output text
Contoh output adalah sebagai berikut.
https://oidc.eks.region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
-
Buat IAM peran, berikan AssumeRoleWithWebIdentity
tindakan.
-
Salin konten berikut ke file yang diberi namaaws-ebs-csi-driver-trust-policy
.json
. Ganti 111122223333
dengan ID akun Anda. Ganti EXAMPLED539D4633E53DE1B71EXAMPLE
dan region-code
dengan nilai yang dikembalikan pada langkah sebelumnya. Jika cluster Anda berada di
AWS GovCloud (AS-Timur) atau AWS GovCloud (AS-Barat) Wilayah AWS, maka ganti arn:aws:
dengan. arn:aws-us-gov:
{
"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
:aud": "sts.amazonaws.com",
"oidc.eks.region-code
.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
:sub": "system:serviceaccount:kube-system:ebs-csi-controller-sa"
}
}
}
]
}
-
Buat peran. Anda dapat mengubah AmazonEKS_EBS_CSI_DriverRole
ke nama yang berbeda. Jika Anda mengubahnya, pastikan untuk mengubahnya di langkah selanjutnya.
aws iam create-role \
--role-name AmazonEKS_EBS_CSI_DriverRole
\
--assume-role-policy-document file://"aws-ebs-csi-driver-trust-policy
.json"
-
Lampirkan kebijakan. AWS mempertahankan kebijakan AWS terkelola atau Anda dapat membuat kebijakan kustom Anda sendiri. Lampirkan kebijakan AWS terkelola ke peran dengan perintah berikut. Jika cluster Anda berada di
AWS GovCloud (AS-Timur) atau AWS GovCloud (AS-Barat) Wilayah AWS, maka ganti arn:aws:
dengan. arn:aws-us-gov:
aws iam attach-role-policy \
--policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \
--role-name AmazonEKS_EBS_CSI_DriverRole
-
Jika Anda menggunakan KMSkunci khusus untuk enkripsi pada EBS volume Amazon Anda, sesuaikan IAM peran sesuai kebutuhan. Sebagai contoh, lakukan hal berikut:
-
Salin dan tempel kode berikut ke kms-key-for-encryption-on-ebs
.json
file baru. Ganti custom-key-arn
dengan KMStombol kustomARN.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": ["custom-key-arn
"],
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": ["custom-key-arn
"]
}
]
}
-
Buat kebijakan. Anda dapat mengubah KMS_Key_For_Encryption_On_EBS_Policy
ke nama yang berbeda. Namun, jika Anda melakukannya, pastikan untuk mengubahnya di langkah selanjutnya juga.
aws iam create-policy \
--policy-name KMS_Key_For_Encryption_On_EBS_Policy
\
--policy-document file://kms-key-for-encryption-on-ebs
.json
-
Lampirkan IAM kebijakan ke peran dengan perintah berikut. Ganti 111122223333
dengan ID akun Anda. Jika cluster Anda berada di
AWS GovCloud (AS-Timur) atau AWS GovCloud (AS-Barat) Wilayah AWS, maka ganti arn:aws:
dengan. arn:aws-us-gov:
aws iam attach-role-policy \
--policy-arn arn:aws:iam::111122223333
:policy/KMS_Key_For_Encryption_On_EBS_Policy
\
--role-name AmazonEKS_EBS_CSI_DriverRole
Sekarang setelah Anda membuat IAM peran EBS CSI driver Amazon, Anda dapat melanjutkan ke bagian berikutnya. Saat Anda menerapkan add-on dengan IAM peran ini, itu akan dibuat dan dikonfigurasi untuk menggunakan akun layanan yang diberi nama. ebs-csi-controller-sa
Akun layanan terikat pada Kubernetes clusterrole
yang ditugaskan yang diperlukan Kubernetes izin.
Langkah 2: Dapatkan EBS CSI driver Amazon
Kami menyarankan Anda menginstal EBS CSI driver Amazon melalui EKS add-on Amazon untuk meningkatkan keamanan dan mengurangi jumlah pekerjaan. Untuk menambahkan EKS add-on Amazon ke cluster Anda, lihatMembuat EKS add-on Amazon. Untuk informasi selengkapnya tentang add-on, lihatEKSPengaya Amazon.
Atau, jika Anda menginginkan penginstalan EBS CSI driver Amazon yang dikelola sendiri, lihat Instalasi di GitHub.
Langkah 3: Menyebarkan aplikasi sampel
Anda dapat menerapkan berbagai contoh aplikasi dan memodifikasinya sesuai kebutuhan. Untuk informasi selengkapnya, silakan lihat Kubernetes Contoh pada GitHub.