Questa pagina descrive come generare un inventario dei cluster per un parco risorse esistente. Un inventario dei cluster per un parco risorse ti consente di utilizzare integrazioni open source e di terze parti che utilizzano la specifica ClusterProfile.
Un inventario dei cluster è l'equivalente open source di un parco risorse: un raggruppamento logico di cluster Kubernetes e altre risorse che possono essere gestiti insieme. La specifica ClusterProfile contiene informazioni che sono un sottoinsieme di quelle di una flotta.
La funzionalità di sincronizzazione ClusterProfile è una sincronizzazione unidirezionale tra un parco risorse e un inventario dei cluster. Quando la sincronizzazione di ClusterProfile è abilitata, il parco risorse è la fonte di verità e tutte le modifiche apportate al parco risorse vengono applicate automaticamente all'inventario dei cluster dalla sincronizzazione di ClusterProfile. Le modifiche apportate direttamente alle risorse del profilo del cluster non vengono applicate al parco risorse.
Prima di iniziare
Assicurati di aver seguito i prerequisiti generali per lavorare con le flotte.
Crea una flotta o identifica una flotta esistente con cui lavorare.
Abilita la sincronizzazione di ClusterProfile
La sincronizzazione di ClusterProfile viene eseguita su un cluster all'interno del parco risorse. Questo cluster è chiamato cluster hub e può essere utilizzato per eseguire controller multi-cluster che richiedono informazioni sugli altri cluster del parco risorse. Esempi di controller multi-cluster includono i controller Argo CD e l'orchestratore multi-cluster. Ti consigliamo di non eseguire altri carichi di lavoro nel cluster hub.
Abilita la sincronizzazione di ClusterProfile su un cluster aggiungendo l'etichetta
fleet-clusterinventory-management-cluster=true
. Puoi:
- Crea un nuovo cluster da utilizzare come cluster hub. Consulta la sezione seguente per attivare la sincronizzazione di ClusterProfile su un nuovo cluster.
- Identifica un cluster nel parco risorse da utilizzare come cluster hub. Consulta la sezione seguente per abilitare la sincronizzazione di ClusterProfile in un cluster esistente.
Dopo aver abilitato la funzionalità di sincronizzazione di ClusterProfile per un parco risorse, viene creato automaticamente un profilo del cluster per ogni cluster del parco risorse utilizzando l'API ClusterProfile. Questi profili del cluster vengono creati, aggiornati ed eliminati automaticamente quando vengono apportate modifiche al parco risorse.
Abilitare la sincronizzazione di ClusterProfile in un nuovo cluster
Per creare un cluster per il cluster hub e attivare la sincronizzazione di ClusterProfile, utilizza il seguente comando:
gcloud container clusters create CLUSTER --location LOCATION --enable-fleet
--labels=fleet-clusterinventory-management-cluster=true
Sostituisci quanto segue:
- CLUSTER: il nome della risorsa
google_container_cluster
. - LOCATION: la località in cui viene creato il cluster.
Per impostazione predefinita, i profili del cluster vengono creati nello spazio dei nomi fleet-cluster-inventory
. Per modificare lo spazio dei nomi, specifica l'etichetta
fleet-clusterinventory-namespace
.
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-namespace=NAMESPACE
Sostituisci quanto segue:
- CLUSTER: il nome della risorsa
google_container_cluster
. - LOCATION: la località in cui viene creato il cluster.
- NAMESPACE: lo spazio dei nomi in cui vengono generati i profili del cluster.
Se non specificati, i profili del cluster vengono generati nello spazio dei nomi
fleet-cluster-inventory
.
Abilita la sincronizzazione di ClusterProfile su un cluster esistente
Per abilitare la sincronizzazione di ClusterProfile su un cluster esistente, utilizza il seguente comando:
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-management-cluster=true
Sostituisci quanto segue:
- CLUSTER: il nome della risorsa
google_container_cluster
. - LOCATION: la località in cui viene creato il cluster.
Per impostazione predefinita, i profili del cluster vengono creati nello spazio dei nomi fleet-cluster-inventory
. Per modificare lo spazio dei nomi, specifica l'etichetta
fleet-clusterinventory-namespace
.
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-namespace=NAMESPACE
Sostituisci quanto segue:
- CLUSTER: il nome della risorsa
google_container_cluster
. - LOCATION: la località in cui viene creato il cluster.
- NAMESPACE: lo spazio dei nomi in cui vengono generati i profili del cluster.
Se non specificati, i profili del cluster vengono generati nello spazio dei nomi
fleet-cluster-inventory
.
Verifica che la sincronizzazione di ClusterProfile sia abilitata
Verifica che la sincronizzazione di ClusterProfile sia abilitata controllando che il cluster hub
includa l'etichetta fleet-clusterinventory-management-cluster = true
. Per farlo, utilizza il comando seguente:
gcloud container clusters describe CLUSTER --location LOCATION
Sostituisci quanto segue:
- CLUSTER: il nome della risorsa
google_container_cluster
. - LOCATION: la località in cui viene creato il cluster.
L'output dovrebbe essere simile al seguente:
resourceLabels:
fleet-clusterinventory-management-cluster: 'true'
Verifica le risorse del profilo del cluster generate
Verifica che le risorse del profilo del cluster siano generate nel cluster hub utilizzando questo comando:
gcloud container clusters get-credentials CLUSTER --location LOCATION
kubectl get clusterprofiles -n fleet-cluster-inventory
Sostituisci quanto segue:
- CLUSTER: il nome della risorsa
google_container_cluster
. - LOCATION: la località in cui viene creato il cluster.
L'output dovrebbe essere simile a questo:
NAME AGE
cluster-1-us-west1 10s
cluster-2-us-west1 20s
Questo output deve includere un profilo del cluster per ogni cluster nel parco risorse.
Il nome del profilo del cluster ha il formato
MEMBERSHIP-
LOCATION.
Visualizzare i contenuti del profilo del cluster
Per visualizzare i contenuti del profilo del cluster per un cluster specifico, utilizza il seguente comando:
kubectl get clusterprofile CLUSTER-LOCATION -n fleet-cluster-inventory -o yaml
Sostituisci quanto segue:
- CLUSTER: il nome della risorsa
google_container_cluster
. - LOCATION: la località in cui viene creato il cluster.
L'output dovrebbe essere simile a questo:
apiVersion: multicluster.x-k8s.io/v1alpha1
kind: ClusterProfile
metadata:
annotations:
fleet.gke.io/membershipName: projects/123456789/locations/us-west1/memberships/cluster-1
labels:
x-k8s.io/cluster-manager: gke-fleet
name: cluster-1-us-west1
namespace: fleet-cluster-inventory
Disabilita la sincronizzazione di ClusterProfile
Disabilita la sincronizzazione di ClusterProfile nel cluster hub del parco risorse rimuovendo l'etichetta
fleet-clusterinventory-management-cluster
:
gcloud container clusters update CLUSTER --location LOCATION \
--remove-labels=fleet-clusterinventory-management-cluster
Sostituisci quanto segue:
- CLUSTER: il nome della risorsa
google_container_cluster
. - LOCATION: la località in cui viene creato il cluster.
Passaggi successivi
- Per informazioni dettagliate sull'integrazione della sincronizzazione di ClusterProfile con Argo CD, vedi Argo CD ClusterProfile Syncer.
- Multi-cluster Orchestrator utilizza i profili dei cluster. Consente di pianificare deployment multicluster e multiregionali. Per maggiori dettagli, consulta Panoramica di Multi-Cluster Orchestrator.