Esta página está destinada a los administradores de la plataforma.
En esta página, se describe cómo administrar clústeres de usuarios con Terraform.
Prerequisites
Debes tener una cuenta con acceso al clúster de administrador. Esta cuenta debe tener los permisos correctos para administrar los clústeres de usuarios.
Esta cuenta necesita un subconjunto del acceso del administrador de la plataforma más el acceso de “list” en customresourcedefinitions
en el grupo de la API apiextensions.k8s.io
. Usarás esta cuenta para configurar el proveedor de Kubernetes de Terraform, de modo que pueda administrar los recursos relacionados con el clúster de usuario. La cuenta debe tener los siguientes permisos específicos:
- Acceso completo a los espacios de nombres de los clústeres de usuario en el clúster de administrador, por ejemplo,
cluster-user-cluster2
- Acceso completo en
clusters
ynodepools
enbaremetal.cluster.gke.io
- Acceso completo en
bootstrapservicebindings
,configmanagementfeaturespecs
,configmanagementbindings
,servicemeshfeaturespecs
,servicemeshbindings
enmanagementcenter.anthos.cloud.google.com
- Acceso
list
encustomresourcedefinitions
enapiextensions.k8s.io
- Si necesitas instalar Anthos Config Management y Anthos Service Mesh, también necesitas acceso para obtener el secreto en los espacios de nombres del clúster de usuario en el clúster de administrador a fin de que puedas obtener las credenciales para conectarte al clúster de usuario.
Descarga secuencias de comandos de Terraform
Descarga el archivo comprimido de las secuencias de comandos de Terraform desde la pestaña Asistencia de la consola de Anthos Management Center. Extrae las secuencias de comandos del archivo.
tar xvf terraform-scripts.tar.gz
Inicia Terraform y configura la autenticación
Hay muchas formas de configurar el proveedor de Kubernetes de Terraform para realizar la autenticación con la API del clúster de administrador. Elige la forma que mejor se adapte a tu caso de uso en Provider Setup. Si no tienes suficientes permisos en el clúster de administrador, comunícate con tu operador de infraestructura.
cd cluster
terraform init
Reemplaza (# autenticación TODO) por uno de los métodos de autenticación de Provider Setup.
Crear un clúster de usuario
Especifica todas las variables en
cluster/terraform.tfvars
. Asegúrate de especificarlogin_user_name
si no tiene privilegios raíz. Ejemplo: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"
Aplique los cambios Una vez que se complete el comando de forma correcta, se crea el clúster de usuario.
terraform apply
Destruye un clúster de usuario
Usa el siguiente comando para destruir un clúster de usuario:
terraform destroy
Se configura un tiempo de espera para controlar la destrucción de los recursos. Es posible que quieras ajustarlo para actualizar la variable wait_duration
. El motivo del tiempo de espera se debe a que faltan funciones en el proveedor de Kubernetes (consulta esta solicitud de función).
Cuando la creación de un clúster de usuario esté pendiente debido a algunos problemas, no uses terraform destroy
. En su lugar, limpia la instalación de forma manual:
Detén el comando de Terraform.
Borra el clúster de usuario de la consola del centro de administración
Quita el archivo
terraform.tfstate
.
Habilita Anthos Config Management y Anthos Service Mesh
Para habilitar Anthos Config Management y Anthos Service Mesh, completa los siguientes pasos:
Inicia Terraform para el proyecto
features
de Terraform.cd features terraform init
Configura la autenticación en el clúster de administrador.
Coloca la clave privada en el repositorio de Git en
/etc/ssh-key/key
.Configura
activate_acm
yactivate_asm
como verdadero y define todas las variables relacionadas. Ejemplo: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"
Aplique los cambios
terraform apply
Ajusta el tiempo de espera para Anthos Service Mesh (opcional). Para hacerlo, actualiza la variable
wait_duration
.
Inhabilita Anthos Config Management y Anthos Service Mesh
Antes de borrar Anthos Config Management, te recomendamos que borres todos los recursos sincronizados con Anthos Config Management en el clúster.
Borra el secreto git-creds
y config-management-system
de tfstate
. El operador de Anthos Config Management se encarga de borrar recursos dentro del clúster de usuario, después de que se borran ConfigManagementBinding
y ConfigManagementFeatureSpec
.
Anthos Config Management no aparece como desinstalado en Management Center de inmediato; el operador puede tardar entre 5 y 10 minutos en borrar todo.
terraform state rm kubernetes_namespace.config-management-system
terraform state rm kubernetes_secret.git-creds
terraform destroy
Problemas conocidos
Por el momento, no es posible actualizar un clúster. Cuando se lanza una actualización, el proveedor intenta borrar los finalizadores en los recursos existentes debido al problema 1378.
El comando de destrucción en el clúster de usuario y Anthos Service Mesh se basa en el tiempo de espera debido al problema 1357. Es posible que debas ajustar el tiempo de espera según el tamaño de tu clúster.
El clúster se muestra listo en Terraform más rápido de lo que se muestra en el centro de administración de Anthos (bloqueado por la asistencia de datos de
kubernetes_manifest
por el proveedor).La eliminación de Anthos Config Management mediante
terraform destroy
requiere que primero se quiten los recursos de tfstate. Consulta Inhabilita Anthos Config Management y Anthos Service Mesh para obtener más detalles. Anthos Config Management no aparece como desinstalado en Management Center de inmediato. El operador puede tardar entre 5 y 10 minutos en borrar todo.El comando
terraform destroy
borra el espacio de nombres del clúster de usuario. Los administradores de la plataforma no tienen derechos para borrar espacios de nombres en el clúster de administrador. Por lo tanto, el comando podría fallar.
Limitaciones
El código actual te permite crear un único clúster de usuario.
En el código actual, no se incluye la configuración de OIDC. En esta parte, se requieren capacidades de parche en el proveedor de Kubernetes en el recurso kubernetes_manifest.