Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
Comparación de la capacidad de EKS para Argo CD con Argo CD autoadministrado
La capacidad de EKS para Argo CD proporciona una experiencia de Argo CD completamente administrada que se ejecuta en EKS. Para obtener una comparación general entre las capacidades de EKS y las soluciones autoadministradas, consulte Consideraciones sobre las capacidades de EKS. Este tema se centra en las diferencias específicas de Argo CD, lo que incluye la autenticación, la administración de varios clústeres y la compatibilidad con características ascendentes.
Diferencias con Argo CD ascendente
La capacidad de EKS para Argo CD se basa en Argo CD ascendente, pero difiere en la forma en que se accede a él, se configura y se integra con los servicios de AWS.
RBAC y autenticación: la capacidad incluye tres roles de RBAC (administrador, editor y lector) y utiliza AWS Identity Center para la autenticación en lugar de la autenticación integrada de Argo CD. Configure las asignaciones de roles a través del parámetro rbacRoleMapping de la capacidad para asignar grupos de Identity Center a roles de Argo CD, no a través del ConfigMap argocd-rbac-cm de Argo CD. La interfaz de usuario de Argo CD se aloja con su propia URL directa (búsquela en la consola de EKS, en la pestaña Capacidades del clúster), y el acceso a la API utiliza la autenticación y la autorización de AWS a través de IAM.
Configuración de clústeres: esta funcionalidad no configura automáticamente las topologías de clústeres locales ni radiales. Usted configura los clústeres de destino de la implementación y las entradas de acceso de EKS. La capacidad solo admite clústeres de Amazon EKS como destinos de implementación que utilizan ARN de clústeres de EKS (no URL de servidores de API de Kubernetes). La capacidad no agrega automáticamente el clúster local (kubernetes.default.svc) como destino de implementación. Para implementar en el mismo clúster en el que se creó la capacidad, registre ese clúster de forma explícita mediante su ARN.
Acceso remoto simplificado a los clústeres: esta capacidad simplifica las implementaciones de varios clústeres al utilizar las entradas de acceso de EKS para conceder a Argo CD acceso a los clústeres remotos, lo que elimina la necesidad de configurar roles de IAM para cuentas de servicio (IRSA) o establecer suposiciones de roles de IAM entre cuentas. La capacidad también proporciona un acceso transparente a clústeres de EKS totalmente privados sin necesidad de emparejamiento de VPC ni una configuración de red especializada. AWS administra automáticamente la conectividad entre la capacidad de Argo CD y los clústeres remotos privados.
Integración directa de servicios de AWS: esta capacidad proporciona una integración directa con los servicios de AWS mediante los permisos de IAM del rol de capacidad. Puede hacer referencia a repositorios de CodeCommit, gráficos de Helm de ECR y CodeConnections directamente en los recursos de la aplicación sin necesidad de crear configuraciones de repositorio. Esto simplifica la autenticación y elimina la necesidad de administrar credenciales independientes para los servicios de AWS. Para obtener más información, consulte Configuración del acceso al repositorio.
Compatibilidad con espacios de nombres: la capacidad requiere que especifique un único espacio de nombres en el que se deben crear los recursos personalizados Aplicación, ApplicationSet y AppProject de Argo CD.
nota
Esta restricción del espacio de nombres solo se aplica a los recursos personalizados propios de Argo CD (Aplicación, ApplicationSet, AppProject). Las cargas de trabajo de la aplicación se pueden implementar en cualquier espacio de nombres de cualquier clúster de destino. Por ejemplo, si crea la capacidad con el espacio de nombres argocd, todos los recursos personalizados Aplicación se deben crear en el espacio de nombres argocd, pero esas Aplicaciones pueden implementar cargas de trabajo en default, production, staging o en cualquier otro espacio de nombres.
nota
La capacidad administrada tiene requisitos específicos para el uso de la interfaz de línea de comandos (CLI) y la configuración de AppProject:
-
Al utilizar la CLI de Argo CD, especifique las aplicaciones con el prefijo del espacio de nombres:
argocd app sync namespace/appname -
Los recursos AppProject deben especificar
.spec.sourceNamespacespara definir qué espacios de nombres puede supervisar el proyecto para los recursos de tipo Aplicación (por lo general, el espacio de nombres que especificó al crear la capacidad) -
Las anotaciones de seguimiento de recursos utilizan el formato:
namespace_appname:group/kind:namespace/name
Características no compatibles: las siguientes características no están disponibles en la capacidad administrada:
-
Complementos de administración de configuración (CMP) para la generación de manifiestos personalizados
-
Scripts de Lua personalizados para evaluar el estado de los recursos (se admiten las comprobaciones de estado integradas para recursos estándar)
-
Controlador de notificaciones
-
Proveedores de SSO personalizados (solo se admite AWS Identity Center, lo que incluye la identidad federada de terceros a través de AWS Identity Center)
-
Extensiones de interfaz de usuario y banners personalizados
-
Acceso directo a
argocd-cm,argocd-paramsy otros ConfigMaps de configuración -
Modificación del tiempo de espera de sincronización (fijado en 120 segundos)
Compatibilidad: las aplicaciones y los ApplicationSets funcionan de forma idéntica a Argo CD ascendente sin cambios en los manifiestos. La capacidad utiliza las mismas API y CRD de Kubernetes, por lo que herramientas como kubectl funcionan de la misma manera. La capacidad es totalmente compatible con aplicaciones y ApplicationSets, flujos de trabajo de GitOps con sincronización automática, implementaciones de varios clústeres, políticas de sincronización (automatizadas, de poda, de autorreparación), enlaces y ondas de sincronización, evaluación del estado de los recursos de Kubernetes estándar, capacidades de reversión, orígenes de repositorios de Git (HTTPS y SSH), manifiestos de Helm, Kustomize y sin formato de YAML, credenciales de la aplicación de GitHub, proyectos para multitenencia y exclusiones e inclusiones de recursos.
Uso de la CLI de Argo CD con la capacidad administrada
La CLI de Argo CD funciona igual que Argo CD ascendente para la mayoría de las operaciones, pero la autenticación y el registro de clústeres son diferentes.
Requisitos previos
Instale la CLI de Argo CD según las instrucciones de instalación ascendente
Configuración
Configure la CLI mediante variables de entorno:
-
Obtenga la URL del servidor de Argo CD desde la consola de EKS (en la pestaña Capacidades del clúster) o mediante la CLI de AWS. Se debe eliminar el prefijo
https://:export ARGOCD_SERVER=$(aws eks describe-capability \ --cluster-namemy-cluster\ --capability-namemy-argocd\ --query 'capability.configuration.argoCd.serverUrl' \ --output text \ --regionregion-code| sed 's|^https://||') -
Genere un token de cuenta desde la interfaz de usuario de Argo CD (Configuración → Cuentas → Administración → Generar nuevo token) y configúrelo como una variable de entorno:
export ARGOCD_AUTH_TOKEN="your-token-here"
importante
Esta configuración utiliza el token de la cuenta de administrador para los flujos de trabajo de configuración y desarrollo iniciales. Para casos de uso de producción, utilice tokens y roles del ámbito del proyecto para seguir el principio de privilegio mínimo. Para obtener más información sobre la configuración de RBAC y roles del proyecto, consulte Configuración de los permisos de Argo CD.
-
Establezca la opción de gRPC requerida:
export ARGOCD_OPTS="--grpc-web"
Con estas variables de entorno configuradas, puede utilizar la CLI de Argo CD sin el comando argocd login.
Diferencias clave
La capacidad administrada tiene las siguientes limitaciones de CLI:
-
Los comandos
argocd adminno son compatibles (requieren el acceso directo a pods). -
argocd loginno es compatible (utilice tokens de proyecto o cuenta como alternativa). -
argocd cluster addrequiere el indicador--aws-cluster-namecon el ARN del clúster de EKS.
Ejemplo: registro de un clúster
Registre un clúster de EKS para la implementación de la aplicación:
# Get the cluster ARN CLUSTER_ARN=$(aws eks describe-cluster \ --namemy-cluster\ --query 'cluster.arn' \ --output text) # Register the cluster argocd cluster add $CLUSTER_ARN \ --aws-cluster-name $CLUSTER_ARN \ --name in-cluster \ --project default
Para obtener la documentación completa de la CLI de Argo CD, consulte la referencia de la CLI de Argo CD
Ruta de migración
Puede migrar de Argo CD autoadministrado a la capacidad administrada:
-
Revise la configuración actual de Argo CD para detectar características no compatibles (controlador de notificaciones, CMP, comprobaciones de estado personalizadas, extensiones de la interfaz de usuario)
-
Escale los controladores de Argo CD autoadministrado a cero réplicas para evitar conflictos
-
Cree un recurso de la capacidad de Argo CD en su clúster.
-
Exporte sus aplicaciones, ApplicationSets y AppProjects.
-
Migre las credenciales de repositorios, los secretos de clústeres y las plantillas de credenciales de repositorios (repocreds).
-
Si utiliza claves GPG, certificados TLS o hosts SSH conocidos, migre también estas configuraciones.
-
Actualice los campos
destination.serverpara usar los nombres de los clústeres o los ARN de los clústeres de EKS. -
Aplíquelos a la instancia de Argo CD administrado.
-
Compruebe que las aplicaciones se estén sincronizando correctamente.
-
Desinstale su instalación de Argo CD autoadministrado.
La capacidad administrada utiliza las mismas API y definiciones de recursos de Argo CD, por lo que sus manifiestos existentes funcionan con modificaciones mínimas.
Siguientes pasos
-
Creación de una capacidad de Argo CD: creación de un recurso de capacidad de Argo CD
-
Uso de Argo CD: implementación de su primera aplicación
-
Consideraciones sobre Argo CD: configuración de la integración de AWS Identity Center