1. ภาพรวม
Jenkins เป็นหนึ่งในโซลูชันการรวมอย่างต่อเนื่องที่ได้รับความนิยมมากที่สุด โดยใช้เพื่อทำให้ส่วนที่สำคัญซึ่งไม่ใช่ส่วนที่มนุษย์ทำในกระบวนการพัฒนาซอฟต์แวร์เป็นแบบอัตโนมัติ การติดตั้งใช้งาน Jenkins กับ Kubernetes ใน Google Cloud และการใช้ปลั๊กอิน GKE ช่วยให้เราปรับขนาดเครื่องมือเรียกใช้บิลด์ได้อย่างรวดเร็วและอัตโนมัติเมื่อจำเป็น เมื่อใช้ร่วมกับ Cloud Storage เราจะสร้างและทดสอบแอปพลิเคชันได้อย่างง่ายดาย
สิ่งที่คุณต้องทำ
- ติดตั้งใช้งาน Jenkins ในคลัสเตอร์ Kubernetes
- ทำให้ใช้งานได้และกำหนดค่าปลั๊กอิน Jenkins GKE เพื่อให้ Jenkins สร้างและทำลายพ็อดเป็นโหนดตัวดำเนินการได้
- สร้างและทดสอบแอปพลิเคชัน SpringBoot ตัวอย่าง
- สร้างและเผยแพร่คอนเทนเนอร์ไปยัง Google Container Registry
- ทำให้แอปพลิเคชันตัวอย่างใช้งานได้ในสภาพแวดล้อม GKE สำหรับการทดลองใช้และเวอร์ชันที่ใช้งานจริง
สิ่งที่คุณต้องมี
- โปรเจ็กต์ Google Cloud ที่ตั้งค่าการเรียกเก็บเงินแล้ว หากยังไม่มีบัญชีดังกล่าว คุณจะต้องสร้างบัญชี
2. การเริ่มตั้งค่า
คุณสามารถเรียกใช้ Codelab นี้บน Google Cloud Platform ได้อย่างสมบูรณ์โดยไม่ต้องติดตั้งหรือกำหนดค่าในเครื่อง
Cloud Shell
ตลอด Codelab นี้ เราจะจัดสรรและจัดการทรัพยากรและบริการต่างๆ ในระบบคลาวด์โดยใช้บรรทัดคำสั่งผ่าน Cloud Shell
เปิดใช้ API
API ที่เราจะต้องเปิดใช้ในโปรเจ็กต์มีดังนี้
- Compute Engine API - สร้างและเรียกใช้เครื่องเสมือน
- Kubernetes Engine API - สร้างและจัดการแอปพลิเคชันที่ใช้คอนเทนเนอร์
- Cloud Build API - แพลตฟอร์มการรวมอย่างต่อเนื่องและการส่งมอบอย่างต่อเนื่องของ Google Cloud
- Service Management API - ช่วยให้ผู้ให้บริการเผยแพร่บริการใน Google Cloud Platform ได้
- Cloud Resource Manager API - สร้าง อ่าน และอัปเดตข้อมูลเมตาสำหรับคอนเทนเนอร์ทรัพยากร Google Cloud
เปิดใช้ API ที่จำเป็นด้วยคำสั่ง gcloud ต่อไปนี้
gcloud services enable compute.googleapis.com \
container.googleapis.com \
cloudbuild.googleapis.com \
servicemanagement.googleapis.com \
cloudresourcemanager.googleapis.com \
--project ${GOOGLE_CLOUD_PROJECT}
สร้างที่เก็บข้อมูล GCS
เราจะต้องใช้ที่เก็บข้อมูล GCS เพื่ออัปโหลดงานทดสอบ มาสร้างที่เก็บข้อมูลโดยใช้รหัสโปรเจ็กต์ในชื่อเพื่อให้ไม่ซ้ำกัน
gsutil mb gs://${GOOGLE_CLOUD_PROJECT}-jenkins-test-bucket/
3. การสร้างคลัสเตอร์ Kubernetes
สร้างคลัสเตอร์
จากนั้นเราจะสร้างคลัสเตอร์ GKE ที่จะโฮสต์ระบบ Jenkins รวมถึงพ็อดที่จะส่งเป็นโหนด Worker ขอบเขตเพิ่มเติมที่ระบุโดยแฟล็ก --scopes จะช่วยให้ Jenkins เข้าถึง Cloud Source Repositories และ Container Registry ได้ ใน Cloud Console ให้เรียกใช้คำสั่งต่อไปนี้
gcloud container clusters create jenkins-cd \ --machine-type n1-standard-2 --num-nodes 1 \ --zone us-east1-d \ --scopes "https://www.googleapis.com/auth/source.read_write,cloud-platform" \ --cluster-version latest
นอกจากนี้ เรายังจะทำให้คลัสเตอร์ 2 รายการใช้งานได้เพื่อโฮสต์บิลด์การจัดเตรียมและบิลด์ที่ใช้งานจริงของแอปพลิเคชันตัวอย่าง
gcloud container clusters create staging \ --machine-type n1-standard-2 --num-nodes 1 \ --zone us-east1-d \ --cluster-version latest
gcloud container clusters create prod \ --machine-type n1-standard-2 --num-nodes 2 \ --zone us-east1-d \ --cluster-version latest
ยืนยัน
เมื่อสร้างคลัสเตอร์แล้ว เราจะยืนยันได้ว่าคลัสเตอร์ทำงานอยู่ด้วย gcloud container clusters list
เอาต์พุตควรมี RUNNING ในคอลัมน์ STATUS ดังนี้
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS jenkins-cd us-east1-d 1.15.9-gke.9 34.74.77.124 n1-standard-2 1.15.9-gke.9 2 RUNNING prod us-east1-d 1.15.9-gke.9 35.229.98.12 n1-standard-2 1.15.9-gke.9 2 RUNNING staging us-east1-d 1.15.9-gke.9 34.73.92.228 n1-standard-2 1.15.9-gke.9 2 RUNNING
4. ติดตั้งใช้งาน Jenkins ด้วย Helm
ติดตั้ง Helm
เราจะใช้ Helm ซึ่งเป็นเครื่องมือจัดการแพ็กเกจแอปพลิเคชันสำหรับ Kubernetes เพื่อติดตั้ง Jenkins ในคลัสเตอร์ หากต้องการเริ่มต้นใช้งาน ให้ดาวน์โหลดโปรเจ็กต์ที่มีไฟล์ Manifest ของ Kubernetes ซึ่งเราจะใช้เพื่อติดตั้งใช้งาน Jenkins
git clone https://github.com/GoogleCloudPlatform/continuous-deployment-on-kubernetes.git ~/continuous-deployment-on-kubernetes
เปลี่ยนไดเรกทอรีที่ใช้งานอยู่ในปัจจุบันเป็นไดเรกทอรีโปรเจ็กต์
cd ~/continuous-deployment-on-kubernetes/
สร้างการเชื่อมโยงบทบาทคลัสเตอร์เพื่อมอบสิทธิ์บทบาทผู้ดูแลระบบคลัสเตอร์ให้ตนเอง
kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud config get-value account)
เชื่อมต่อกับคลัสเตอร์ Jenkins โดยรับข้อมูลเข้าสู่ระบบของคลัสเตอร์
gcloud container clusters get-credentials jenkins-cd --zone us-east1-d --project ${GOOGLE_CLOUD_PROJECT}
และดาวน์โหลดไบนารี Helm ไปยัง Cloud Console
wget https://storage.googleapis.com/kubernetes-helm/helm-v2.14.1-linux-amd64.tar.gz
คลายซิปไฟล์แล้วคัดลอกไฟล์ Helm ที่รวมไว้ไปยังไดเรกทอรีการทำงานปัจจุบัน
tar zxfv helm-v2.14.1-linux-amd64.tar.gz && \ cp linux-amd64/helm .
Tiller คือฝั่งเซิร์ฟเวอร์ของ Helm ที่ทำงานในคลัสเตอร์ Kubernetes มาสร้างบัญชีบริการชื่อ tiller กัน
kubectl create serviceaccount tiller \ --namespace kube-system
และเชื่อมโยงกับcluster-adminบทบาทคลัสเตอร์เพื่อให้ทำการเปลี่ยนแปลงได้
kubectl create clusterrolebinding tiller-admin-binding \ --clusterrole=cluster-admin \ --serviceaccount=kube-system:tiller
ตอนนี้เราสามารถเริ่มต้น Helm และอัปเดตรีโปได้แล้ว
./helm init --service-account=tiller && \ ./helm repo update
ยืนยัน
ยืนยันว่า Helm พร้อมใช้งานด้วย ./helm version ซึ่งควรแสดงหมายเลขเวอร์ชันของไคลเอ็นต์และเซิร์ฟเวอร์
Client: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
ติดตั้ง Jenkins
ตอนนี้เราได้ติดตั้ง Helm ในคลัสเตอร์แล้ว และพร้อมที่จะติดตั้ง Jenkins
./helm install stable/jenkins -n cd \ -f jenkins/values.yaml \ --version 1.2.2 --wait
ยืนยัน
มาตรวจสอบพ็อดกัน
kubectl get pods
เอาต์พุตควรแสดงพ็อด Jenkins ที่มีสถานะเป็น RUNNING ดังนี้
NAME READY STATUS RESTARTS AGE cd-jenkins-7c786475dd-vbhg4 1/1 Running 0 1m
ยืนยันว่าได้สร้างบริการ Jenkins อย่างถูกต้อง
kubectl get svc
เอาต์พุตควรมีลักษณะดังนี้
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE cd-jenkins ClusterIP 10.35.241.170 <none> 8080/TCP 2m27s cd-jenkins-agent ClusterIP 10.35.250.57 <none> 50000/TCP 2m27s kubernetes ClusterIP 10.35.240.1 <none> 443/TCP 75m
การติดตั้ง Jenkins จะใช้ปลั๊กอิน Kubernetes เพื่อสร้างเอเจนต์บิลเดอร์ Jenkins Master จะเปิดใช้โดยอัตโนมัติตามความจำเป็น เมื่อดำเนินการเสร็จแล้ว ระบบจะสิ้นสุดการทำงานโดยอัตโนมัติและเพิ่มทรัพยากรกลับไปยังพูลทรัพยากรของคลัสเตอร์
เชื่อมต่อกับ Jenkins
Jenkins ทำงานในคลัสเตอร์ของเรา แต่หากต้องการเข้าถึง UI ให้ตั้งค่าการส่งต่อพอร์ตจาก Cloud Shell ดังนี้
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/component=jenkins-master" -l "app.kubernetes.io/instance=cd" -o jsonpath="{.items[0].metadata.name}") &&
kubectl port-forward $POD_NAME 8080:8080 >> /dev/null &
ระบบสร้างรหัสผ่านผู้ดูแลระบบระหว่างการติดตั้ง มาดึงข้อมูลกัน
printf $(kubectl get secret cd-jenkins -o jsonpath="{.data.jenkins-admin-password}" | base64 --decode);echo
ที่ด้านบนของ Cloud Shell ให้คลิกไอคอนแสดงตัวอย่างเว็บ
แล้วเลือก "แสดงตัวอย่างบนพอร์ต 8080"

เราควรเห็นหน้าจอเข้าสู่ระบบสำหรับ Jenkins ซึ่งเราสามารถป้อน admin สำหรับชื่อผู้ใช้และรหัสผ่านที่ได้จากขั้นตอนก่อนหน้า

เมื่อคลิกลงชื่อเข้าใช้ ระบบจะนำเราไปยังหน้าหลักของ Jenkins

5. ติดตั้งและกำหนดค่าปลั๊กอิน GKE
ปลั๊กอิน Google Kubernetes Engine ช่วยให้เราเผยแพร่การติดตั้งใช้งานที่สร้างขึ้นภายใน Jenkins ไปยังคลัสเตอร์ Kubernetes ที่ทำงานภายใน GKE ได้ คุณต้องทำการกำหนดค่าบางอย่างด้วยสิทธิ์ IAM ในโปรเจ็กต์ เราจะนำการกำหนดค่านั้นไปใช้งานโดยใช้ Terraform
ก่อนอื่น ให้ดาวน์โหลดโปรเจ็กต์ปลั๊กอิน GKE โดยทำดังนี้
git clone https://github.com/jenkinsci/google-kubernetes-engine-plugin.git ~/google-kubernetes-engine-plugin
การกำหนดค่าสิทธิ์ IAM โดยอัตโนมัติ
เปลี่ยนไดเรกทอรีการทำงานปัจจุบันเป็นไดเรกทอรี rbac ของโปรเจ็กต์ GKE ที่เราโคลนไว้ก่อนหน้านี้
cd ~/google-kubernetes-engine-plugin/docs/rbac/
gcp-sa-setup.tf คือไฟล์การกำหนดค่า Terraform ที่จะสร้างบทบาท IAM ของ GCP ที่กำหนดเองพร้อมสิทธิ์ที่จำกัด รวมถึงบัญชีบริการ GCP เพื่อมอบบทบาทนั้นให้ ไฟล์ต้องมีค่าสำหรับตัวแปรโปรเจ็กต์ ภูมิภาค และชื่อบัญชีบริการ เราจะระบุค่าเหล่านั้นโดยการประกาศตัวแปรสภาพแวดล้อมต่อไปนี้ก่อน
export TF_VAR_project=${GOOGLE_CLOUD_PROJECT}
export TF_VAR_region=us-east1-d
export TF_VAR_sa_name=kaniko-role
เริ่มต้น Terraform สร้างแผน และใช้แผนดังกล่าว
terraform init terraform plan -out /tmp/tf.plan terraform apply /tmp/tf.plan && rm /tmp/tf.plan
บัญชีบริการจะต้องมีสิทธิ์ของผู้ดูแลระบบพื้นที่เก็บข้อมูลเพื่อบันทึกลงใน Bucket ของ Cloud Storage
gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \
--member serviceAccount:kaniko-role@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com \
--role 'roles/storage.admin'
นอกจากนี้ยังต้องมีสิทธิ์ใช้งานคอนเทนเนอร์สำหรับขั้นตอนการติดตั้งใช้งานของไปป์ไลน์ด้วย
gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} --member \
serviceAccount:kaniko-role@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com --role 'roles/container.developer'
ตอนนี้เราสามารถใช้ Helm เพื่อตั้งค่าสิทธิ์ของคลัสเตอร์สำหรับปลั๊กอิน GKE โดยใช้โปรแกรมติดตั้งหุ่นยนต์ GKE ได้แล้ว เปลี่ยนไดเรกทอรีที่ใช้งานอยู่เป็นไดเรกทอรี Helm ของโปรเจ็กต์ GKE โดยทำดังนี้
cd ~/google-kubernetes-engine-plugin/docs/helm/
และติดตั้งโดยใช้แผนภูมิ Helm ที่ให้ไว้
export TARGET_NAMESPACE=kube-system && \ envsubst < gke-robot-deployer/values.yaml | helm install ./gke-robot-deployer --name gke-robot-deployer -f -
6. กำหนดค่า Jenkins
คีย์บัญชีบริการ
เพื่อให้บัญชีบริการทำงานได้อย่างถูกต้อง เราจะต้องสร้างไฟล์คีย์ส่วนตัวและเพิ่มเป็นข้อมูลลับของ Kubernetes ก่อนอื่นให้สร้างไฟล์ด้วยคำสั่ง gcloud ต่อไปนี้
gcloud iam service-accounts keys create /tmp/kaniko-secret.json --iam-account kaniko-role@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
เราจะสร้างคีย์ลับในที่เก็บข้อมูลลับของ Kubernetes ด้วยไฟล์ดังกล่าว
kubectl create secret generic jenkins-int-samples-kaniko-secret --from-file=/tmp/kaniko-secret.json
ดาวน์โหลดไฟล์ JSON ลงในดิสก์ในเครื่องโดยไปที่รายการดาวน์โหลดไฟล์จากเมนู 3 จุดของ Cloud Shell

ป้อนเส้นทางไฟล์ /tmp/kaniko-secret.json แล้วคลิกดาวน์โหลด
กลับไปที่หน้า Jenkins ในแผงด้านซ้าย ให้คลิกข้อมูลเข้าสู่ระบบ แล้วคลิกระบบ


ในส่วนของหน้าเว็บที่ชื่อระบบ ให้คลิก "ข้อมูลเข้าสู่ระบบส่วนกลาง" แล้วคลิก "เพิ่มข้อมูลเข้าสู่ระบบ" ทางด้านซ้าย


ในเมนูแบบเลื่อนลง "ประเภท" ให้เลือกบัญชีบริการของ Google จากคีย์ส่วนตัว ป้อน "kaniko-role" เป็นชื่อ จากนั้นอัปโหลดคีย์ JSON ที่สร้างในขั้นตอนก่อนหน้า แล้วคลิก "ตกลง"

ตัวแปรสภาพแวดล้อม
เราจะต้องกำหนดตัวแปรสภาพแวดล้อมบางอย่างใน Jenkins ก่อนที่จะสร้างไปป์ไลน์แบบหลายสาขา ดังนี้
- JENK_INT_IT_ZONE - โซนของคลัสเตอร์ Kubernetes ในกรณีของเรา
us-east1-d - JENK_INT_IT_PROJECT_ID - หมายถึงรหัสโปรเจ็กต์ GCP ที่โฮสต์อินสแตนซ์ Jenkins นี้
- JENK_INT_IT_STAGING - ชื่อคลัสเตอร์ "การจัดเตรียม" ของเรา ซึ่งมีค่าเป็น
stagingเพื่อวัตถุประสงค์ในการสาธิต - JENK_INT_IT_PROD - ชื่อคลัสเตอร์ "prod" ของเรา เพื่อวัตถุประสงค์ในการสาธิต เราจะใช้
prod - JENK_INT_IT_BUCKET - Bucket ของ Google Cloud Storage ที่สร้างในขั้นตอนก่อนหน้า
- JENK_INT_IT_CRED_ID - หมายถึงข้อมูลเข้าสู่ระบบที่สร้างขึ้นโดยใช้ JSON ในขั้นตอนก่อนหน้า ค่าควรตรงกับชื่อที่เราตั้งให้ ซึ่งก็คือ
kaniko-role
หากต้องการเพิ่ม ให้ไปที่ Manage Jenkins แล้วทำดังนี้

จากนั้นกำหนดค่าระบบ:

จะมีส่วนที่ชื่อพร็อพเพอร์ตี้ส่วนกลาง และเมื่อเราเลือกช่องตัวแปรสภาพแวดล้อม เราจะเห็นปุ่มเพิ่มที่เราจะคลิกเพื่อเพิ่มตัวแปรด้านบนเป็นคู่คีย์-ค่า

คลิกปุ่มบันทึกที่ด้านล่างของหน้าเพื่อใช้การเปลี่ยนแปลง
7. ตั้งค่าไปป์ไลน์
ใน Jenkins ให้คลิก "รายการใหม่"

ป้อน "jenkins-integration-sample" เป็นชื่อ เลือก "Multibranch Pipeline" เป็นประเภทโปรเจ็กต์ แล้วคลิก OK

ระบบจะเปลี่ยนเส้นทางเราไปยังหน้าการกำหนดค่าไปป์ไลน์ ในส่วนแหล่งที่มาของสาขา ให้ป้อน https://github.com/GoogleCloudPlatform/jenkins-integration-samples.git เป็นที่เก็บโปรเจ็กต์ ในส่วนการกำหนดค่าบิลด์ ให้ป้อน "gke/Jenkinsfile" เป็นเส้นทางสคริปต์

คลิกบันทึกเพื่อใช้การตั้งค่าเหล่านี้ เมื่อบันทึกแล้ว Jenkins จะเริ่มสแกนที่เก็บและสร้างบิลด์สำหรับแต่ละสาขา เมื่อดำเนินการไปเรื่อยๆ คุณจะเห็นพ็อดที่สร้าง เรียกใช้ และทำลายเมื่อการสร้างคืบหน้าในหน้าภาระงานของ Kubernetes
เมื่อบิลด์เสร็จสมบูรณ์ คุณจะเห็นรายการ 2 รายการในหน้าภาระงาน Kubernetes ชื่อ jenkins-integration-samples-gke ซึ่งแต่ละรายการจะสอดคล้องกับคลัสเตอร์ prod หรือคลัสเตอร์ทดสอบ สถานะจะแสดงเป็น "ตกลง" ดังนี้

การใช้คำสั่ง gcloud ต่อไปนี้จะแสดงให้เห็นว่าเราได้อัปโหลดอิมเมจคอนเทนเนอร์ไปยัง Google Container Registry ที่สอดคล้องกับไปป์ไลน์ของเราแล้ว
gcloud container images list
หากต้องการดูภาระงานในเบราว์เซอร์ ให้รับข้อมูลเข้าสู่ระบบสำหรับคลัสเตอร์ที่ใช้งานจริงโดยทำดังนี้
gcloud container clusters get-credentials prod --zone us-east1-d --project ${GOOGLE_CLOUD_PROJECT}
และเรียกใช้คำสั่งต่อไปนี้เพื่อตั้งค่าการส่งต่อพอร์ตจากพอร์ต 8081 ของเชลล์ไปยังพอร์ต 8080 ของเวิร์กโหลด
export POD_NAME=$(kubectl get pods -o jsonpath="{.items[0].metadata.name}") &&
kubectl port-forward $POD_NAME 8081:8080 >> /dev/null &
ที่ด้านบนของ Cloud Shell ให้คลิกไอคอนตัวอย่างเว็บ แล้วเลือก "แสดงตัวอย่างบนพอร์ต 8081"


8. ล้างข้อมูล
เราได้สำรวจวิธีทำให้ Jenkins และไปป์ไลน์แบบหลายสาขาตัวอย่างใช้งานได้ใน Kubernetes ตอนนี้ก็ถึงเวลาล้างข้อมูลโปรเจ็กต์ของเราจากทรัพยากรที่เราสร้างขึ้น
ลบโปรเจ็กต์
คุณจะลบทั้งโปรเจ็กต์ก็ได้หากต้องการ ในคอนโซล GCP ให้ไปที่หน้า Cloud Resource Manager
ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่เราใช้ทำงานอยู่ แล้วคลิกลบ ระบบจะแจ้งให้คุณพิมพ์รหัสโปรเจ็กต์ ป้อนรหัสแล้วคลิกปิด
หรือจะลบทั้งโปรเจ็กต์โดยตรงจาก Cloud Shell ด้วย gcloud ก็ได้
gcloud projects delete $GOOGLE_CLOUD_PROJECT
หากต้องการลบคอมโพเนนต์ที่เรียกเก็บเงินได้ต่างๆ ทีละรายการ ให้ไปที่ส่วนถัดไป
คลัสเตอร์ Kubernetes
ลบทั้งคลัสเตอร์ Kubernetes ด้วย gcloud โดยทำดังนี้
gcloud container clusters delete jenkins-cd --zone=us-east1-d
ที่เก็บข้อมูล
นำไฟล์ที่อัปโหลดทั้งหมดออกและลบบัคเก็ตของเราด้วย gsutil โดยทำดังนี้
gsutil rm -r gs://${GOOGLE_CLOUD_PROJECT}-jenkins-test-bucket
อิมเมจ Google Container Registry
เราจะลบอิมเมจ Google Container Registry โดยใช้ข้อมูลสรุปของอิมเมจ ก่อนอื่น ให้เรียกข้อมูลสรุปด้วยคำสั่งต่อไปนี้
gcloud container images list-tags gcr.io/${GOOGLE_CLOUD_PROJECT}/jenkins-integration-samples-gke --format="value(digest)"
จากนั้นสำหรับข้อมูลสรุปแต่ละรายการที่แสดง
gcloud container images delete gcr.io/${GOOGLE_CLOUD_PROJECT}/jenkins-integration-samples-gke@sha256:<DIGEST>
9. ยินดีด้วย
แจ่มแจ๋ว! คุณทำได้แล้ว คุณได้เรียนรู้วิธีการทำให้ใช้งานได้ Jenkins ใน GKE และส่งงานไปยังคลัสเตอร์ Kubernetes แล้ว
สิ่งที่เราได้พูดถึงไปแล้ว
- เราได้ติดตั้งคลัสเตอร์ Kubernetes และใช้ Helm เพื่อติดตั้ง Jenkins
- เราได้ติดตั้งและกำหนดค่าปลั๊กอิน GKE เพื่อให้ Jenkins สามารถทำให้ใช้งานได้อาร์ติแฟกต์บิลด์ไปยังคลัสเตอร์ Kubernetes ได้
- เรากำหนดค่า Jenkins เพื่อตั้งค่าไปป์ไลน์แบบหลายสาขาที่ส่งงานไปยังคลัสเตอร์ GKE