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.
Implementación de recursos de AWS de Kubernetes con Controladores de AWS para Kubernetes (ACK)
Controladores de AWS para Kubernetes (ACK) le permite definir y administrar los recursos de servicios de AWS directamente desde Kubernetes. Con Controladores de AWS para Kubernetes (ACK), puede administrar los recursos de cargas de trabajo y la infraestructura en la nube mediante los recursos personalizados de Kubernetes, junto con las cargas de trabajo de sus aplicaciones, a través de las API y herramientas de Kubernetes que ya conoce.
Con las capacidades de EKS, AWS administra ACK completamente, lo que elimina la necesidad de instalar, mantener y escalar los controladores de ACK en sus clústeres.
Cómo funciona ACK
ACK traduce las especificaciones de recursos personalizadas de Kubernetes a llamadas a la API de AWS. Cuando crea, actualiza o elimina un recurso personalizado de Kubernetes que represente un recurso de servicio de AWS, ACK hace las llamadas a la API de AWS necesarias para crear, actualizar o eliminar el recurso de AWS.
Cada recurso de AWS compatible con ACK tiene su propia definición de recursos personalizados (CRD) que define el esquema de la API de Kubernetes para especificar su configuración. Por ejemplo, ACK proporciona las CRD para S3, lo que incluye los buckets, las políticas de bucket y otros recursos de S3.
ACK concilia continuamente el estado de sus recursos de AWS con el estado deseado definido en sus recursos personalizados de Kubernetes. Si un recurso se desvía del estado deseado, ACK lo detecta y toma medidas correctivas para volver a alinearlo. Los cambios en los recursos de Kubernetes se reflejan inmediatamente en el estado de los recursos de AWS, mientras que la detección pasiva de las desviaciones y la corrección de los cambios iniciales en los recursos de AWS pueden tardar hasta 10 horas (el periodo de resincronización), pero se suelen producir mucho antes.
Ejemplo de manifiesto de recursos de buckets de S3
apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-ack-bucket spec: name:my-unique-bucket-name
Cuando aplique este recurso personalizado a su clúster, ACK crea un bucket de Amazon S3 en su cuenta si aún no existe. Los cambios posteriores en este recurso, como especificar un nivel de almacenamiento no predeterminado o agregar una política, se aplicarán al recurso de S3 en AWS. Cuando se elimina este recurso del clúster, el bucket de S3 de AWS se elimina de forma predeterminada.
Beneficios de ACK
ACK proporciona una administración de recursos de AWS nativa de Kubernetes, lo que le permite administrar los recursos de AWS con las mismas API y herramientas de Kubernetes que usa para sus aplicaciones. Este enfoque unificado simplifica el flujo de trabajo de administración de infraestructuras al eliminar la necesidad de cambiar de una herramienta a otra o aprender a utilizar sistemas independientes de infraestructura como código. Definirá los recursos de AWS de forma declarativa en los manifiestos de Kubernetes, lo que permite que los flujos de trabajo de GitOps y las prácticas de infraestructura como código se integren sin problemas con los procesos de desarrollo existentes.
ACK concilia continuamente el estado deseado de sus recursos de AWS con su estado real, lo que corrige la desviación y garantiza la coherencia en toda la infraestructura. Esta conciliación continua significa que los cambios imperativos en los recursos de AWS sin conexión se revierten automáticamente para que coincidan con la configuración declarada, lo que mantiene la integridad de su infraestructura como código. Puede configurar ACK para administrar los recursos en varias regiones y cuentas de AWS, lo que permite arquitecturas complejas de varias cuentas sin herramientas adicionales.
Para las organizaciones que migran desde otras herramientas de administración de infraestructura, ACK admite la adopción de recursos, lo que le permite administrar los recursos de AWS existentes sin tener que volver a crearlos. ACK también proporciona recursos de solo lectura para la observación de los recursos de AWS sin acceso a modificaciones, y anotaciones para retener los recursos de AWS de forma opcional, incluso cuando el recurso de Kubernetes se elimina del clúster.
Para obtener más información y comenzar a utilizar la capacidad de EKS para ACK, consulte Conceptos de ACK y Consideraciones sobre ACK para EKS.
Servicios de AWS compatibles
ACK admite una amplia gama de servicios de AWS, que incluyen, entre otros, los siguientes:
-
Amazon EC2
-
Amazon S3
-
Amazon RDS
-
Amazon DynamoDB
-
Amazon ElastiCache
-
Amazon EKS
-
Amazon SQS
-
Amazon SNS
-
AWS Lambda
-
AWS IAM
Todos los servicios de AWS que figuran como de disponibilidad general ascendente son compatibles con la capacidad de EKS para ACK. Consulte la lista completa de servicios de AWS compatibles
Integración con otras capacidades administradas de EKS
ACK se integra con otras capacidades administradas de EKS.
-
Argo CD: utilice Argo CD para administrar la implementación de los recursos de ACK en varios clústeres, lo que activa los flujos de trabajo de GitOps para su infraestructura de AWS.
-
ACK amplía los beneficios de GitOps cuando se combina con ArgoCD, pero ACK no requiere la integración con git.
-
-
kro (Kube Resource Orchestrator): utilice kro para componer recursos complejos a partir de recursos de ACK, lo que crea abstracciones de alto nivel que simplifican la administración de recursos.
-
Puede crear recursos personalizados compuestos con kro que definan tanto los recursos como los de Kubernetes como los de AWS. Los miembros del equipo pueden usar estos recursos personalizados para implementar rápidamente aplicaciones complejas.
-
Introducción a ACK
Para comenzar a utilizar la capacidad de EKS para ACK:
-
Cree y configure un rol de capacidad de IAM con los permisos necesarios para que ACK administre los recursos de AWS en su nombre.
-
Cree un recurso de capacidad de ACK en su clúster de EKS a través de la consola de AWS, la AWS CLI o su infraestructura preferida como herramienta de código.
-
Aplique los recursos personalizados de Kubernetes al clúster para comenzar a administrar sus recursos de AWS en Kubernetes.