Halaman ini menjelaskan cara mengonfigurasi penyimpanan yang terhubung ke Configure Distributed Cloud, termasuk:
Mengonfigurasi Distributed Cloud yang terhubung untuk Symcloud Storage
Secara default, workload yang berjalan di satu node rak Google Distributed Cloud terhubung tidak dapat mengakses penyimpanan lokal node rak Distributed Cloud terhubung lainnya. Namun, Anda dapat mengonfigurasi rak yang terhubung ke Distributed Cloud untuk menggunakan Rakuten Symcloud Storage, yang merupakan solusi pihak ketiga yang berfungsi sebagai lapisan abstraksi penyimpanan lokal di setiap node yang terhubung ke Distributed Cloud dan membuat penyimpanan lokalnya tersedia untuk beban kerja yang berjalan di node lain yang terhubung ke Distributed Cloud. Symcloud Storage adalah opsi penyimpanan default dan satu-satunya di server yang terhubung ke Google Distributed Cloud.
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 yang terhubung dan dapat menghubungi penyedia pihak ketiga untuk mendapatkan bantuan. Update software untuk Symcloud Storage disertakan dalam update software Distributed Cloud yang terhubung.
Rilis Distributed Cloud yang terhubung ini dilengkapi dan mendukung Symcloud Storage 5.4.10. Tidak ada versi Symcloud Storage lain yang didukung dalam rilis Distributed Cloud yang terhubung ini.
Kelas Penyimpanan Symcloud
Bagian ini menjelaskan class penyimpanan yang dapat diaktifkan Symcloud Storage di cluster yang terhubung Distributed Cloud Anda. Symcloud Storage di Distributed Cloud yang terhubung tidak mendukung robin-rwxkelas penyimpanan 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 yang terhubung ke Distributed Cloud target.
- Buat cluster Distributed Cloud terhubung target.
- Konfigurasi jaringan Distributed Cloud Anda sehingga Pod di cluster terhubung 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 yang terhubung ke Distributed Cloud
Untuk menginstal Symcloud Storage di node yang terhubung ke 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 yang terhubung 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 yang terhubung ke Distributed Cloud. 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 yang terhubung Distributed Cloud, selesaikan langkah-langkah berikut:
Dapatkan jalur image Symcloud Storage yang digunakan oleh instance layanan
RobinClusteryang di-deploy di cluster yang terhubung ke Distributed Cloud Anda dan tetapkan variabel lingkungan Anda sebagai berikut:image_robin=$(kubectl get robincluster -o jsonpath='{.items[].spec.image_robin}') image_registry_path=$(kubectl get robincluster -o jsonpath='{.items[].spec.image_registry_path}') ROBIN_CNS_IMAGE="$image_registry_path/$image_robin"Buat resource
robinclidengan konten berikut: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"Ganti
ROBIN_CNS_IMAGEdengan jalur repositori lengkap dan nama image yang Anda peroleh di langkah 1.Terapkan resource
robinclike cluster Distributed Cloud terhubung 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 terhubung, Anda hanya dapat mencapai ketersediaan tinggi jika cluster Distributed Cloud terhubung Anda terdiri dari tiga atau lebih node Distributed Cloud terhubung.
Menghapus node yang menggunakan Symcloud Storage dari cluster
Replika volume Symcloud Storage disimpan di node pekerja dalam cluster yang terhubung ke Distributed Cloud Anda. Jika Anda menghapus node dari cluster, data volume Symcloud Storage yang disimpan di node tersebut tidak akan tersedia. Untuk mencegah hal ini, Anda harus melakukan salah satu tindakan berikut:
Jika Anda menghapus seluruh cluster, hapus beban kerja dan volume persisten Symcloud Storage yang sesuai sebelum Anda menghapus cluster itu sendiri.
Jika Anda menghapus node tertentu dari cluster, Anda harus memigrasikan data beban kerja yang disimpan di node tersebut sebelum menghapus node tersebut dari cluster. Untuk mengetahui petunjuknya, lihat Mengosongkan volume dari disk.
Mengonfigurasi skema penyimpanan lokal
Skema penyimpanan adalah pengelompokan logis dari satu atau beberapa partisi. Setiap partisi adalah unit penyimpanan yang independen secara logis. Partisi dibuat di cluster Anda secara berurutan hingga ruang disk fisik habis. Setiap skema penyimpanan memiliki nama unik yang mengidentifikasinya.
Untuk membuat skema penyimpanan lokal baru untuk cluster yang terhubung ke Distributed Cloud, Anda harus memintanya dari Google. Setelah menguji skema dan membuatnya di cluster, Anda dapat menerapkannya menggunakan CLI gcloud.
Anda tidak dapat mengubah skema setelah diterapkan ke cluster. Untuk mengubah skema yang ada, Anda harus meminta penghapusan skema yang ada dari Google, lalu meminta pembuatan skema baru untuk menggantikannya.
Menentukan partisi untuk skema penyimpanan lokal
Sebelum dapat meminta skema penyimpanan lokal, Anda harus menentukan partisi untuk skema tersebut terlebih dahulu.
Partisi memiliki properti berikut:
- Ukuran. Anda dapat menentukan ukuran partisi dalam byte biner, atau membuatnya menggunakan semua ruang yang tersisa di disk lokal.
- Jenis. Anda dapat mengonfigurasi partisi sebagai volume persisten (PV) Kubernetes atau volume lokal Linux di disk lokal.
- Mode. Anda dapat mengonfigurasi volume yang disimpan di partisi sebagai volume blok atau volume sistem file. Untuk partisi volume persisten, kelas penyimpanan partisi masing-masing adalah
local-blockataulocal-disks. Untuk partisi volume lokal, Anda dapat menentukan titik pemasangan dan pengikatan untuk sistem file yang disertakan.
Meminta skema penyimpanan lokal
Untuk meminta skema penyimpanan lokal baru untuk cluster yang terhubung ke Distributed Cloud, hubungi Dukungan Google dan berikan ukuran, jenis, mode, dan, secara opsional, titik pemasangan dan pengikatan untuk setiap partisi yang ingin Anda buat dalam skema.
Saat kami menerima permintaan Anda, kami menjalankan serangkaian pengujian untuk memastikan keandalan skema, lalu membuatnya di cluster yang terhubung ke Distributed Cloud Anda.
Skema penyimpanan lokal default
Distributed Cloud Connected dilengkapi dengan skema penyimpanan lokal default berikut:
default_control_plane_node. Skema ini menentukan partisi berikut:- Partisi volume lokal 100 GB dalam mode sistem file.
- Partisi volume persisten dalam mode blok yang menempati ruang disk kosong yang tersisa.
default_worker_node. Skema ini menentukan partisi volume persisten 410 GB dalam mode blok.
Menerapkan skema penyimpanan lokal ke cluster
Untuk menerapkan skema penyimpanan lokal ke cluster yang terhubung ke Distributed Cloud, lakukan salah satu hal berikut:
Untuk menerapkan skema penyimpanan lokal ke node bidang kontrol cluster, gunakan flag
--control-plane-node-storage-schemasaat membuat cluster. Untuk mengetahui informasi selengkapnya, lihat Membuat cluster.Untuk menerapkan skema penyimpanan lokal ke node pekerja cluster, gunakan
--node-storage-schemasaat membuat node pool untuk cluster. Untuk mengetahui informasi selengkapnya, lihat Membuat node pool.
Distributed Cloud connected membuat partisi yang ditentukan dalam skema penyimpanan lokal Anda setelah berhasil membuat cluster atau kumpulan node.