Secara default, workload yang berjalan di satu node Google Distributed Cloud tidak dapat mengakses penyimpanan lokal node Distributed Cloud lainnya. Namun, Anda dapat mengonfigurasi Google Distributed Cloud untuk menggunakan Rakuten Symcloud Storage, yang merupakan solusi pihak ketiga yang bertindak sebagai lapisan abstraksi penyimpanan lokal di setiap node Distributed Cloud dan membuat penyimpanan lokalnya tersedia untuk beban kerja yang berjalan di node Distributed Cloud lainnya.
Symcloud Storage di-deploy dari Google Cloud Marketplace dan tunduk pada persyaratan yang dinyatakan di dalamnya. Google memberikan dukungan terbatas untuk penggunaan Symcloud Storage dengan Distributed Cloud dan dapat menghubungi penyedia pihak ketiga untuk mendapatkan bantuan. Update software untuk Symcloud Storage disertakan dalam update software Distributed Cloud.
Kelas Penyimpanan Symcloud
Bagian ini menjelaskan class penyimpanan yang dapat diaktifkan Symcloud Storage di cluster Distributed Cloud Anda. Symcloud Storage di Distributed Cloud tidak mendukung kelas penyimpanan robin-rwx maupun volume mode sistem file RWX yang dikonfigurasi kustom.
Untuk mengetahui informasi selengkapnya tentang class Symcloud Storage, lihat Menggunakan Robin CNS di Kubernetes.
Kelas penyimpanan robin
Kelas penyimpanan robin adalah kelas penyimpanan Read Write-Once (RWO) dasar. Contoh
berikut mengilustrasikan pembuatan instance class:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: robin
labels:
app.kubernetes.io/instance: robin
app.kubernetes.io/managed-by: robin.io
app.kubernetes.io/name: robin
provisioner: robin
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
Kelas penyimpanan robin-immediate
Class penyimpanan robin-immediate sama dengan robin, kecuali bahwa
volume persisten dibuat segera setelah membuat
klaim volume persisten yang sesuai. Contoh berikut mengilustrasikan instansiasi
class:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: robin-immediate
labels:
app.kubernetes.io/instance: robin
app.kubernetes.io/managed-by: robin.io
app.kubernetes.io/name: robin
provisioner: robin
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: Immediate
Kelas penyimpanan robin-repl-3
robin-repl-3 adalah class penyimpanan RWO dengan tiga replika yang mencakup
beberapa node Distributed Cloud. Contoh berikut mengilustrasikan pembuatan instance class:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: robin-repl-3
labels:
app.kubernetes.io/instance: robin
app.kubernetes.io/managed-by: robin.io
app.kubernetes.io/name: robin
provisioner: robin
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
parameters:
replication: "3"
faultdomain: host
Prasyarat
Sebelum memulai, selesaikan langkah-langkah berikut:
- Konfigurasi logging dan pemantauan untuk project Distributed Cloud target.
- Buat cluster Distributed Cloud target.
- Konfigurasi jaringan Distributed Cloud sehingga Pod di cluster Distributed Cloud target dapat menjangkau pusat data Google Cloud .
- Ikat setiap volume persisten
local-blockdi setiap node Distributed Cloud yang tidak ingin Anda abstrakkan oleh Symcloud Storage. Jika Anda melepaskan volume persistenlocal-blockyang terikat, menginstal Symcloud Storage akan menghapus konten volume persisten tersebut. Untuk mengetahui petunjuknya, lihat Binding di dokumentasi Kubernetes.
Menginstal Symcloud Storage di node Distributed Cloud
Untuk menginstal Symcloud Storage di node Distributed Cloud, selesaikan langkah-langkah berikut:
Gunakan perintah berikut untuk menerapkan lisensi Symcloud Storage ke cluster Anda. Ganti
LICENSE_FILEdengan jalur dan nama lengkap file lisensi Symcloud Storage.kubectl apply -f LICENSE_FILE -n robin-admin
Gunakan perintah berikut untuk memverifikasi status layanan
RobinClusterdan semua node Symcloud Storage:kubectl describe robinclusters -n robinio
Perintah ini akan menampilkan output yang mirip dengan berikut ini:
[...] Status: [...] Phase: Ready robin_node_status: [...] Status: Ready [...] Status: Ready [...] Status: Ready [...]Status yang diharapkan untuk layanan dan node adalah
Ready.
Menetapkan Symcloud Storage sebagai kelas penyimpanan default
Gunakan perintah berikut untuk menetapkan Symcloud Storage sebagai class penyimpanan default
di cluster Distributed Cloud Anda. Ganti
STORAGE_CLASS dengan salah satu
kelas Symcloud Storage.
kubectl patch storageclass STORAGE_CLASS -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
Untuk mengetahui informasi selengkapnya tentang cara menetapkan kelas penyimpanan default, lihat Mengubah StorageClass default dalam dokumentasi Kubernetes.
Mengonfigurasi volume Penyimpanan Symcloud yang diabstraksi untuk workload
Bagian ini memberikan contoh cara menggunakan class penyimpanan Symcloud untuk mengonfigurasi penyimpanan yang diabstraksi untuk workload Distributed Cloud Anda. Untuk mengetahui detail selengkapnya tentang cara mengonfigurasi volume Symcloud Storage, lihat Menggunakan Robin CNS di Kubernetes.
Mengonfigurasi volume RWO ext4 dalam mode sistem file
Contoh berikut mengilustrasikan cara mengonfigurasi klaim volume persisten untuk
volume RWO dalam mode sistem file dengan sistem file ext4. Ganti
STORAGE_CLASS dengan salah satu
kelas Symcloud Storage.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rwo-fs-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: STORAGE_CLASS
Mengonfigurasi volume RWO dalam mode blok
Contoh berikut mengilustrasikan cara mengonfigurasi klaim volume persisten untuk
volume RWO dalam mode blok. Ganti STORAGE_CLASS dengan salah satu
kelas Symcloud Storage.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rwo-block-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: STORAGE_CLASS
volumeMode: Block
Mengubah konfigurasi volume yang ada
Contoh berikut mengilustrasikan cara mengubah konfigurasi volume RWO yang dikompresi LZ4 Symcloud Storage yang ada menggunakan anotasi.
GantiSTORAGE_CLASS dengan salah satu kelas Symcloud Storage.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: compressed-rwo-fs-pvc
annotations:
robin.io/compression: LZ4
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: STORAGE_CLASS
Contoh berikut mengilustrasikan cara mengubah konfigurasi volume RWO Symcloud Storage yang ada dengan sistem file xfs menggunakan anotasi.
GantiSTORAGE_CLASS dengan salah satu kelas Symcloud Storage.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rwo-xfs-pvc
annotations:
robin.io/fstype: xfs
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: STORAGE_CLASS
Mengonfigurasi klien CLI Symcloud Storage
Symcloud Storage menyediakan klien antarmuka command line (CLI) yang dapat Anda gunakan untuk mengelola konfigurasi Symcloud Storage. Untuk mengonfigurasi klien di cluster Distributed Cloud, selesaikan langkah-langkah berikut:
Dapatkan jalur image Symcloud Storage yang digunakan oleh instance layanan
RobinClusteryang di-deploy di cluster Distributed Cloud Anda:kubectl get robincluster -o jsonpath='{.items[].spec.image_robin}'Buat resource
robinclidengan konten berikut. GantiROBIN_CNS_IMAGEdengan jalur dan nama lengkap image yang Anda peroleh di langkah 1.kind: Deployment apiVersion: apps/v1 metadata: name: robincli namespace: default labels: name: robincli spec: replicas: 1 selector: matchLabels: name: robincli template: metadata: annotations: product: robin labels: name: robincli spec: containers: - name: robincli image: ROBIN_CNS_IMAGE workingDir: /root command: ["/bin/bash","-c","mkdir -p /root/.robin; ln -s -t /usr/lib/python3.7/site-packages/ /opt/robin/current/python3/site-packages/robincli /opt/robin/current/python3/site-packages/stormgr_def.py /opt/robin/current/python3/site-packages/stormgr_lib.py; /opt/robin/current/bin/robin client add-context robin-master.robinio --set-current; while true; do sleep 10000; done"] resources: requests: memory: "10Mi" cpu: "100m"Terapkan resource
robinclike cluster Distributed Cloud Anda.Saat penginstalan awal, Symcloud Storage membuat secret
default-admin-userdi namespacerobiniodengan sandi acak. Gunakan perintah berikut untuk mendapatkan kredensial login ini:Mendapatkan nama pengguna:
kubectl -n robinio get secret default-admin-user -o jsonpath='{.data.username}' | base64 -dDapatkan sandi:
kubectl -n robinio get secret default-admin-user -o jsonpath='{.data.password}' | base64 -d
Login ke Pod yang baru dibuat dan jalankan klien:
kubectl exec -it robincli -- bash
Batasan Penyimpanan Symcloud
Saat menggunakan Symcloud Storage dengan Distributed Cloud, Anda hanya dapat mencapai ketersediaan tinggi jika cluster Distributed Cloud Anda terdiri dari tiga node Distributed Cloud atau lebih.