Driver CSI Amazon FSx for Lustre - Amazon EKS

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.

Driver CSI Amazon FSx for Lustre

Driver FSx for Lustre Container Storage Interface (CSI) menyediakan antarmuka CSI yang memungkinkan kluster Amazon EKS mengelola siklus hidup sistem file FSx for Lustre. Untuk informasi selengkapnya, lihat Panduan Pengguna FSx for Lustre.

Topik ini menunjukkan cara menerapkan driver FSx for Lustre CSI ke cluster Amazon EKS Anda dan memverifikasi bahwa itu berfungsi. Kami merekomendasikan menggunakan versi driver terbaru. Untuk versi yang tersedia, lihat Matriks Kompatibilitas Spesifikasi CSI pada GitHub.

catatan

Pengemudi tidak didukung di Fargate.

Untuk deskripsi rinci tentang parameter yang tersedia dan contoh lengkap yang mendemonstrasikan fitur driver, lihat proyek driver FSx for Lustre Container Storage Interface (CSI) di. GitHub

Prasyarat

Anda harus memiliki:

  • Versi 2.12.3 atau yang lebih baru atau versi 1.27.160 atau yang lebih baru dari AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi pada perangkat Anda atau AWS CloudShell. Untuk memeriksa versi Anda saat ini, gunakanaws --version | cut -d / -f2 | cut -d ' ' -f1. Package manager seperti yumapt-get,, atau Homebrew untuk macOS sering beberapa versi di belakang versi terbaru dari file AWS CLI. Untuk menginstal versi terbaru, lihat Menginstal, memperbarui, dan menghapus konfigurasi AWS CLI dan Cepat dengan aws configure di Panduan AWS Command Line Interface Pengguna. AWS CLI Versi yang diinstal AWS CloudShell mungkin juga beberapa versi di belakang versi terbaru. Untuk memperbaruinya, lihat Menginstal AWS CLI ke direktori home Anda di Panduan AWS CloudShell Pengguna.

  • Versi 0.183.0 atau yang lebih baru dari alat baris eksctl perintah yang diinstal pada perangkat Anda atau AWS CloudShell. Untuk menginstal atau memperbaruieksctl, lihat Instalasi dalam eksctl dokumentasi.

  • Alat baris kubectl perintah diinstal pada perangkat Anda atau AWS CloudShell. Versi dapat sama dengan atau hingga satu versi minor lebih awal atau lebih lambat dari Kubernetes versi cluster Anda. Misalnya, jika versi cluster Anda1.29, Anda dapat menggunakan kubectl versi1.28,1.29, atau 1.30 dengan itu. Untuk menginstal atau memutakhirkan kubectl, lihat Menginstal atau memperbarui kubectl.

Prosedur berikut membantu Anda membuat cluster pengujian sederhana dengan driver FSx for Lustre CSI sehingga Anda dapat melihat cara kerjanya. Kami tidak menyarankan menggunakan cluster pengujian untuk beban kerja produksi. Untuk tutorial ini, kami sarankan menggunakanexample values, kecuali jika dicatat untuk menggantikannya. Anda dapat mengganti apa pun example value saat menyelesaikan langkah-langkah untuk klaster produksi Anda. Kami merekomendasikan untuk menyelesaikan semua langkah di terminal yang sama karena variabel diatur dan digunakan di seluruh langkah dan tidak akan ada di terminal yang berbeda.

Untuk menyebarkan driver FSx for Lustre CSI ke cluster Amazon EKS
  1. Tetapkan beberapa variabel untuk digunakan dalam langkah-langkah yang tersisa. Ganti my-csi-fsx-cluster dengan nama cluster pengujian yang ingin Anda buat dan region-code dengan Wilayah AWS yang Anda inginkan untuk membuat cluster pengujian Anda.

    export cluster_name=my-csi-fsx-cluster export region_code=region-code
  2. Buat cluster uji.

    eksctl create cluster \ --name $cluster_name \ --region $region_code \ --with-oidc \ --ssh-access \ --ssh-public-key my-key

    Penyediaan klaster memerlukan waktu beberapa menit. Selama pembuatan klaster, Anda akan melihat beberapa baris output. Baris terakhir output mirip dengan baris contoh berikut.

    [✓]  EKS cluster "my-csi-fsx-cluster" in "region-code" region is ready
  3. Buat akun Kubernetes layanan untuk driver dan lampirkan kebijakan AmazonFSxFullAccess AWS-managed ke akun layanan 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:

    eksctl create iamserviceaccount \ --name fsx-csi-controller-sa \ --namespace kube-system \ --cluster $cluster_name \ --attach-policy-arn arn:aws:iam::aws:policy/AmazonFSxFullAccess \ --approve \ --role-name AmazonEKSFSxLustreCSIDriverFullAccess \ --region $region_code

    Anda akan melihat beberapa baris output saat akun layanan dibuat. Baris output terakhir mirip dengan yang berikut ini.

    [ℹ]  1 task: { 
        2 sequential sub-tasks: { 
            create IAM role for serviceaccount "kube-system/fsx-csi-controller-sa",
            create serviceaccount "kube-system/fsx-csi-controller-sa",
        } }
    [ℹ]  building iamserviceaccount stack "eksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa"
    [ℹ]  deploying stack "eksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa"
    [ℹ]  waiting for CloudFormation stack "eksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa"
    [ℹ]  created serviceaccount "kube-system/fsx-csi-controller-sa"

    Perhatikan nama AWS CloudFormation tumpukan yang digunakan. Dalam contoh output sebelumnya, tumpukan diberi namaeksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa.

  4. Deploy driver dengan perintah berikut. Ganti release-X.XX dengan cabang yang Anda inginkan. Cabang master tidak didukung karena mungkin berisi fitur mendatang yang tidak kompatibel dengan versi stabil driver yang saat ini dirilis. Kami merekomendasikan menggunakan versi terbaru yang dirilis. Untuk daftar cabang aktif, lihat aws-fsx-csi-driverdi GitHub.

    catatan

    Anda dapat melihat konten yang diterapkan aws-fsx-csi-driverdiGitHub.

    kubectl apply -k "github.com/kubernetes-sigs/aws-fsx-csi-driver/deploy/kubernetes/overlays/stable/?ref=release-X.XX"

    Contoh output adalah sebagai berikut.

    serviceaccount/fsx-csi-controller-sa created
    serviceaccount/fsx-csi-node-sa created
    clusterrole.rbac.authorization.k8s.io/fsx-csi-external-provisioner-role created
    clusterrole.rbac.authorization.k8s.io/fsx-external-resizer-role created
    clusterrolebinding.rbac.authorization.k8s.io/fsx-csi-external-provisioner-binding created
    clusterrolebinding.rbac.authorization.k8s.io/fsx-csi-resizer-binding created
    deployment.apps/fsx-csi-controller created
    daemonset.apps/fsx-csi-node created
    csidriver.storage.k8s.io/fsx.csi.aws.com created
  5. Perhatikan ARN untuk peran yang dibuat. Jika Anda tidak mencatatnya sebelumnya dan tidak memilikinya tersedia lagi di AWS CLI output, Anda dapat melakukan hal berikut untuk melihatnya di AWS Management Console.

    1. Buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation.

    2. Pastikan konsol diatur ke peran IAM Wilayah AWS yang Anda buat, lalu pilih Tumpukan.

    3. Pilih tumpukan bernama eksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa.

    4. Pilih tab Outputs. Role1 ARN tercantum di halaman Output (1).

  6. Patch penyebaran driver untuk menambahkan akun layanan yang Anda buat sebelumnya dengan perintah berikut. Ganti ARN dengan ARN yang Anda catat. 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:

    kubectl annotate serviceaccount -n kube-system fsx-csi-controller-sa \ eks.amazonaws.com/role-arn=arn:aws:iam::111122223333:role/AmazonEKSFSxLustreCSIDriverFullAccess --overwrite=true

    Contoh output adalah sebagai berikut.

    serviceaccount/fsx-csi-controller-sa annotated
Untuk menerapkan kelas Kubernetes penyimpanan, klaim volume persisten, dan aplikasi sampel untuk memverifikasi bahwa driver CSI berfungsi

Prosedur ini menggunakan repositori driver FSx for Lustre Container Storage Interface (CSIGitHub) untuk menggunakan FSx for Lustre volume yang disediakan secara dinamis.

  1. Perhatikan grup keamanan untuk klaster Anda. Anda dapat melihatnya di bagian AWS Management Console bawah Jaringan atau dengan menggunakan AWS CLI perintah berikut.

    aws eks describe-cluster --name $cluster_name --query cluster.resourcesVpcConfig.clusterSecurityGroupId
  2. Buat grup keamanan untuk sistem file Amazon FSx Anda sesuai dengan kriteria yang ditampilkan di Grup Keamanan VPC Amazon di Panduan Pengguna Amazon FSx for Lustre. Untuk VPC, pilih VPC cluster Anda seperti yang ditunjukkan di bawah bagian Networking. Untuk “grup keamanan yang terkait dengan klien Lustre Anda”, gunakan grup keamanan klaster Anda. Anda dapat meninggalkan aturan keluar sendiri untuk memungkinkan Semua lalu lintas.

  3. Unduh manifes kelas penyimpanan dengan perintah berikut.

    curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/storageclass.yaml
  4. Edit bagian parameter storageclass.yaml file. Ganti setiap example value dengan nilai-nilai Anda sendiri.

    parameters: subnetId: subnet-0eabfaa81fb22bcaf securityGroupIds: sg-068000ccf82dfba88 deploymentType: PERSISTENT_1 automaticBackupRetentionDays: "1" dailyAutomaticBackupStartTime: "00:00" copyTagsToBackups: "true" perUnitStorageThroughput: "200" dataCompressionType: "NONE" weeklyMaintenanceStartTime: "7:09:00" fileSystemTypeVersion: "2.12"
    • subnetId— ID subnet tempat sistem file Amazon FSx for Lustre harus dibuat. Amazon FSx for Lustre tidak didukung di semua Availability Zone. Buka konsol Amazon FSx for Lustre di https://console.aws.amazon.com/fsx/ untuk mengonfirmasi bahwa subnet yang ingin Anda gunakan adalah di Availability Zone yang didukung. Subnet dapat menyertakan node Anda, atau dapat berupa subnet atau VPC yang berbeda:

      • Anda dapat memeriksa subnet node di AWS Management Console dengan memilih grup node di bawah bagian Compute.

      • Jika subnet yang Anda tentukan bukan subnet yang sama dengan yang Anda miliki node, maka VPC Anda harus terhubung, dan Anda harus memastikan bahwa Anda memiliki port yang diperlukan terbuka di grup keamanan Anda.

    • securityGroupIds— ID grup keamanan yang Anda buat untuk sistem file.

    • deploymentType(opsional) — Jenis penyebaran sistem file. Nilai yang valid adalah SCRATCH_1, SCRATCH_2, PERSISTENT_1, dan PERSISTENT_2. Untuk informasi selengkapnya tentang jenis deployment, lihat Buat sistem file Amazon FSx for Lustre.

    • parameter lain (opsional) — Untuk informasi tentang parameter lainnya, lihat StorageClassMengeditGitHub.

  5. Buat manifes kelas penyimpanan.

    kubectl apply -f storageclass.yaml

    Contoh output adalah sebagai berikut.

    storageclass.storage.k8s.io/fsx-sc created
  6. Unduh manifes klaim volume persisten.

    curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/claim.yaml
  7. (Opsional) Edit file claim.yaml. Ubah 1200Gi ke salah satu nilai kenaikan berikut, berdasarkan kebutuhan penyimpanan Anda dan deploymentType yang Anda pilih pada langkah sebelumnya.

    storage: 1200Gi
    • SCRATCH_2dan PERSISTENT1.2 TiB,2.4 TiB, atau kenaikan 2,4 TiB lebih dari 2,4 TiB.

    • SCRATCH_11.2 TiB,, 2.4 TiB3.6 TiB, atau kenaikan 3,6 TiB lebih dari 3,6 TiB.

  8. Buat klaim volume persisten.

    kubectl apply -f claim.yaml

    Contoh output adalah sebagai berikut.

    persistentvolumeclaim/fsx-claim created
  9. Konfirmasikan bahwa sistem file disediakan.

    kubectl describe pvc

    Contoh output adalah sebagai berikut.

    Name:          fsx-claim
    Namespace:     default
    StorageClass:  fsx-sc
    Status:        Bound
    [...]
    catatan

    Status mungkin ditampilkan sebagai Pending selama 5-10 menit, sebelum berubah ke Bound. Jangan lanjutkan ke langkah berikutnya sampai Status adalah Bound. Jika Status ditampilkan Pending selama lebih dari 10 menit, gunakan pesan peringatan di Events sebagai referensi untuk mengatasi masalah apa pun.

  10. Deploy aplikasi sampel.

    kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/pod.yaml
  11. Verifikasi bahwa aplikasi sampel sedang dijalankan.

    kubectl get pods

    Contoh output adalah sebagai berikut.

    NAME READY STATUS RESTARTS AGE fsx-app 1/1 Running 0 8s
  12. Verifikasi bahwa sistem file dipasang dengan benar oleh aplikasi.

    kubectl exec -ti fsx-app -- df -h

    Contoh output adalah sebagai berikut.

    Filesystem                   Size  Used Avail Use% Mounted on
    overlay                       80G  4.0G   77G   5% /
    tmpfs                         64M     0   64M   0% /dev
    tmpfs                        3.8G     0  3.8G   0% /sys/fs/cgroup
    192.0.2.0@tcp:/abcdef01      1.1T  7.8M  1.1T   1% /data
    /dev/nvme0n1p1                80G  4.0G   77G   5% /etc/hosts
    shm                           64M     0   64M   0% /dev/shm
    tmpfs                        6.9G   12K  6.9G   1% /run/secrets/kubernetes.io/serviceaccount
    tmpfs                        3.8G     0  3.8G   0% /proc/acpi
    tmpfs                        3.8G     0  3.8G   0% /sys/firmware
  13. Verifikasi bahwa data telah ditulis ke sistem file FSx for Lustre oleh aplikasi sampel.

    kubectl exec -it fsx-app -- ls /data

    Contoh output adalah sebagai berikut.

    out.txt

    Contoh keluaran ini menunjukkan bahwa aplikasi sampel berhasil menulis out.txt file ke sistem file.

catatan

Sebelum menghapus cluster, pastikan untuk menghapus sistem file FSx for Lustre. Untuk informasi selengkapnya, lihat Membersihkan sumber daya di Panduan Pengguna FSx for Lustre.