Mengimpor volume EBS yang sudah ada

Ringkasan

Jika sudah memiliki volume AWS Elastic Block Store (EBS) untuk diimpor ke GKE di AWS, Anda dapat membuat objek PersistentVolume (PV) dan mencadangkannya untuk PersistentVolumeClaim (PVC) tertentu.

Halaman ini menjelaskan cara membuat PV menggunakan volume EBS yang sudah ada yang diisi dengan data, dan cara menggunakan PV di sebuah Pod.

Sebelum memulai

  • Dari direktori anthos-aws, gunakan anthos-gke untuk beralih konteks ke cluster pengguna Anda.
    cd anthos-aws
    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    Ganti CLUSTER_NAME dengan nama cluster pengguna Anda.

Membuat PersistentVolume untuk volume EBS yang sudah ada

Anda dapat mengimpor volume EBS yang ada dengan menentukan PV baru.

  1. Salin YAML berikut ke dalam file bernama existing-volume.yaml dan selesaikan konfigurasi Anda dengan mengganti nilai:

    • volume-capacity: ukuran volume. Contoh, 30Gi. Untuk mengetahui informasi selengkapnya tentang cara menentukan kapasitas volume di Kubernetes, lihat Arti memori.
    • storage-class-name: nama StorageClass yang menyediakan volume. Misalnya, Anda dapat menggunakan standard-rwo default.

    • ebs-id: ID volume EBS. Misalnya, vol-05786ec9ec9526b67.

    • fs-type: Sistem file volume. Misalnya, ext4.

    • zone: Zona Ketersediaan AWS yang menghosting volume EBS. Contoh, us-east-1c.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: volume-name
      annotations:
        pv.kubernetes.io/provisioned-by: ebs.csi.aws.com
    spec:
      capacity:
        storage: volume-capacity
      accessModes:
        - ReadWriteOnce
      persistentVolumeReclaimPolicy: Retain
      storageClassName: storage-class-name
      claimRef:
        name: my-pvc
        namespace: default
      csi:
        driver: ebs.csi.aws.com
        volumeHandle: ebs-volume-id
        fsType: file-system-type
      nodeAffinity:
        required:
          nodeSelectorTerms:
          - matchExpressions:
            - key: topology.ebs.csi.aws.com/zone
              operator: In
              values:
              - zone
    
  2. Terapkan YAML ke cluster Anda

    kubectl apply -f existing-volume.yaml
    
  3. Konfirmasi pembuatan PV Anda

    kubectl describe pv volume-name
    

    Output perintah ini berisi status PV.

Menggunakan volume dengan PersistentVolumeClaim dan Pod

Setelah mengimpor volume, Anda dapat membuat PVC dan Pod yang melampirkan PVC.

YAML di bawah membuat PVC dan melampirkannya ke Pod yang menjalankan server web Nginx. Salin ke file bernama nginx.yaml dan selesaikan konfigurasi Anda dengan mengganti nilai:

  • storage-class: Nama StorageClass dari PersistentVolume yang Anda buat sebelumnya. Contoh, standard-rwo.
  • volume-name: Nama volume yang Anda buat sebelumnya.
  • volume-capacity: ukuran volume. Contoh, 30Gi.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  storageClassName: storage-class-name
  volumeName: volume-name
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: volume-capacity
---

apiVersion: v1
kind: Pod
metadata:
  name: web-server
spec:
  containers:
   - name: web-server
     image: nginx
     volumeMounts:
       - mountPath: /var/lib/www/html
         name: data
  volumes:
   - name: data
     persistentVolumeClaim:
       claimName: my-pvc
  1. Terapkan YAML ke cluster Anda

    kubectl apply -f nginx.yaml
    
  2. Periksa status instance Nginx Anda dengan kubectl describe. Output harus memiliki STATUS Running.

    kubectl describe pod web-server
    

Menggunakan volume EBS terenkripsi

Jika volume EBS Anda dienkripsi dengan AWS Key Management Service (KMS), Anda harus memberikan akses peran IAM AWS bidang kontrol GKE di AWS ke kunci KMS Anda.

Untuk mendapatkan nama peran AWS IAM, lakukan langkah-langkah berikut:

  1. Beralih ke direktori dengan konfigurasi GKE di AWS. Anda membuat direktori ini saat Menginstal layanan pengelolaan.

    cd anthos-aws

  2. Pilih apakah Anda membuat lingkungan GKE di AWS dengan alat anthos-gke atau membuat profil IAM AWS secara manual.

    Alat anthos-gke

    Gunakan perintah terraform output dan telusuri nilai iamInstanceProfile.

    terraform output | grep iamInstanceProfile
    

    Jika Anda membuat lingkungan GKE di AWS dengan alat anthos- gke, output-nya akan terlihat seperti berikut:

      iamInstanceProfile: gke-CLUSTER_ID-controlplane
      iamInstanceProfile: gke-CLUSTER_ID-nodepool
    

    Dengan CLUSTER_ID sebagai ID cluster Anda. Salin nilai gke-CLUSTER_ID-controlplane untuk langkah berikutnya.

    Dibuat secara manual

    Periksa output terraform output dengan perintah berikut:

    terraform output | less
    

    Scroll output dan temukan iamInstanceProfile setelah definisi AWSCluster.

    kind: AWSCluster
    metadata:
      name: cluster-0
    spec:
      ...
      controlPlane:
       ...
        iamInstanceProfile: INSTANCE_PROFILE_NAME
    

    Salin nilai INSTANCE_PROFILE_NAME untuk langkah berikutnya.

  3. Untuk memberikan akses bidang kontrol ke volume EBS Anda, tambahkan profil IAM AWS gke-xxxxxx-controlplane sebagai Pengguna Utama ke kunci AWS KMS yang digunakan untuk mengenkripsi volume EBS Anda.

Langkah berikutnya