Google Distributed Cloud (GDC) air-gapped ti consente di gestire i cluster Kubernetes dopo la creazione utilizzando GKE on GDC. Questo servizio ti consente di adattarti ai requisiti in continua evoluzione dei carichi di lavoro dei container e di mantenere i nodi del cluster esistenti con i seguenti flussi di lavoro:
Collega e scollega i cluster condivisi ai progetti: collega e scollega il cluster condiviso a più progetti dopo la creazione del cluster per modificare l'ambito dei carichi di lavoro del cluster condiviso.
Visualizza i cluster nella tua organizzazione: elenca i cluster nella tua organizzazione per monitorare ciò che è disponibile per i 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 del gruppo di amministratori della piattaforma che gestiscono i carichi di lavoro dei container ospitati in cluster che si estendono su più progetti e agli sviluppatori del gruppo di operatori delle applicazioni responsabili della creazione di carichi di lavoro delle applicazioni all'interno di un singolo progetto. Per saperne di più, consulta la sezione Pubblico della documentazione di 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 i ruoli IAM
Devi disporre di ruoli specifici per ottenere le autorizzazioni necessarie per gestire il cluster Kubernetes. I ruoli richiesti dipendono dal fatto che tu stia lavorando all'interno di un cluster condiviso con ambito a livello di organizzazione o di un cluster standard con ambito a livello di progetto. Per saperne di più, consulta la sezione Configurazione dei cluster Kubernetes.
Ruoli del cluster condiviso
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 eseguire:
Project Creator (
project-creator): crea o visualizza le risorse del progetto. Questo ruolo è necessario per collegare un cluster condiviso a un progetto.Project Editor (
project-editor): elimina, aggiorna o visualizza le risorse del progetto. Questo ruolo è necessario per scollegare un cluster condiviso da un progetto.User Cluster Viewer (
user-cluster-viewer): visualizza il cluster condiviso e le relative risorse. Questo ruolo fornisce l'accesso alle API del piano di gestione per il cluster condiviso ospitato nel server API di gestione.
Questi ruoli non sono associati a uno spazio dei nomi del progetto.
Ruoli del 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 piano di gestione 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.
Sposta i cluster nella gerarchia dei progetti
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.
Collega un 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 Collega 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 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 di 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 l'associazione. Ogni risorsaProjectBindingpuò essere mappata a un solo cluster. Se un progetto richiede l'accesso a più cluster, è necessario creare unProjectBindingunivoco per ogni cluster.
Applica la nuova associazione del progetto:
terraform apply
Scollega un progetto da un cluster condiviso
Scollegare un progetto da un cluster condiviso può introdurre modifiche significative, ad esempio 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 il progetto da scollegare 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 associazione 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.
Visualizza 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 dei progetti, seleziona il progetto o l'organizzazione.
I cluster standard sono limitati al progetto e i cluster condivisi sono limitati all'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
Visualizza 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 all'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 ogni 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 app
- Configurazioni dei cluster Kubernetes