Questa pagina è rivolta agli amministratori di piattaforma.
Questa pagina descrive come gestire i cluster utente utilizzando Terraform.
Prerequisiti
Devi avere un account con accesso al cluster di amministrazione. Questo account deve avere le autorizzazioni corrette per gestire i cluster utente.
Questo account richiede un sottoinsieme dell'accesso dell'amministratore della piattaforma più "list" su
customresourcedefinitions
nel gruppo API apiextensions.k8s.io
. Utilizzerai questo account per configurare il provider Kubernetes Terraform in modo che possa gestire le risorse relative al cluster utente. L'account deve avere le seguenti autorizzazioni specifiche:
- Accesso completo agli spazi dei nomi per i cluster utenti 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 accedere al secret per gli spazi dei nomi dei cluster utente nel cluster di amministrazione, in modo da ottenere le credenziali per la connessione al cluster utente.
Scarica script Terraform
Scarica il file tarball degli script Terraform dalla scheda Support (Assistenza) della console Anthos Management Center. Estrai script dal file.
tar xvf terraform-scripts.tar.gz
Avvia Terraform e configura l'autenticazione
Esistono diversi modi per configurare il provider Kubernetes Terraform in modo che esegua l'autenticazione con l'API del cluster di amministrazione. Scegli la modalità più adatta al tuo caso d'uso documentato in Configurazione provider. Se non disponi di autorizzazioni sufficienti nel cluster di amministrazione, contatta l'operatore dell'infrastruttura.
cd cluster
terraform init
Sostituisci (# (# serve authentication) con uno dei metodi di autenticazione di provider Setup (Configurazione provider).
Creazione di un cluster utente
Specifica tutte le variabili in
cluster/terraform.tfvars
. Assicurati di specificarelogin_user_name
se non ha privilegi di utente 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
Distruzione di un cluster utente
Usa il comando seguente per eliminare un cluster utente:
terraform destroy
Un tempo di attesa è impostato per controllare l'eliminazione delle risorse. Potresti volerla aggiornare aggiornando la variabile wait_duration
. Il motivo del tempo di attesa è dovuto a funzionalità mancanti nel provider Kubernetes (consulta questa richiesta di funzionalità).
Quando la creazione di un cluster utente è in attesa a causa di alcuni problemi, non utilizzare terraform destroy
. Esegui invece la pulizia manuale dell'installazione:
Interrompi il comando terraform.
Elimina il cluster utente dalla console del Centro di gestione.
Rimuovi il file
terraform.tfstate
.
Abilita Anthos Config Management e Anthos Service Mesh
Per attivare Anthos Config Management e Anthos Service Mesh, completa i seguenti passaggi:
Avvia Terraform per il progetto
features
Terraform.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 true 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. A tale scopo, puoi aggiornare la variabile
wait_duration
.
Disattiva 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 ha il compito di eliminare le risorse all'interno del cluster utente, dopo l'eliminazione di ConfigManagementBinding
e ConfigManagementFeatureSpec
.
Anthos Config Management non viene immediatamente visualizzato come disinstallato nel Centro di gestione. L'eliminazione dei dati potrebbe richiedere 5-10 minuti.
terraform state rm kubernetes_namespace.config-management-system
terraform state rm kubernetes_secret.git-creds
terraform destroy
Problemi noti
Attualmente non è possibile aggiornare un cluster. Quando si avvia un aggiornamento, il provider tenta di eliminare i finali nelle risorse esistenti a causa del problema 1378.
Il comando destroy sul cluster utente e Anthos Service Mesh si basa su un tempo di attesa dovuto al problema 1357. Potresti dover modificare il tempo di attesa a seconda delle dimensioni del cluster.
Il cluster viene visualizzato in Terraform più rapidamente rispetto a quanto visualizzato nel Centro di gestione (blocco supportato dal provider di dati di
kubernetes_manifest
).L'eliminazione di Anthos Config Management mediante
terraform destroy
richiede prima la rimozione delle risorse da tfstate. Per maggiori dettagli, vedi Disabilitare Anthos Config Management e Anthos Service Mesh. Anthos Config Management non viene immediatamente mostrato come disinstallato nel Centro di gestione. L'operazione potrebbe richiedere circa 5-10 minuti per eliminare tutto.Il comando
terraform destroy
elimina lo spazio dei nomi del cluster utente. Gli amministratori della piattaforma non hanno il diritto di eliminare gli spazi dei nomi nel cluster di amministrazione. Di conseguenza, il comando potrebbe non riuscire.
Limitazioni
Il codice corrente consente di creare un cluster di utenti singolo.
Il codice corrente non include la configurazione dell'OIDC. Questa parte richiede funzionalità di patch sul provider Kubernetes sulla risorsa kubernetes_manifest.