Questa pagina è rivolta agli amministratori della piattaforma.
In questa pagina viene descritto come gestire i cluster utente utilizzando Terraform.
Prerequisiti
Devi avere un account con accesso al cluster di amministrazione. Questo account deve disporre delle autorizzazioni appropriate per gestire i cluster utente.
Questo account richiede un sottoinsieme dell'accesso amministratore della piattaforma più "accesso" al gruppo customresourcedefinitions
dell'API apiextensions.k8s.io
. Utilizzerai questo account per configurare il provider Terraform Kubernetes in modo che possa gestire le risorse correlate al cluster utente. L'account deve disporre delle seguenti autorizzazioni specifiche:
- Accesso completo agli spazi dei nomi per i cluster utente nel cluster di amministrazione, ad esempio
cluster-user-cluster2
- Accesso completo su
clusters
enodepools
inbaremetal.cluster.gke.io
- Accesso completo su
bootstrapservicebindings
,configmanagementfeaturespecs
,configmanagementbindings
,servicemeshfeaturespecs
,servicemeshbindings
inmanagementcenter.anthos.cloud.google.com
- Accesso a
list
sucustomresourcedefinitions
inapiextensions.k8s.io
- Se devi installare Anthos Config Management e Anthos Service Mesh, devi anche poter accedere al secret negli spazi dei nomi del cluster utente nel cluster di amministrazione, in modo da poter ottenere le credenziali per connetterti al cluster utente.
Scarica script Terraform
Scarica il file tarball degli script Terraform dalla scheda Assistenza di Anthos Management Center Console. Estrai gli script dal file.
tar xvf terraform-scripts.tar.gz
Inizia Terraform e configura l'autenticazione
Esistono molti modi per configurare il provider Terraform Kubernetes per l'autenticazione con l'API cluster di amministrazione. Scegli la modalità più adatta al tuo caso d'uso, documentata nella sezione Configurazione del provider. Se non disponi di autorizzazioni sufficienti nel cluster di amministrazione, contatta il tuo operatore di infrastruttura.
cd cluster
terraform init
Sostituisci (# TODO autenticazione) con uno dei metodi di autenticazione di configurazione del provider.
Creazione di un cluster utente
Specifica tutte le variabili in
cluster/terraform.tfvars
. Assicurati di specificarelogin_user_name
se non dispone di privilegi root. Esempio:admin_cluster_endpoint = "https://10.200.0.100:443" cluster_name = "user-cluster2" control_plane_nodes = [ { "address" = "10.200.0.26" }, { "address" = "10.200.0.21" }, { "address" = "10.200.0.22" }, ] control_plane_vip = "10.200.0.110" nodepool_nodes = [ { "address" = "10.200.0.23" }, { "address" = "10.200.0.25" }, { "address" = "10.200.0.24" }, ] address_pools = [ { "addresses" = ["10.200.0.111-10.200.0.119"] "name" = "pool1" }, ] bootstrap_service = ["test-bootstrapservice", "test-bootstrapservice-2"] anthos_baremetal_version = "1.9.0"
Applica le modifiche. Una volta completato il comando, viene creato il cluster utente.
terraform apply
Elimina un cluster utente
Per eliminare un cluster utente, utilizza il comando seguente:
terraform destroy
È previsto un tempo di attesa per controllare l'eliminazione delle risorse. Ti consigliamo di modificarlo aggiornando la variabile wait_duration
. Il motivo del tempo di attesa è dovuto alla mancanza di funzionalità nel provider Kubernetes (consulta questa richiesta di funzionalità).
Se la creazione di un cluster utente è in attesa a causa di alcuni problemi, non utilizzare terraform destroy
. Pulisci manualmente l'installazione:
Arresta comando terraform.
Elimina il cluster utente dalla Console Centro di gestione.
Rimuovi il file
terraform.tfstate
.
Abilita Anthos Config Management e Anthos Service Mesh
Per abilitare Anthos Config Management e Anthos Service Mesh, completa i seguenti passaggi:
Inizia Terraform per il progetto Terraform
features
.cd features terraform init
Configura l'autenticazione nel cluster di amministrazione.
Inserisci la chiave privata per il repository Git in
/etc/ssh-key/key
.Imposta
activate_acm
eactivate_asm
su vero e definisci tutte le variabili correlate. Esempio:cluster_name = "user-cluster2" admin_cluster_endpoint = "https://10.200.0.100:443" user_cluster_ca_certificate = "" activate_acm = true version_acm = "1.7.1" enable_acm_policy_controller = true acm_git_repo = { git_repo_url = "git@github.com:example/example.git" git_repo_branch = "main" git_policy_dir = "." git_secret_type = "ssh" } activate_asm = true version_asm = "1.9.6-asm.1"
Applica le modifiche.
terraform apply
(Facoltativo) Modifica il tempo di attesa per Anthos Service Mesh, se necessario. Puoi farlo aggiornando la variabile
wait_duration
.
Disabilita Anthos Config Management e Anthos Service Mesh
Prima di eliminare Anthos Config Management, ti consigliamo di eliminare tutte le risorse sincronizzate da Anthos Config Management nel cluster.
Elimina il secret git-creds
e config-management-system
da tfstate
. L'operatore Anthos Config Management è responsabile dell'eliminazione delle risorse all'interno del cluster utente, dopo che ConfigManagementBinding
e ConfigManagementFeatureSpec
sono stati eliminati.
Anthos Config Management non viene immediatamente disinstallato in Management Center; l'eliminazione dell'operatore può richiedere 5-10 minuti.
terraform state rm kubernetes_namespace.config-management-system
terraform state rm kubernetes_secret.git-creds
terraform destroy
Problemi noti
Al momento non è possibile aggiornare un cluster. Quando avvia un aggiornamento, il provider tenta di eliminare i finalizzatori alle risorse esistenti a causa di un problema 1378.
Il comando destroy sul cluster utente e Anthos Service Mesh si basa su un tempo di attesa a causa del problema 1357. Potrebbe essere necessario regolare il tempo di attesa a seconda delle dimensioni del cluster.
Il cluster risulta pronto in Terraform più velocemente di quanto indicato nel Centro di gestione (bloccato dal supporto dei dati di
kubernetes_manifest
da parte del provider).L'eliminazione di Anthos Config Management mediante l'utilizzo di
terraform destroy
richiede prima la rimozione delle risorse da tfstate. Per maggiori dettagli, vedi Disattiva Anthos Config Management e Anthos Service Mesh. Anthos Config Management non viene immediatamente disinstallato in Management Center. L'operazione può richiedere circa 5-10 minuti.Il comando
terraform destroy
elimina lo spazio dei nomi del cluster utente. Gli amministratori della piattaforma non dispongono dei diritti per eliminare gli spazi dei nomi nel cluster di amministrazione. Pertanto il comando potrebbe non riuscire.
Limitazioni
Il codice corrente consente di creare un unico cluster utente.
Il codice corrente non include la configurazione di OIDC. Questa parte richiede funzionalità di patch sul provider Kubernetes sulla risorsa kubernetes_manifest.