Google Distributed Cloud (GDC) con air gap ti consente di gestire i cluster Kubernetes dopo la creazione utilizzando GKE su GDC. Questo servizio ti consente di adattarti ai requisiti in evoluzione dei carichi di lavoro dei container e di gestire i nodi del cluster esistenti con i seguenti workflow:
Collega e scollega cluster condivisi ai progetti: collega e scollega il cluster condiviso a più progetti dopo la creazione del cluster per modificare l'ambito dei workload del cluster condiviso.
Visualizza i cluster nella tua organizzazione: elenca i cluster nella tua organizzazione per monitorare ciò che è disponibile per i tuoi carichi di lavoro dei container.
Elenca le versioni di Kubernetes: visualizza la versione di Kubernetes del cluster per conoscere le funzionalità del cluster corrispondenti alle ultime release di Kubernetes.
Visualizza le proprietà del cluster aggiornabili: visualizza le proprietà disponibili per la modifica nella definizione della risorsa personalizzata
Cluster.
Questo documento è destinato agli amministratori IT all'interno del gruppo di amministratori della piattaforma che gestiscono i workload dei container ospitati in cluster che si estendono su più progetti e agli sviluppatori all'interno del gruppo di operatori delle applicazioni che sono responsabili della creazione dei workload delle applicazioni all'interno di un singolo progetto. Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per GDC con air gap.
Prima di iniziare
Per completare le attività descritte in questo documento, devi richiedere le autorizzazioni necessarie e preparare l'ambiente.
Richiedi ruoli IAM
Devi disporre di ruoli specifici per ottenere le autorizzazioni necessarie per gestire il tuo cluster Kubernetes. I ruoli necessari dipendono dal fatto che tu stia lavorando all'interno di un cluster condiviso con ambito organizzazione o di un cluster standard con ambito progetto. Per saperne di più, consulta Configurazioni del cluster Kubernetes.
Ruoli cluster condivisi
Per visualizzare e gestire il cluster Kubernetes condiviso e le relative risorse, chiedi all'amministratore IAM dell'organizzazione di concederti i seguenti ruoli in base all'attività da svolgere:
Project Creator (
project-creator): crea o visualizza le risorse del progetto. Questo ruolo è necessario per collegare un cluster condiviso a un progetto.Editor progetto (
project-editor): elimina, aggiorna o visualizza le risorse del progetto. Questo ruolo è necessario per scollegare un cluster condiviso da un progetto.Visualizzatore cluster utente (
user-cluster-viewer): visualizza il cluster condiviso e le relative risorse. Questo ruolo fornisce l'accesso alle API del management plane per il cluster condiviso ospitato nel server API Management.
Questi ruoli non sono associati a uno spazio dei nomi del progetto.
Ruoli cluster standard
Per visualizzare il cluster Kubernetes standard e le relative risorse, chiedi all'amministratore IAM del progetto di concederti il ruolo Visualizzatore cluster standard (standard-cluster-viewer). Questo ruolo fornisce l'accesso alle API del management plane per il cluster standard ospitato nel server API di gestione.
Questo ruolo è associato allo spazio dei nomi del progetto.
prepara l'ambiente
Per eseguire comandi su un cluster Kubernetes utilizzando l'API, assicurati di disporre delle seguenti risorse:
Individua il nome del cluster Kubernetes o chiedi a un membro del gruppo di amministratori della piattaforma qual è il nome del cluster.
Utilizza il nome del cluster Kubernetes per sostituire
CLUSTER_NAMEin queste istruzioni.Accedi e genera il file kubeconfig per il server API di gestione.
Utilizza il percorso kubeconfig del server API di gestione per sostituire
MANAGEMENT_API_SERVERin queste istruzioni.
Spostare i cluster nella gerarchia del progetto
I progetti forniscono un raggruppamento logico delle istanze di servizio. Puoi aggiungere e rimuovere cluster Kubernetes condivisi dalla gerarchia dei progetti GDC per raggruppare i servizi in modo appropriato. Non puoi spostare i cluster standard nella gerarchia dei progetti perché sono limitati a un singolo progetto.
Allegare il progetto a un cluster condiviso
Quando crei un cluster condiviso dalla console GDC, devi collegare almeno un progetto prima di poter eseguire il deployment dei carichi di lavoro dei container. Se devi aggiungere altri progetti a un cluster esistente, completa i seguenti passaggi:
Console
- Nel menu di navigazione, seleziona Kubernetes Engine > Cluster.
- Nell'elenco dei cluster, fai clic sul nome del cluster per aprire la pagina Dettagli cluster.
- Seleziona Allega progetto.
- Nell'elenco dei progetti disponibili, fai clic sul nome del progetto da collegare al cluster.
- Fai clic su Salva.
API
Crea una nuova risorsa personalizzata
ProjectBindingper il tuo cluster:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectBinding metadata: name: CLUSTER_NAME-PROJECT_NAME namespace: platform labels: resourcemanager.gdc.goog/projectbinding-for-user-project: "true" spec: clusterRef: name: CLUSTER_NAME selector: nameSelector: matchNames: - PROJECT_NAME EOFSostituisci quanto segue:
MANAGEMENT_API_SERVER: il percorso kubeconfig del server API zonale.CLUSTER_NAME: il nome del cluster.PROJECT_NAME: il nome del progetto a cui associare il cluster. Ogni risorsaProjectBindingpuò essere mappata a un solo cluster. Se un progetto richiede l'accesso a più cluster, è necessario creare unProjectBindingunivoco per ogni cluster.
Terraform
In un file di configurazione Terraform, inserisci il seguente snippet di codice per creare la risorsa personalizzata
ProjectBinding:provider "kubernetes" { config_path = "MANAGEMENT_API_SERVER" } resource "kubernetes_manifest" "PROJECT_BINDING_RESOURCE_NAME" { manifest = { "apiVersion" = "resourcemanager.gdc.goog/v1" "kind" = "ProjectBinding" "metadata" = { "name" = "CLUSTER_NAME-PROJECT_NAME" "namespace" = "platform" "labels" = { "resourcemanager.gdc.goog/projectbinding-for-user-project" = "true" } } "spec" = { "clusterRef" = { "name" = "CLUSTER_NAME" } "selector" = { "nameSelector" = { "matchNames" = [ "PROJECT_NAME", ] } } } } }Sostituisci quanto segue:
MANAGEMENT_API_SERVER: il percorso kubeconfig del server API zonale.PROJECT_BINDING_RESOURCE_NAME: il nome della risorsa Terraform dell'associazione del progetto, ad esempioCLUSTER_NAME-PROJECT_NAME-binding. Questo nome viene utilizzato da Terraform per identificare l'associazione del progetto e non viene utilizzato da GDC.CLUSTER_NAME: il nome del cluster. Ogni risorsaProjectBindingpuò essere mappata a un solo cluster. Se un progetto richiede l'accesso a più cluster, è necessario creare unProjectBindingunivoco per ogni cluster.PROJECT_NAME: il nome del progetto a cui eseguire il binding. Ogni risorsaProjectBindingpuò essere mappata a un solo cluster. Se un progetto richiede l'accesso a più cluster, deve essere creato unProjectBindingunivoco per ogni cluster.
Applica il nuovo binding del progetto:
terraform apply
Scollegare il progetto da un cluster condiviso
Il distacco di un progetto da un cluster condiviso può introdurre modifiche significative, come l'eliminazione dei carichi di lavoro in esecuzione nel cluster. Assicurati di comprendere le conseguenze prima di scollegare un progetto da un cluster condiviso.
Per scollegare un progetto da un cluster condiviso esistente, completa i seguenti passaggi:
Console
- Nel menu di navigazione, seleziona Kubernetes Engine > Cluster.
- Fai clic sul cluster nell'elenco dei cluster per aprire la pagina Dettagli cluster.
- Fai clic su delete Scollega per scollegare il progetto dal cluster.
API
Elimina la risorsa
ProjectBindingche collega il progetto e il cluster:kubectl --kubeconfig MANAGEMENT_API_SERVER delete projectbinding \ CLUSTER_NAME-PROJECT_NAME -n platformSostituisci quanto segue:
MANAGEMENT_API_SERVER: il percorso kubeconfig del server API zonale.CLUSTER_NAME: il nome del cluster.PROJECT_NAME: il nome del progetto da scollegare dal cluster.
Terraform
Elimina la risorsa di binding del progetto:
terraform destroy -target kubernetes_manifest.PROJECT_BINDING_RESOURCE_NAMESostituisci
PROJECT_BINDING_RESOURCE_NAMEcon il nome della risorsa Terraform dell'associazione del progetto da eliminare, ad esempioCLUSTER_NAME-PROJECT_NAME-binding. Questo nome viene utilizzato da Terraform per identificare l'associazione del progetto e non viene utilizzato da GDC.
Visualizzare tutti i cluster in un progetto o in un'organizzazione
Puoi visualizzare tutti i cluster Kubernetes disponibili in un progetto o in un'organizzazione, inclusi i relativi stati, le versioni di Kubernetes e altri dettagli.
Poiché i cluster Kubernetes sono una risorsa di zona, puoi elencare i cluster solo per zona.
Console
Nel selettore di progetti, seleziona il tuo progetto o la tua organizzazione.
I cluster standard hanno ambito progetto e i cluster condivisi hanno ambito organizzazione. Seleziona l'ambito corretto per visualizzare il tipo di cluster Kubernetes appropriato.
Nel menu di navigazione, seleziona Kubernetes Engine > Cluster.
Vengono visualizzati tutti i cluster condivisi disponibili nell'organizzazione con i relativi stati e altre informazioni:

gdcloud
Elenca i cluster Kubernetes disponibili nella zona:
gdcloud clusters listL'output è simile al seguente:
CLUSTERREF.NAME READINESS.STATE TYPE CURRENTVERSION.USERCLUSTERVERSION CURRENTVERSION.SUPPORT.STATUS user-vm-1 Ready user 1.15.0-gdch.394225-1.28.15-gke.1200 In Support user-vm-2 Ready user 1.15.0-gdch.394225-1.29.12-gke.800 In Support
API
Elenca i cluster Kubernetes disponibili nella zona:
kubectl get clusters.cluster.gdc.goog -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERSostituisci quanto segue:
MANAGEMENT_API_SERVER: il percorso kubeconfig del server API zonale.KUBERNETES_CLUSTER_NAMESPACE: lo spazio dei nomi del cluster. Per i cluster condivisi, utilizza lo spazio dei nomiplatform. Per i cluster standard, utilizza lo spazio dei nomi del progetto del cluster.
L'output è simile al seguente:
NAME STATE K8S VERSION user-vm-1 Running 1.25.10-gke.2100 user-test Running 1.26.5-gke.2100
Elenca le versioni di Kubernetes disponibili per un cluster
Puoi elencare le versioni di Kubernetes disponibili nella tua zona GDC per verificare le funzionalità di Kubernetes a cui puoi accedere nel cluster.
Elenca le versioni di Kubernetes disponibili nella tua zona:
kubectl get userclustermetadata.upgrade.private.gdc.goog \ -o=custom-columns=K8S-VERSION:.spec.kubernetesVersion \ --kubeconfig MANAGEMENT_API_SERVERSostituisci
MANAGEMENT_API_SERVERcon il file kubeconfig del server API zonale del cluster.L'output è simile al seguente:
K8S-VERSION 1.25.10-gke.2100 1.26.5-gke.2100 1.27.4-gke.500
Visualizzare le proprietà aggiornabili
Per ogni cluster Kubernetes, è disponibile un insieme di proprietà da modificare dopo la creazione. Puoi modificare solo le proprietà modificabili che si trovano in spec della risorsa personalizzata Cluster. Non tutte le proprietà in spec sono idonee per
l'aggiornamento dopo il provisioning del cluster. Per visualizzare queste proprietà aggiornabili,
completa i seguenti passaggi:
Console
Nel menu di navigazione, seleziona Kubernetes Engine > Cluster.
Nell'elenco dei cluster Kubernetes, fai clic sul nome di un cluster per visualizzarne le proprietà.
Le proprietà modificabili hanno un'icona edit Modifica.
API
Visualizza l'elenco delle proprietà per la specifica
Clustere i valori validi corrispondenti a ciascuna proprietà:kubectl explain clusters.cluster.gdc.goog.spec \ --kubeconfig MANAGEMENT_API_SERVERSostituisci
MANAGEMENT_API_SERVERcon il percorso kubeconfig del server API zonale.L'output è simile al seguente:
KIND: Cluster VERSION: cluster.gdc.goog/v1 RESOURCE: spec <Object> DESCRIPTION: <empty> FIELDS: clusterNetwork <Object> The cluster network configuration. If unset, the default configurations with pod and service CIDR sizes are used. Optional. Mutable. initialVersion <Object> The GDC air-gapped version information of the user cluster during cluster creation. Optional. Default to use the latest applicable version. Immutable. loadBalancer <Object> The load balancer configuration. If unset, the default configuration with the ingress service IP address size is used. Optional. Mutable. nodePools <[]Object> The list of node pools for the cluster worker nodes. Optional. Mutable. releaseChannel <Object> The release channel a cluster is subscribed to. When a cluster is subscribed to a release channel, GDC maintains the cluster versions for users. Optional. Mutable.Aggiorna queste impostazioni utilizzando la console GDC o l'interfaccia a riga di comando kubectl. Ad esempio, puoi ridimensionare un node pool.
Passaggi successivi
- Panoramica del cluster Kubernetes
- Alta affidabilità per le tue app
- Configurazioni del cluster Kubernetes