Jenkins prend en charge l'intégration continue et la livraison continue (CI/CD). Déployez Jenkins dans un cluster ACK pour bénéficier d'une haute disponibilité et réduire les coûts d'exploitation et de maintenance. Cette rubrique explique comment déployer Jenkins et présente un exemple simple illustrant la construction et le déploiement d'applications.
Prérequis
Le CLI Helm est installé et connecté au cluster à l'aide de kubectl. Pour des instructions détaillées, consultez Installing Helm et Connect to an ACK cluster using kubectl.
Notes d'utilisation
Aucun support technique n'est fourni pour Jenkins. Vous devez en assurer la maintenance vous-même.
Le chart Helm et les images de conteneur pour Jenkins sont hébergés en dehors de la Chine continentale, ce qui peut entraîner des échecs lors du tirage des images. Utilisez l'une des solutions suivantes :
Abonnez-vous aux images sources étrangères via Container Registry. Pour plus d'informations, consultez Sync images by using artifact subscription.
Créez une instance Global Accelerator (GA) afin de tirer les images directement via son réseau d'accélération globale. Pour plus de détails, consultez Accelerate cross-region ACK image pulls with GA.
Étape 1 : Déployer Jenkins
-
Ajoutez le référentiel Helm de Jenkins.
helm repo add jenkins https://charts.jenkins.io helm repo updateRésultat attendu :
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "jenkins" chart repository Update Complete. ⎈Happy Helming!⎈ -
Installez Jenkins.
-
Créez un namespace nommé
cicd.kubectl create ns cicd -
Déployez Jenkins dans le namespace
cicd.helm -n cicd install jenkins jenkins/jenkins \ --set persistence.storageClass="alicloud-disk-essd" \ --set persistence.size="20Gi" \ --set controller.serviceType="LoadBalancer" \ --set controller.admin.password="<YOUR_SECURE_PASSWORD>"persistence.storageClass: Obligatoire. La classe de stockage pour le volume persistant stockant jenkins_home. Définissez cette valeur sur"alicloud-disk-available"pour sélectionner automatiquement un type de disque cloud disponible.persistence.size: Obligatoire. La taille du disque cloud. Minimum : 20 Go.controller.serviceType: Facultatif. Le type de service. Par défaut : ClusterIP.controller.admin.password: Facultatif. Le mot de passe administrateur. Si non défini, Jenkins génère un mot de passe aléatoire.
Consultez helm-charts pour découvrir les autres paramètres.
-
Vérifiez le statut du pod Jenkins et attendez qu'il passe à l'état Running.
kubectl -n cicd get poRésultat attendu :
NAME READY STATUS RESTARTS AGE jenkins-0 2/2 Running 0 3m3s
-
-
Consultez l'adresse IP externe du service.
Si le type de service est LoadBalancer, utilisez l'adresse IP externe pour accéder au tableau de bord Jenkins.
kubectl get -n cicd serviceRésultat attendu :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE jenkins LoadBalancer 192.168.***.*** 8.222.***.*** 8080:30949/TCP 2d17h jenkins-agent ClusterIP 192.168.***.* <none> 50000/TCP 2d17h
(Facultatif) Étape 2 : Créer un pipeline
Créez un exemple de pipeline nommé first-pipeline. Jenkins lance dynamiquement un pod agent pour chaque construction et le libère une fois celle-ci terminée. Consultez la documentation Jenkins pour connaître les options de configuration.
Connectez-vous à Jenkins. Dans le volet de navigation de gauche, cliquez sur New Item.
Dans la section Enter an item name, saisissez first-pipeline, sélectionnez Pipeline, puis cliquez sur OK.
Cliquez sur l'onglet Pipeline, sélectionnez le modèle Hello World, puis cliquez sur Save.
Dans le volet de navigation de gauche, cliquez sur Build Now.
Dans le volet de navigation de gauche, cliquez sur Build History. Cliquez sur 1# > Console Output pour consulter les résultats de la construction.
FAQ
Comment récupérer le mot de passe Jenkins par défaut ?
Si vous n'avez pas spécifié de mot de passe lors du déploiement, récupérez le mot de passe par défaut :
kubectl -n cicd exec -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo