Soluciona problemas del controlador de configuración
En esta página, se muestra cómo resolver problemas con el controlador de configuración.
Soluciona problemas de instalación
Ninguna red con nombre predeterminado
Cuando crees la instancia del controlador de configuración, es posible que recibas un error que indica que la red predeterminada no está disponible:
Error 400: Project \"PROJECT_ID\" has no network named \"default\"., badRequest\n\n on main.tf line 35, in resource \"google_container_cluster\" \"acp_cluster\"
Este error se produce si no especificaste una red existente con la marca --network
y tu red predeterminada en Google Cloud se borra o inhabilita. De forma predeterminada, el controlador de configuración crea el clúster de GKE que respalda la instancia del controlador de configuración en la red predeterminada.
Si deseas crear la instancia en una red existente, agrega la marca --network=NETWORK
cuando crees tu instancia de controlador de configuración. Reemplaza NETWORK
por el nombre de una red existente.
Si deseas crear la instancia del controlador de configuración en la red predeterminada, vuelve a crearla con el siguiente comando:
gcloud compute networks create default --subnet-mode=auto
Para que este comando funcione, se debe habilitar las subredes automáticas con la marca --subnet-mode=auto
.
Después de volver a crear la red predeterminada, puedes omitir la marca --network
cuando crees la instancia del controlador de configuración.
Valor no válido para MasterIpv4CidrBlock
La creación del controlador de configuración usa una subred predeterminada de 172.16.0.128/28
para el CIDR de IPv4 del plano de control.
Si hay un conflicto en el bloque de IPv4 de CIDR, la creación del controlador de configuración falla con el siguiente error:
Cloud SSA\n\nError: Error waiting for creating GKE cluster: Invalid value for field PrivateClusterConfig.MasterIpv4CidrBlock: 172.16.0.128/28 conflicts with an existing subnet in one of the peered VPCs.
Si ves este error, selecciona un CIDR de IPv4 privado diferente y úsalo con la marca --master-ipv4-cidr-block
en el comando gcloud anthos config controller create
.
Para encontrar los bloques de CIDR IPv4 que ya están en uso, completa los siguientes pasos:
Busca el nombre del intercambio de tráfico:
gcloud compute networks peerings list --network=NETWORK
Reemplaza
NETWORK
por el nombre de la red que deseas buscar.El resultado es similar a este:
NAME NETWORK PEER_PROJECT PEER_NETWORK PEER_MTU IMPORT_CUSTOM_ROUTES EXPORT_CUSTOM_ROUTES STATE STATE_DETAILS gke-n210ce17a4dd120e16b6-7ebf-959a-peer default gke-prod-us-central1-59d2 gke-n210ce17a4dd120e16b6-7ebf-0c27-net False False ACTIVE [2021-06-08T13:22:07.596-07:00]: Connected.
Muestra el CIDR IPv4 que usa el intercambio de tráfico:
gcloud compute networks peerings list-routes PEERING_NAME \ --direction=INCOMING \ --network=NETWORK \ --region=REGION
Reemplaza lo siguiente:
PEERING_NAME
: El nombre del intercambio de tráfico que deseas buscarNETWORK
: el nombre de la red que deseas buscarREGION
: Es el nombre de la región en la que se encuentra tu instancia del controlador de configuración.
Soluciona problemas mientras ejecutas el controlador de configuración
No hay IP de grupos de nodos
Si ves el siguiente mensaje de error, es posible que tus grupos de nodos no tengan suficientes direcciones IP:
Can't scale up because instances in managed instance groups hosting node pools ran out of IPs
Este problema puede ocurrir si omites la marca --cluster-ipv4-cidr-block
. Cuando omites esta marca, el controlador de configuración configura de forma predeterminada el rango de CIDR del Pod /20
.
Este rango te proporciona un máximo de 16 nodos.
Si necesitas más nodos, borra la instancia del controlador de configuración, ya que no podrás modificar el bloque CIDR después de la creación. Cuando vuelvas a crear la instancia del controlador de configuración, usa el parámetro opcional --cluster-ipv4-cidr-block
y especifica el CIDR range or netmask size
.
Falta información del panel
Si no ves ningún detalle del controlador de configuración en el panel de la consola de Google Cloud, es posible que la cuenta de servicio predeterminada que usa el controlador no tenga los permisos de Google Cloud's operations suite que necesita.
Para otorgar estos permisos, usa los siguientes comandos:
# Cloud Monitoring metrics permissions
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/monitoring.metricWriter \
--condition=None \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"\
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/stackdriver.resourceMetadata.writer \
--condition=None \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"\
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/opsconfigmonitoring.resourceMetadata.writer \
--condition=None
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"
# Cloud Logging permissions
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/logging.logWriter \
--condition=None \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"
# Cloud Trace permissions\
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/cloudtrace.agent \
--condition=None \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com"
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto en el que creaste la instancia del controlador de configuración.PROJECT_NUMBER
: Es el número de tu proyecto de Google Cloud.
Soluciona problemas de componentes
Debido a que la instancia del controlador de configuración viene preinstalada con el controlador de políticas, el sincronizador de configuración y Config Connector, es posible que se produzcan problemas con estos componentes. Para obtener información sobre cómo solucionar problemas de estos componentes, consulta las siguientes páginas:
- Soluciona problemas del controlador de políticas
- Soluciona problemas del Sincronizador de configuración
- Soluciona problemas del Config Connector
En las siguientes secciones, se proporcionan consejos sobre algunos de los problemas más comunes que puedes encontrar cuando usas el controlador de configuración con estos componentes.
Errores de sincronización
Las opciones de configuración de la fuente de información (por ejemplo, un repositorio de Git o una imagen de OCI) se sincronizan con la instancia del controlador de configuración con el Sincronizador de configuración. Verifica si hay errores en este proceso de sincronización mediante el comando nomos status
:
nomos status --contexts $(kubectl config current-context)
Soluciona problemas de recursos de Config Connector
Campos inmutables y recursos
Algunos campos de los recursos subyacentes de Google Cloud son inmutables, como los de ID del proyecto o el nombre de tu red de VPC. Config Connector bloquea las ediciones en esos campos y no puede activar los cambios. Si deseas editar uno de estos campos inmutables, debes borrar el recurso original (a través de Git) antes de volver a agregarlo con tus valores preferidos.
Recursos bloqueados
A veces, es posible que los recursos no se borren de forma correcta (como lo informa nomos
status
). Para solucionar este problema, quita los finalizadores del recurso y, luego, bórralo de forma manual.
Por ejemplo, para borrar un IAMPolicyMember que se detuvo, ejecuta el siguiente comando:
kubectl patch IAMPolicyMember logging-sa-iam-permissions \
-p '{"metadata":{"finalizers":[]}}' --type=merge -n config-control
kubectl delete IAMPolicyMember logging-sa-iam-permissions -n config-control