Questa pagina descrive come configurare l'archiviazione connessa a Distributed Cloud, tra cui:
Configurare Distributed Cloud connected per Symcloud Storage
Per impostazione predefinita, i carichi di lavoro in esecuzione su un nodo rack connesso a Google Distributed Cloud non possono accedere all'archiviazione locale di un altro nodo rack connesso a Distributed Cloud. Tuttavia, puoi configurare i rack connessi a Distributed Cloud in modo che utilizzino Symcloud Storage di Rakuten, una soluzione di terze parti che funge da livello di astrazione dell'archiviazione locale su ogni nodo connesso a Distributed Cloud e rende la sua archiviazione locale disponibile per i carichi di lavoro in esecuzione su altri nodi connessi a Distributed Cloud. Symcloud Storage è l'opzione di archiviazione predefinita e unica sui server connessi a Google Distributed Cloud.
Symcloud Storage viene eseguito il deployment da Google Cloud Marketplace ed è soggetto ai termini ivi indicati. Google fornisce un supporto limitato per l'utilizzo di Symcloud Storage con Distributed Cloud connected e potrebbe coinvolgere il fornitore di terze parti per ricevere assistenza. Gli aggiornamenti software per Symcloud Storage sono inclusi negli aggiornamenti software di Distributed Cloud connected.
Questa release di Distributed Cloud connected viene fornita con Symcloud Storage 5.4.18 e lo supporta . Nessun'altra versione di Symcloud Storage è supportata in questa release di Distributed Cloud connected.
Ottenere una licenza Symcloud Storage
Devi ottenere una licenza Symcloud Storage in formato YAML da Google Cloud Marketplace:
Classi di Symcloud Storage
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é i volumi in modalità file system RWX configurati in modo personalizzato.
Per ulteriori informazioni sulle classi di Symcloud Storage, 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 Distributed Cloud connected di destinazione.
- Crea il cluster Distributed Cloud connected di destinazione.
- Configura la rete Distributed Cloud in modo che i pod nel cluster Distributed Cloud connected di destinazione possano raggiungere il Google Cloud data center.
- Collega ogni volume permanente
local-blocksu ogni nodo Distributed Cloud che non vuoi che venga astratto da Symcloud Storage. Se scolleghi un volume permanentelocal-blockcollegato, l'installazione di Symcloud Storage cancella i contenuti di quel volume permanente. Per istruzioni, consulta la sezione Collegamento nella documentazione di Kubernetes.
Installare Symcloud Storage su un nodo connesso a Distributed Cloud
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 cluster. Sostituisci
LICENSE_FILEcon il percorso completo e il nome del file di licenza 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 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 a Distributed Cloud. Sostituisci
STORAGE_CLASS con una delle
classi di Symcloud Storage.
kubectl patch storageclass STORAGE_CLASS -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
Per ulteriori informazioni sull'impostazione della classe di archiviazione predefinita, consulta Modificare la StorageClass predefinita nella documentazione di Kubernetes.
Configurare i volumi Symcloud Storage astratti per i carichi di lavoro
Questa sezione fornisce esempi di come utilizzare le classi di Symcloud Storage per configurare l'archiviazione astratta per i carichi di lavoro connessi a Distributed Cloud. Per ulteriori dettagli sulla configurazione dei volumi Symcloud Storage, consulta Utilizzo di Robin CNS in Kubernetes.
Configurare un volume RWO ext4 in modalità file system
L'esempio seguente illustra 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 Symcloud Storage.
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
L'esempio seguente illustra come configurare una richiesta di volume permanente per un volume RWO in modalità blocco. Sostituisci STORAGE_CLASS con una
delle classi di Symcloud Storage.
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 illustra come modificare la configurazione di un volume RWO compresso LZ4 di Symcloud Storage esistente utilizzando le annotazioni.
Sostituisci STORAGE_CLASS con una delle classi di 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
L'esempio seguente illustra come modificare la configurazione di un volume RWO di Symcloud Storage esistente con il file system xfs utilizzando le annotazioni.
Sostituisci STORAGE_CLASS con una delle classi di 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
Configurare il client CLI di Symcloud Storage
Symcloud Storage fornisce un client di interfaccia a riga di comando (CLI) che puoi utilizzare per gestire la configurazione di Symcloud Storage. Per configurare il client nel cluster connesso a Distributed Cloud, completa i seguenti passaggi:
Ottieni il percorso dell'immagine Symcloud Storage utilizzata dall'istanza del servizio
RobinClusterdi cui è stato eseguito il deployment nel cluster connesso a Distributed Cloud e imposta le variabili di ambiente come segue: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 i seguenti contenuti: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 cluster connesso a Distributed Cloud.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 -dOttieni 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 l'alta affidabilità solo se il cluster connesso a Distributed Cloud è composto da tre o più nodi connessi a Distributed Cloud.
Rimozione di nodi che utilizzano Symcloud Storage da un cluster
Le repliche dei volumi Symcloud Storage vengono archiviate sui nodi worker all'interno del cluster connesso a Distributed Cloud. Se rimuovi un nodo dal cluster, i dati dei volumi Symcloud Storage archiviati su quel nodo diventano non disponibili. Per evitare questo problema, devi eseguire una delle seguenti operazioni:
Se stai eliminando l'intero cluster, rimuovi i carichi di lavoro e i relativi volumi permanenti Symcloud Storage prima di eliminare il cluster stesso.
Se rimuovi nodi specifici dal cluster, devi eseguire la migrazione dei dati dei carichi di lavoro archiviati su questi nodi prima di rimuoverli dal cluster. Per istruzioni, consulta Evacuare i volumi da un disco.
Configurare gli schemi di archiviazione locale
Uno schema di archiviazione è un raggruppamento logico di una o più partizioni. Ogni partizione è un'unità di archiviazione logicamente indipendente. Le partizioni vengono create sul cluster in sequenza fino a quando lo spazio su disco fisico non è esaurito. Ogni schema di archiviazione ha un nome univoco che lo identifica.
Per creare un nuovo schema di archiviazione locale per il cluster connesso a Distributed Cloud, devi richiederlo a Google. Una volta testato e creato lo schema nel cluster, puoi
applicarlo utilizzando gcloud CLI.
Non puoi modificare uno schema dopo che è stato applicato a un cluster. Per modificare uno schema esistente, devi richiedere l'eliminazione dello schema esistente a Google e poi richiedere la creazione di un nuovo schema per sostituirlo.
Definire le partizioni per uno schema di archiviazione locale
Prima di poter richiedere uno schema di archiviazione locale, devi prima definire le partizioni per lo schema.
Una partizione ha le seguenti proprietà:
- Dimensioni. Puoi specificare le dimensioni di una partizione in byte binari o utilizzare tutto lo spazio rimanente sul disco locale.
- Tipo. Puoi configurare una partizione come volume permanente (PV) di Kubernetes o come volume locale Linux sul disco locale.
- Modalità. Puoi configurare il volume archiviato nella partizione come volume a blocchi o volume del file system. Per le partizioni dei volumi permanenti, la classe di archiviazione della partizione è rispettivamente
local-blockolocal-disks. Per le partizioni dei volumi locali, puoi specificare i punti di collegamento e di montaggio per i file system contenuti.
Richiedere uno schema di archiviazione locale
Per richiedere un nuovo schema di archiviazione locale per il cluster connesso a Distributed Cloud, contatta l'assistenza Google e fornisci le dimensioni, il tipo, la modalità e, facoltativamente, i punti di montaggio e collegamento per ogni partizione che vuoi creare nello schema.
Quando riceviamo la tua richiesta, eseguiamo una serie di test per garantire la robustezza dello schema, quindi lo creiamo nel cluster connesso a Distributed Cloud.
Schemi di archiviazione locale predefiniti
Distributed Cloud connected viene fornito con i seguenti schemi di archiviazione locale predefiniti:
default_control_plane_node. Questo schema definisce le seguenti partizioni:- Una partizione di volume locale da 100 GB in modalità file system.
- Una partizione di volume permanente in modalità blocco che occupa lo spazio su disco libero rimanente.
default_worker_node. Questo schema definisce una partizione di volume permanente da 410 GB in modalità blocco.
Applicare uno schema di archiviazione locale a un cluster
Per applicare uno schema di archiviazione locale al cluster connesso a Distributed Cloud, esegui una delle seguenti operazioni:
Per applicare uno schema di archiviazione locale ai nodi del piano di controllo del cluster, utilizza il flag
--control-plane-node-storage-schemaquando crei il cluster. Per ulteriori informazioni, consulta Creare un cluster.Per applicare uno schema di archiviazione locale ai nodi worker del cluster, utilizza
--node-storage-schemaquando crei un pool di nodi per il cluster. Per ulteriori informazioni, consulta Creare un pool di nodi.
Distributed Cloud connected crea le partizioni definite nello schema di archiviazione locale dopo la creazione del cluster o del pool di nodi.