Per impostazione predefinita, i carichi di lavoro in esecuzione su un nodo rack Google Distributed Cloud connesso non possono accedere allo spazio di archiviazione locale di un altro nodo rack Distributed Cloud connesso. Tuttavia, puoi configurare i rack Distributed Cloud connected per utilizzare Rakuten Symcloud Storage, una soluzione di terze parti che funge da livello di astrazione dello spazio di archiviazione locale su ogni nodo Distributed Cloud connected e rende disponibile lo spazio di archiviazione locale ai carichi di lavoro in esecuzione su altri nodi Distributed Cloud connected. Symcloud Storage è l'opzione di archiviazione predefinita e unica sui server Google Distributed Cloud connected.
Symcloud Storage viene implementato da Google Cloud Marketplace ed è soggetto ai termini ivi indicati. Google fornisce un supporto limitato per l'utilizzo di Symcloud Storage con Distributed Cloud connesso e potrebbe coinvolgere il fornitore di terze parti per ricevere assistenza. Gli aggiornamenti software per Symcloud Storage sono inclusi negli aggiornamenti software connessi a Distributed Cloud.
Classi di archiviazione Symcloud
Questa sezione descrive le classi di archiviazione che Symcloud Storage può abilitare nel cluster connesso a Distributed Cloud. Symcloud Storage su
Distributed Cloud Connected non supporta la classe di archiviazione robin-rwx
né alcun volume in modalità file system RWX configurato personalizzato.
Per ulteriori informazioni sulle classi di archiviazione Symcloud, consulta Utilizzo di Robin CNS in Kubernetes.
Classe di archiviazione robin
La classe di archiviazione robin è una classe di archiviazione di base Read Write-Once (RWO). L'esempio seguente illustra l'istanza della classe:
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
Classe di archiviazione robin-immediate
La classe di archiviazione robin-immediate è uguale a robin, tranne per il fatto che il volume permanente viene creato immediatamente dopo la creazione della richiesta di volume permanente corrispondente. L'esempio seguente illustra l'istanza
della classe:
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
Classe di archiviazione robin-repl-3
robin-repl-3 è una classe di archiviazione RWO con tre repliche che si estendono su più nodi Distributed Cloud. L'esempio seguente
illustra l'istanza della classe:
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
Prerequisiti
Prima di iniziare, completa i seguenti passaggi:
- Configura la registrazione e il monitoraggio per il progetto connesso a Distributed Cloud di destinazione.
- Crea il cluster Google Distributed Cloud connesso di destinazione.
- Configura il networking di Distributed Cloud in modo che i pod nel cluster connesso Distributed Cloud di destinazione possano raggiungere il data center Google Cloud .
- Collega ogni volume persistente
local-blocksu ogni nodo Distributed Cloud che non vuoi che venga astratto da Symcloud Storage. Se annulli il binding di un volume permanentelocal-block, l'installazione di Symcloud Storage cancella i contenuti di questo volume permanente. Per istruzioni, vedi Binding nella documentazione di Kubernetes.
Installa Symcloud Storage su un nodo Distributed Cloud connesso
Per installare Symcloud Storage su un nodo connesso a Distributed Cloud, completa i seguenti passaggi:
Utilizza il seguente comando per applicare la licenza Symcloud Storage al tuo cluster. Sostituisci
LICENSE_FILEcon il percorso completo e il nome del file di licenza di Symcloud Storage.kubectl apply -f LICENSE_FILE -n robin-admin
Utilizza il seguente comando per verificare lo stato del servizio
RobinClustere di tutti i nodi di Symcloud Storage:kubectl describe robinclusters -n robinio
Il comando restituisce un output simile al seguente:
[...] Status: [...] Phase: Ready robin_node_status: [...] Status: Ready [...] Status: Ready [...] Status: Ready [...]Lo stato previsto per il servizio e i nodi è
Ready.
Impostare Symcloud Storage come classe di archiviazione predefinita
Utilizza il seguente comando per impostare Symcloud Storage come classe di archiviazione predefinita
nel cluster connesso Distributed Cloud. Sostituisci STORAGE_CLASS con una delle classi di archiviazione Symcloud.
kubectl patch storageclass STORAGE_CLASS -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
Per saperne di più sull'impostazione della classe di archiviazione predefinita, consulta Modificare StorageClass predefinita nella documentazione di Kubernetes.
Configura i volumi di archiviazione Symcloud astratti per i workload
Questa sezione fornisce esempi di come utilizzare le classi di archiviazione Symcloud per configurare l'archiviazione astratta per i carichi di lavoro connessi a Distributed Cloud. Per ulteriori dettagli sulla configurazione dei volumi di archiviazione Symcloud, consulta Utilizzo di Robin CNS in Kubernetes.
Configura un volume RWO ext4 in modalità file system
Il seguente esempio mostra come configurare una richiesta di volume permanente per
un volume RWO in modalità file system con il file system ext4. Sostituisci STORAGE_CLASS con una delle classi di archiviazione Symcloud.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rwo-fs-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: STORAGE_CLASS
Configurare un volume RWO in modalità blocco
Il seguente esempio illustra come configurare una richiesta di volume permanente per
un volume RWO in modalità blocco. Sostituisci STORAGE_CLASS con una delle classi di archiviazione Symcloud.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rwo-block-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: STORAGE_CLASS
volumeMode: Block
Modificare la configurazione di un volume esistente
L'esempio seguente mostra come modificare la configurazione di un volume RWO compresso LZ4 di Symcloud Storage esistente utilizzando le annotazioni.
SostituisciSTORAGE_CLASS con una delle classi di archiviazione Symcloud.
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
L'esempio seguente mostra come modificare la configurazione di un volume Symcloud Storage RWO esistente con il file system xfs utilizzando le annotazioni.
SostituisciSTORAGE_CLASS con una delle classi di archiviazione Symcloud.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rwo-xfs-pvc
annotations:
robin.io/fstype: xfs
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: STORAGE_CLASS
Configura il client CLI di Symcloud Storage
Symcloud Storage fornisce un client dell'interfaccia a riga di comando (CLI) che puoi utilizzare per gestire la configurazione di Symcloud Storage. Per configurare il client sul cluster connesso Distributed Cloud, completa i seguenti passaggi:
Ottieni il percorso dell'immagine di Symcloud Storage utilizzata dall'istanza del servizio
RobinClusterdi cui è stato eseguito il deployment nel cluster connesso di Distributed Cloud e imposta le variabili di ambiente nel seguente modo: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"Crea una risorsa
robinclicon il seguente contenuto: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"Sostituisci
ROBIN_CNS_IMAGEcon il percorso completo del repository e il nome dell'immagine che hai ottenuto nel passaggio 1.Applica la risorsa
robinclial tuo cluster Distributed Cloud connected.Al momento dell'installazione iniziale, Symcloud Storage genera un secret
default-admin-usernello spazio dei nomirobiniocon una password casuale. Utilizza i seguenti comandi per ottenere queste credenziali di accesso:Ottieni il nome utente:
kubectl -n robinio get secret default-admin-user -o jsonpath='{.data.username}' | base64 -dRecupera la password:
kubectl -n robinio get secret default-admin-user -o jsonpath='{.data.password}' | base64 -d
Accedi al pod appena creato ed esegui il client:
kubectl exec -it robincli -- bash
Limitazioni di Symcloud Storage
Quando utilizzi Symcloud Storage con Distributed Cloud connected, puoi ottenere la disponibilità elevata solo se il cluster Distributed Cloud connected è composto da tre o più nodi Distributed Cloud connected.