Halaman ini menjelaskan cara menambahkan persistent disk ke cluster Anda menggunakan mode akses ReadOnlyMany. Mode ini memungkinkan beberapa Pod di node yang berbeda memasang disk untuk membaca.
Untuk informasi selengkapnya tentang mode ini, lihat mode akses volume persisten.
Persyaratan
- Cluster Anda harus menjalankan GKE versi 1.22 atau yang lebih baru.
- Cluster Anda harus menggunakan driver CSI persistent disk Compute Engine.
Memformat dan mengisi persistent disk sumber
Untuk menggunakan persistent disk dalam mode hanya baca, Anda harus mengisi persistent disk sumber dengan data, lalu meng-clone volume tersebut atau menggunakan snapshot volume untuk memindahkan data ke PersistentVolume ReadOnlyMany baru.
- Buat PersistentVolume menggunakan persistent disk yang sudah ada atau menggunakan penyediaan dinamis. 
- Format disk dan isi dengan data. Untuk memformat disk, referensikan disk tersebut sebagai PersistentVolume ReadWriteOnce di sebuah Pod. GKE akan otomatis memformat disk pokok, dan mengizinkan Pod menulis data ke disk tersebut. Saat Pod dimulai, pastikan Pod menulis data yang Anda inginkan ke disk. 
Membuat PersistentVolume ReadOnlyMany
Anda dapat membuat PersistentVolume ReadOnlyMany menggunakan salah satu metode berikut:
- Snapshot volume dari PersistentVolume sumber yang Anda isi dengan data.
- Clone volume dari PersistentVolume sumber yang Anda isi dengan data.
- Persistent disk yang sudah ada sebelumnya dan sudah diisi dengan data. 
Snapshot volume
- Simpan manifes PersistentVolumeClaim berikut sebagai - snapshot-pvc.yaml:- kind: PersistentVolumeClaim apiVersion: v1 metadata: namespace: PVC_NAMESPACE name: PVC_NAME spec: dataSource: apiGroup: snapshot.storage.k8s.io kind: VolumeSnapshot name: SNAPSHOT_NAME accessModes: - ReadOnlyMany storageClassName: premium-rwo resources: requests: storage: STORAGE_SIZE- Ganti kode berikut: - PVC_NAMESPACE: namespace PersistentVolumeClaim yang baru.
- PVC_NAME: nama PersistentVolumeClaim baru.
- SNAPSHOT_NAME:nama objek- VolumeSnapshotAnda.
- STORAGE_SIZE: ukuran penyimpanan yang akan diminta. Ukuran ini harus sama dengan yang diminta di PersistentVolumeClaim sumber.
 
- Terapkan manifes ke cluster Anda: - kubectl apply -f snapshot-pvc.yaml
Tindakan ini akan membuat PersistentVolumeClaim baru bernama PVC_NAME di cluster Anda, yang digunakan GKE untuk menyediakan PersistentVolume baru secara dinamis yang berisi data dari snapshot persistent disk sumber.
Cloning volume
Sebelum menggunakan cloning volume, pastikan Anda memahami keterbatasan pendekatan ini.
- Simpan manifes berikut sebagai - cloning-pvc.yaml:- kind: PersistentVolumeClaim apiVersion: v1 metadata: namespace: PVC_NAMESPACE name: PVC_NAME spec: dataSource: name: SOURCE_PVC kind: PersistentVolumeClaim accessModes: - ReadOnlyMany storageClassName: STORAGE_CLASS_NAME resources: requests: storage: STORAGE_SIZE- Ganti kode berikut: - PVC_NAMESPACE: namespace PersistentVolumeClaim yang baru.
- PVC_NAME: nama PersistentVolumeClaim baru.
- SOURCE_PVC: nama PersistentVolumeClaim sumber yang diisi dengan data.
- STORAGE_CLASS_NAME: kelas penyimpanan untuk PersistentVolumeClaim baru. Nilai ini harus sama dengan kelas penyimpanan PersistentVolumeClaim sumber.
- STORAGE_SIZE: Ukuran penyimpanan untuk PersistentVolumeClaim baru. Ukuran ini harus sama dengan yang diminta oleh PersistentVolumeClaim sumber.
 
- Terapkan manifes ke cluster Anda: - kubectl apply -f cloning-pvc.yaml
Tindakan ini menghasilkan PersistentVolumeClaim bernama PVC_NAME yang digunakan GKE untuk membuat PersistentVolume baru dalam mode ReadOnlyMany dengan data di PersistentVolume sumber.
Untuk informasi selengkapnya tentang Cloning Volume, lihat Membuat clone volume persisten.
Persistent disk yang sudah ada
- Simpan manifes berikut sebagai - preexisting-disk-pv-pvc.yaml:- apiVersion: v1 kind: PersistentVolume metadata: name: PV_NAME spec: storageClassName: "STORAGE_CLASS_NAME" capacity: storage: DISK_SIZE accessModes: - ReadOnlyMany claimRef: namespace: PVC_NAMESPACE name: PVC_NAME csi: driver: pd.csi.storage.gke.io volumeHandle: DISK_ID fsType: FS_TYPE readOnly: true --- apiVersion: v1 kind: PersistentVolumeClaim metadata: namespace: PVC_NAMESPACE name: PVC_NAME spec: storageClassName: "STORAGE_CLASS_NAME" volumeName: PV_NAME accessModes: - ReadOnlyMany resources: requests: storage: DISK_SIZE- Ganti kode berikut: - PV_NAME: nama PersistentVolume baru Anda.
- STORAGE_CLASS_NAME: nama StorageClass baru Anda.
- DISK_SIZE: ukuran persistent disk yang sudah ada. Contoh,- 500G.
- PVC_NAMESPACE: namespace PersistentVolumeClaim yang baru.
- PVC_NAME: nama PersistentVolumeClaim baru Anda.
- DISK_ID: ID persistent disk yang sudah ada. Formatnya adalah- projects/{project_id}/zones/{zone_name}/disks/{disk_name}untuk Persistent disk zona, atau- projects/{project_id}/regions/{region_name}/disks/{disk_name}untuk Persistent disk regional.
- FS_TYPE: jenis sistem file. Anda dapat membiarkan jenis sistem file- ext4sebagai default, atau menggunakan- xfs. Jika cluster Anda menggunakan node pool Windows Server, Anda harus mengubahnya menjadi- NTFS.
 
- Terapkan manifes ke cluster Anda: - kubectl apply -f preexisting-disk-pv-pvc.yaml
Tindakan ini menghasilkan PersistentVolumeClaim bernama PVC_NAME dan PersistentVolume bernama PV_NAME dalam mode ReadOnlyMany.
Untuk informasi lebih mendetail tentang penggunaan persistent disk yang sudah ada, lihat persistent disk yang sudah ada.
Menggunakan PersistentVolumeClaim di Pod
Sekarang Anda dapat mereferensikan PersistentVolumeClaim baru dalam mode hanya baca di banyak Pod yang berada di banyak node secara bersamaan. Anda tidak dapat memasang persistent disk dalam mode ReadWriteOnly ke banyak node secara bersamaan. Untuk informasi selengkapnya, lihat Deployment vs. StatefulSet.
Dalam spesifikasi Pod, Anda harus menentukan readOnly: true di bagian volumeMounts dan bagian volumes, seperti pada contoh berikut:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: multi-read
  labels:
    app: web-server
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web-server
  template:
    metadata:
      labels:
        app: web-server
    spec:
      containers:
      - name: web-server
        image: nginx
        volumeMounts:
        - mountPath: /test-mnt
          name: my-volume
          readOnly: true
      volumes:
      - name: my-volume
        persistentVolumeClaim:
          claimName: PVC_NAME
          readOnly: true
Langkah berikutnya
- Pelajari lebih lanjut cara menggunakan persistent disk yang sudah ada sebagai PersistentVolume.
- Pelajari lebih lanjut Persistent disk Compute Engine.