Jenkins digunakan untuk mengimplementasikan integrasi berkelanjutan dan penyebaran berkelanjutan (CI/CD). Anda dapat menyebarkan Jenkins di klaster Container Service for Kubernetes (ACK) untuk memastikan ketersediaan tinggi layanan dan mengurangi biaya operasional. Topik ini menjelaskan cara menyebarkan Jenkins di klaster ACK, serta membuat dan menyebarkan aplikasi sederhana.
Prasyarat
Perhatian
Tidak ada dukungan teknis yang disediakan untuk Jenkins. Pengembang yang menggunakan Jenkins perlu memelihara Jenkins.
Grafik Helm dan citra untuk Jenkins berasal dari sumber di luar Tiongkok. Akibatnya, operasi pull mungkin gagal. Anda dapat menggunakan solusi berikut:
Langkah 1: Menyebarkan Jenkins
Jalankan perintah berikut untuk mengonfigurasi Jenkins Helm Repo:
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.
Jalankan perintah berikut untuk membuat namespace bernama
cicd.kubectl create ns cicdJalankan perintah berikut untuk menyebarkan 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="admin"persistence.storageClass="alicloud-disk-available": Secara otomatis memilih jenis disk cloud yang tersedia dan membuat volume disk untuk menyimpan file di direktori jenkins_home. Parameter ini wajib.
persistence.size="20Gi": Menetapkan kapasitas minimum disk cloud Elastic Compute Service (ECS) menjadi 20 GiB. Parameter ini wajib.
controller.serviceType="LoadBalancer": Nilai defaultnya adalah ClusterIP. Parameter ini opsional.
controller.admin.password="admin": Menentukan kata sandi administrator. Parameter ini opsional. Secara default, kata sandi acak akan dihasilkan.
Untuk informasi lebih lanjut tentang parameter lainnya, lihat helm-charts.
Jalankan perintah berikut untuk memeriksa status pod Jenkins 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
Secara default, tipe Layanan Jenkins adalah ClusterIP. Untuk mengakses Jenkins dari browser, jalankan perintah berikut untuk mengubah tipe Layanan.
kubectl -n cicd patch svc jenkins -p '{"spec": {"type": "LoadBalancer"}}'Kemudian, jalankan perintah berikut untuk melihat alamat IP eksternal Layanan tersebut.
kubectl get -n cicd serviceKeluaran 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 2d17hPada browser, masukkan alamat IP dan port yang Anda peroleh pada langkah sebelumnya untuk mengakses layanan Jenkins. Lalu, masukkan nama pengguna dan kata sandi untuk masuk.
CatatanJika Anda tidak menentukan kata sandi saat menyebarkan Jenkins, jalankan perintah berikut untuk mendapatkan kata sandi default, yang dihasilkan secara acak oleh Jenkins:
kubectl -n cicd exec -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo
(Opsional) Membuat tugas pipeline
Bagian ini menggunakan pembuatan pipeline first-pipeline sebagai contoh untuk menunjukkan cara membuat pipeline pembuatan. Saat Anda membuat pipeline pembuatan, Jenkins secara dinamis meluncurkan pod slave di klaster ACK dan menjalankan pembuatan secara default. Setelah Jenkins selesai menjalankan pembuatan, ia segera melepaskan pod slave. Untuk informasi lebih lanjut tentang konfigurasi Jenkins, lihat Jenkins.
Masuk ke Jenkins. Di panel navigasi sebelah kiri, klik New Item.
Di bagian Enter an item name, masukkan first-pipeline, pilih Pipeline, dan kemudian klik OK.
Di bagian atas halaman, klik tab Pipeline, pilih template Hello World, dan kemudian klik Save.

Di panel navigasi sebelah kiri, klik Build Now untuk menjalankan build.
Di panel navigasi sebelah kiri, klik Build History. Klik 1# untuk membuka halaman detail pipeline, lalu klik Console Output guna melihat hasil build.