Deploy Jenkins On K8S

Image from Jenkins.io
  • ฝาก Image เอาไว้บน Docker Hub หรือ Store
  • จาก Local Registry จะเหมือนกับ Docker Hub ทุกอย่าง คือเรียกง่ายๆ ว่าเป็น Private Docker Hub ก็ได้ครับ
  • จาก Local ก็จากที่เรา Build Image กันนั่นละครับ ดึงมาใช้งานตรงๆ เลย
$> docker push jenkins:dotnetcore-2.1
Push image to Docker hub
$> microk8s.enable registry
  • ใช้ Image เดิมที่มีอยู่ โดยการ กำหนด Tag ใหม่ ซึ่งคำสั่งก็จะมีลักษณะ ดังนี้
$> docker tag {current tag} {registry url}:{port}/{target tag}# ตัวอย่าง
$> docker tag jenkins:dotnetcore-2.1 localhost:32000/jenkins:dotnetcore-2.1
  • Build image ใหม่ โดยกำหนด registry ใน tag เลย
$> docker build -t {registry url}:{port}/tag# ตัวอย่าง
$> docker build -t localhost:32000/jenkins:dotnetcore-2.1 .
Docker build images
$> docker push localhost:32000/jenkins
$> kubectl create ns jenkins-space
Kubectl create jenkins-space
K8S Namespace on Ingress Dash board
Pull image from Docker hub
Pull image from private registry
Use local image
  • Always ตรวจสอบจาก Docker Hub หรือ Registry ทุกครั้ง
  • IfNotPresent หากไม่พบ Image ใน Local ให้ โหลดจาก Docker Hub หรือ Registry
  • Never ไม่ต้องตรวจสอบ
$> kubectl create -f jenkins-deployment.yml --namespace jenkins-space
Create Pods and Deployment
$> kubectl  describe deployments --namespace=jenkins-space
Jenkins Deployment & Pod Detail
Jenkins Deployment
Jenkins service file
$> kubectl create -f jenkins-service.yml --namespace jenkins-space
Create Jenkins service
Jenkins Service
$> kubectl get pods --namespace=jenkins-space
Jenkins Pod List
$> kubectl logs {deployment name} --namespace={namespace}# ตัวอย่าง
$> kubectl logs jenkins-deployment-75d4854d48-27dxn --namespace=jenkins-space
Jenkins Initial Password
Jenkins Pod detail on Ingress Board
Jenkins Pod Log
http://{K8S IP}:{Node Pod}#ตัวอย่าง
http://11.11.11.20:30000
Jenkins Enter Initial Password
Plug-In install
$> sudo iptables -P FORWARD ACCEPT
$> sudo ufw default allow routed

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store