Jenkins menerapkan proses continuous integration dan continuous deployment (CI/CD). Sebarkan Jenkins di kluster ACK untuk memastikan ketersediaan tinggi (high availability/HA) layanan dan mengurangi biaya operasional serta pemeliharaan (O&M). Topik ini menjelaskan cara menyebar Jenkins di kluster ACK dan mendemonstrasikan prosedur pembuatan serta penyebarannya menggunakan contoh aplikasi sederhana.
Prasyarat
Helm CLI telah diinstal dan terhubung ke kluster menggunakan kubectl. Untuk instruksi lengkap, lihat Installing Helm dan Connect to an ACK cluster using kubectl.
Catatan
Pengembang bertanggung jawab atas pemeliharaan sistem Jenkins. Bagian ini tidak menyediakan dukungan teknis tingkat enterprise.
Helm Chart dan gambar yang digunakan oleh Jenkins berasal dari sumber luar negeri, yang dapat menyebabkan kegagalan menarik gambar (pull). Rujuk solusi berikut:
Berlangganan gambar dari sumber luar negeri menggunakan Container Registry. Untuk instruksi selengkapnya, lihat Sinkronkan gambar dari sumber di luar Tiongkok menggunakan langganan artefak.
Buat instans Global Accelerator (GA) untuk menarik gambar secara langsung menggunakan jaringan akselerasi global-nya. Untuk detailnya, lihat Using GA to accelerate cross-region container image pulling in ACK.
Langkah 1: Sebarkan Jenkins
Konfigurasikan repositori Helm Jenkins.
helm repo add jenkins https://charts.jenkins.io helm repo updateOutput yang diharapkan:
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "jenkins" chart repository Update Complete. ⎈Happy Helming!⎈Instal Jenkins.
Buat namespace
cicd.kubectl create ns cicdSebarkan Jenkins ke 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="****"persistence.storageClass: Wajib. Membuat persistent volume berbasis cloud disk untuk penyimpanan persisten direktori jenkins_home. Jika diatur ke"alicloud-disk-available", sistem akan secara otomatis memilih tipe cloud disk yang tersedia.persistence.size: Wajib. Ukuran cloud disk. Spesifikasi minimum untuk cloud disk ECS Alibaba Cloud adalah 20 GiB.controller.serviceType: Opsional. Tipe Service. Nilai default-nya adalah ClusterIP.controller.admin.password: Opsional. Menentukan kata sandi admin. Secara default, kata sandi acak akan dihasilkan.
Untuk parameter penyebaran lainnya, lihat helm-charts.
Periksa dan tunggu hingga Pod Jenkins berjalan normal.
kubectl -n cicd get poOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE jenkins-0 2/2 Running 0 3m3s
Lihat alamat IP eksternal Service.
Jika Anda menyebar Service LoadBalancer, akses layanan Jenkins melalui browser.
kubectl get -n cicd serviceOutput yang diharapkan:
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
(Opsional) Buat Tugas Pipeline
Sebagai contoh, buat tugas pipeline bernama first-pipeline. Saat membangun pipeline, Jenkins secara dinamis memulai Pod Slave dari kluster ACK saat ini secara default dan mengeksekusi tugas build. Setelah tugas build selesai, Pod Slave tersebut segera dilepas. Untuk informasi konfigurasi Jenkins lebih lanjut, lihat Jenkins.
Masuk ke Jenkins. Di panel navigasi sebelah kiri, klik New Item.
Di area Enter an item name, masukkan nama first-pipeline, pilih tipe Pipeline, lalu klik OK.
Di bagian atas halaman, klik tab Pipeline, pilih templat Hello World, lalu klik Save.

Di panel navigasi sebelah kiri, klik Build Now untuk mengeksekusi build.
Di panel navigasi sebelah kiri, klik Build History, lalu klik 1# untuk membuka halaman detail pipeline, kemudian klik Console Output untuk melihat hasil build pipeline.
FAQ
Bagaimana Cara Mendapatkan Password Acak Default Jenkins?
Jika Anda tidak menentukan kata sandi logon saat menyebar Jenkins, jalankan perintah berikut untuk mendapatkan password acak default Jenkins.
kubectl -n cicd exec -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo