Despliegue Jenkins en un clúster serverless de ACK mediante Helm para ejecutar compilaciones en pods aprovisionados dinámicamente.
Requisitos previos
Un clúster serverless de ACK está created.
kubectl está connected to your cluster.
Consideraciones
Usted es responsable del mantenimiento de Jenkins. No se proporciona soporte técnico a nivel empresarial.
Paso 1: Desplegar Jenkins
-
Agregue y actualice el repositorio de Helm de Jenkins.
helm repo add jenkins https://charts.jenkins.io helm repo updateSalida esperada:
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "jenkins" chart repository Update Complete. ⎈Happy Helming!⎈NotaEl repositorio de Helm se aloja fuera de China continental. Las actualizaciones desde clústeres ubicados en China continental pueden tardar más tiempo.
-
Instale Jenkins.
-
Cree el namespace
cicd.kubectl create ns cicd -
Cree un volumen de almacenamiento NAS compartido.
Sin un volumen persistente para el directorio principal de Jenkins, la configuración se pierde al reiniciar el pod del controlador.
-
Despliegue Jenkins en el namespace
cicd.helm -n cicd install jenkins jenkins/jenkins \ --set persistence.existingClaim=pvc-nas \ --set controller.serviceType="LoadBalancer" \ --set controller.adminPassword="admin"persistence.existingClaim=pvc-nas: Obligatorio. El nombre del PVC. Este ejemplo usa pvc-nas en el namespace
cicd.controller.serviceType="LoadBalancer": Opcional. El tipo de servicio predeterminado es ClusterIP.
controller.adminPassword="admin": Opcional. Si no se establece, se genera una contraseña aleatoria. Consulte Access Jenkins via LoadBalancer and get the default password.
Consulte helm-charts para conocer todos los parámetros de despliegue.
-
Compruebe el estado del pod de Jenkins. Espere hasta que el pod entre en el estado Running.
kubectl -n cicd get poSalida esperada:
NAME READY STATUS RESTARTS AGE jenkins-0 2/2 Running 0 3m3s
-
-
Abra Jenkins en un navegador e inicie sesión con sus credenciales.
Paso 2: Crear una tarea de pipeline
Este ejemplo crea un pipeline llamado first-pipeline. Jenkins aprovisiona un pod esclavo dinámico para cada compilación y lo libera al finalizar. Consulte la documentación de Jenkins para conocer los detalles de configuración.
Inicie sesión en Jenkins. En el panel de navegación izquierdo, haga clic en New Item.
En Enter an item name, introduzca first-pipeline, seleccione Pipeline y haga clic en OK.
Haga clic en la pestaña Pipeline, seleccione Hello World y haga clic en Save.
En el panel de navegación izquierdo, haga clic en Build Now.
En Build History, haga clic en un número de compilación, como #1. Después, haga clic en Console Output.
Acceder a Jenkins y obtener la contraseña predeterminada
-
El servicio de Jenkins usa ClusterIP de forma predeterminada. Para exponerlo mediante un load balancer, ejecute el siguiente comando:
kubectl -n cicd patch svc jenkins -p '{"spec": {"type": "LoadBalancer"}}' -
Si no estableció ninguna contraseña durante el despliegue, recupere la contraseña predeterminada con este comando:
kubectl -n cicd exec -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo