Generare l'inventario per le integrazioni di terze parti

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

  1. Assicurati di aver seguito i prerequisiti generali per lavorare con le flotte.

  2. 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:

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