Mengimpor volume EBS yang sudah ada

Ringkasan

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

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

Sebelum memulai

  • Dari direktori anthos-aws, gunakan anthos-gke untuk mengalihkan konteks ke cluster pengguna.
    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 nilainya:

    • 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 untuk 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. Menerapkan YAML ke cluster Anda

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

    kubectl describe pv volume-name
    

    Output dari perintah ini berisi status PV.

Menggunakan volume dengan PersistentVolumeClaim dan Pod

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

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

  • storage-class: Nama StorageClass dari PersistentVolume yang Anda buat sebelumnya. Misalnya, 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. Menerapkan YAML ke cluster Anda

    kubectl apply -f nginx.yaml
    
  2. Periksa status instance Nginx Anda dengan kubectl describe. Output harus memiliki STATUS berupa 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 ke kunci KMS kepada GKE di bidang kontrol AWS.

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

  1. Beralihlah ke direktori yang memiliki konfigurasi GKE on AWS. Anda membuat direktori ini saat Menginstal layanan pengelolaan.

    cd anthos-aws

  2. Pilih apakah Anda membuat GKE di lingkungan 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 GKE di lingkungan AWS dengan alat anthos- gke, outputnya 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 berikut.

    Dibuat secara manual

    Periksa output terraform output dengan perintah berikut:

    terraform output | less
    

    Scroll ke 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 ke bidang kontrol ke volume EBS Anda, tambahkan profil AWS IAM gke-xxxxxx-controlplane sebagai Pengguna Kunci ke kunci AWS KMS yang digunakan untuk mengenkripsi volume EBS Anda.

Langkah selanjutnya