Menggunakan berbagi File Azure

GKE on Azure mendukung pemasangan share Azure Files. Jika sudah memiliki berbagi File Azure untuk digunakan dengan GKE di Azure, Anda dapat membuat objek PersistentVolume (PV) dan mencadangkannya untuk PersistentVolumeClaim (PVC) tertentu.

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

Sebelum memulai

Menyimpan informasi akun penyimpanan Azure Anda

GKE di Azure menyimpan informasi untuk mengakses akun penyimpanan Azure Anda di Secret. Jika Anda belum membuat Secret di cluster, Anda harus menambahkannya. Jika Anda memiliki Secret ini di cluster, lanjutkan ke Membuat PersistentVolume untuk berbagi yang sudah ada.

  1. Untuk membuat Secret, salin manifes berikut ke dalam file bernama 'azure-service-account-key.yaml'.

    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: azure-secret-account-key
    type: Opaque
    stringData:
      accountname: STORAGE_ACCOUNT_NAME
      accountkey: STORAGE_ACCOUNT_KEY
    

    Ganti kode berikut:

    • STORAGE_ACCOUNT_NAME: nama akun Azure Storage Anda
    • STORAGE_ACCOUNT_KEY: kunci akun Azure Storage Anda
  2. Terapkan file ke cluster Anda dengan alat kubectl:

    kubectl apply -f azure-service-account-key.yaml
    

Membuat PersistentVolume untuk berbagi yang sudah ada

Anda mengimpor berbagi File Azure yang ada dengan menentukan PV baru di cluster Anda. Untuk membuat PV, lakukan hal berikut:

  1. Salin YAML berikut ke dalam file bernama existing-volume.yaml:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: VOLUME_NAME
    spec:
      capacity:
        storage: VOLUME_CAPACITY
      storageClassName: standard-rwx
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: file.csi.azure.com
        readOnly: false
        volumeHandle: VOLUME_ID
    

    Ganti kode berikut:

    • VOLUME_NAME: nama untuk volume
    • VOLUME_CAPACITY: ukuran volume. Contoh, 30Gi. Untuk mengetahui informasi selengkapnya tentang cara menentukan kapasitas volume di Kubernetes, lihat Arti memori.
    • VOLUME_ID: ID unik untuk volume, diformat sebagai string dari RESOURCE_GROUP_NAME#STORAGE_ACCOUNT_NAME#FILESHARE_NAME# dengan
    • FILE_SHARE_NAME: nama berbagi File Azure

    Jika akun penyimpanan Anda berada di grup resource yang berbeda dengan cluster, Anda perlu menambahkan referensi ke Secret yang berisi kunci akun penyimpanan Anda. Untuk menambahkan referensi, sisipkan kode berikut di bagian spec.csi:

    # Optional. Only required if your storageAccount is in a different resource group than the cluster.
        nodeStageSecretRef:
          name: NODE_STAGE_SECRET_NAME
          namespace: NODE_STAGE_SECRET_NAMESPACE
    

    Ganti kode berikut:

    • NODE_STAGE_SECRET_NAME: nama Secret
    • NODE_STAGE_SECRET_NAMESPACE Namespace yang berisi Secret
  2. Terapkan YAML ke cluster Anda.

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

    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 me-mount PVC.

  1. YAML berikut membuat PVC dan melampirkannya ke Pod yang menjalankan server web Nginx. Salin ke dalam file bernama nginx.yaml:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: my-pvc
    spec:
      storageClassName: STORAGE_CLASS_NAME
      volumeName: VOLUME_NAME
      accessModes:
        - ACCESS_MODE
      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
    

    Ganti kode berikut:

    • STORAGE_CLASS: nama StorageClass dari PersistentVolume yang Anda buat sebelumnya. Contoh, standard-rwo.
    • ACCESS_MODE: mode akses volume. Untuk Azure Disk, gunakan ReadWriteOnce. Untuk Azure File, gunakan ReadWriteMany.
    • VOLUME_CAPACITY: ukuran volume. Contoh, 30Gi.
  2. Terapkan YAML ke cluster Anda.

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

    kubectl describe pod web-server
    
  4. Untuk menghapus Pod, gunakan perintah kubectl delete.

    kubectl delete -f nginx.yaml
    

Langkah berikutnya