Implementación de Helm Chart en un Clúster ACK Utilizando Flux CD
El artículo presenta un enfoque detallado sobre cómo utilizar Flux CD para desplegar un Helm chart en un Alibaba Cloud Container Service for Kubernetes (ACK) mediante Compute Nest. Esta metodología es especialmente útil para la gestión de operaciones y mantenimiento (O&M) de los servicios de Helm, facilitando el proceso de implementación en entornos de producción.
¿Qué es Flux CD y cómo se integra en Compute Nest?
Flux CD es una herramienta de entrega continua que permite automatizar el despliegue y la gestión de aplicaciones en clústeres Kubernetes. A través de Compute Nest, se encapsula el proceso de implementación de un Helm chart en un módulo público de ROS (Resource Orchestration Service) llamado MODULE::ACS::ComputeNest::FluxOciHelmDeploy. Este módulo simplifica el uso de Helm en el proceso de despliegue, permitiendo a los desarrolladores centrarse en la lógica de su aplicación en lugar de en las complejidades del entorno de Kubernetes.
Parámetros de Entrada del Módulo FluxOciHelmDeploy
El módulo MODULE::ACS::ComputeNest::FluxOciHelmDeploy admite varios parámetros de entrada que son fundamentales para su correcto funcionamiento. Estos incluyen:
- HelmChartUrl: URL del repositorio de charts de la Open Container Initiative (OCI).
- DockerConfigJson: Credenciales necesarias para extraer el Helm chart.
- ClusterId: Identificador del clúster en el que se desplegará la aplicación.
- ReleaseName: Nombre de la liberación del Helm chart.
- Namespace: Espacio de nombres en Kubernetes donde se realizará el despliegue.
Creación de un Paquete de Despliegue con Helm Chart
Para utilizar un paquete de despliegue de Helm chart, es necesario primero subir el paquete a un repositorio accesible. En este contexto, Compute Nest proporciona dos pseudo parámetros esenciales:
- {{ computenest::helmchart::xx }}: Identificador del paquete de despliegue que se sustituye por la dirección completa del chart.
- {{ computenest::helm::dockerconfigjson }}: Credenciales utilizadas para extraer el Helm chart.
El siguiente es un ejemplo de plantilla para la creación de un servicio utilizando un paquete de despliegue:
Resources:
FluxHelmDeploy:
Type: MODULE::ACS::ComputeNest::FluxOciHelmDeploy
Version: v1
Properties:
ClusterId:
Ref: ClusterId
ReleaseName: wordpress
Namespace: wordpress
HelmChartUrl: '{{ computenest::helmchart::test }}'
DockerConfigJson: '{{ computenest::helm::dockerconfigjson }}'
ChartValues:
mariadb:
primary:
persistence:
enabled: true
storageClass: alicloud-disk-essd
size: 20Gi
persistence:
enabled: false
Despliegue desde un Repositorio de Charts Autogestionado
Si ya se cuenta con un repositorio de charts, se puede utilizar directamente, ya sea público o privado. En el caso de utilizar un repositorio privado, es necesario proporcionar las credenciales en el campo DockerConfigJson. Aquí se muestra cómo generar dicha credencial:
kubectl create secret docker-registry SECRET_NAME \ --docker-server=SERVER_NAME \ --docker-username=USER_NAME \ --docker-password=Password
A continuación, se presenta un ejemplo de plantilla de servicio para el despliegue de WordPress utilizando un repositorio público:
WordpressComputenestHelmApplication:
Type: MODULE::ACS::ComputeNest::FluxOciHelmDeploy
Version: v1
Properties:
ClusterId: ClusterId
HelmChartUrl: oci://registry-1.docker.io/bitnamicharts/wordpress:15.4.1
ChartValues:
mariadb:
primary:
persistence:
enabled: true
storageClass: alicloud-disk-essd
size: 100Gi
persistence:
enabled: false
wordpressUsername:
Ref: WordPressUsername
wordpressPassword:
Ref: WordPressPassword
Namespace:
Ref: 'ALIYUN::StackName'
ReleaseName: wordpress
Conclusión
El uso de Flux CD para desplegar Helm charts en un clúster ACK optimiza y simplifica el proceso de implementación, permitiendo a los desarrolladores centrarse en el desarrollo de sus aplicaciones. Esta integración no solo mejora la eficiencia operativa, sino que también facilita la gestión de aplicaciones en entornos de Kubernetes.
Fuente: Alibaba Cloud Blog
Nota: Este contenido original ha sido modificado con IA y revisado por un especialista. Imagen generada por IA.












