Jenkins X
Jenkins X 是一個基於 Jenkins 和 Kubernetes 的 CI/CD 平臺,旨在解決微服務架構下雲原生應用的持續集成和持續交付問題。它使用 Jenkins、Helm、Draft、GitOps 以及 Github 等工具鏈構造了一個從集群安裝、環境管理、持續集成、持續部署一直到應用發佈等支持整個流程的平臺。
安裝部署
安裝 jx 命令行工具
# MacOS
brew tap jenkins-x/jx
brew install jx
# Linux
curl -L https://github.com/jenkins-x/jx/releases/download/v1.1.10/jx-linux-amd64.tar.gz | tar xzv
sudo mv jx /usr/local/bin
部署 Kubernetes 集群
如果 Kubernetes 集群已經部署好了,那麼該步可以忽略。
jx
命令提供了在公有云中直接部署 Kubernetes 的功能,比如
create cluster aks # Create a new kubernetes cluster on AKS: Runs on Azure
create cluster aws # Create a new kubernetes cluster on AWS with kops
create cluster gke # Create a new kubernetes cluster on GKE: Runs on Google Cloud
create cluster minikube # Create a new kubernetes cluster with minikube: Runs locally
部署 Jenkins X 服務
注意在安裝 Jenkins X 服務之前,Kubernetes 集群需要開啓 RBAC 並開啓 insecure docker registries(dockerd --insecure-registry=10.0.0.0/16
)。
運行下面的命令按照提示操作,該過程會配置
Ingress Controller (如果沒有安裝的話)
Ingress 公網 IP 的 DNS(默認使用
ip.xip.io
)Github API token(用於創建 github repo 和 webhook)
Jenkins-X 服務
創建 staging 和 production 等示例項目,包括 github repo 以及 Jenkins 配置等
jx install --provider=kubernetes
安裝完成後,會輸出 Jenkins 的訪問入口以及管理員的用戶名和密碼,用於登錄 Jenkins。
創建應用
Jenkins X 支持快速創建新的應用
# 創建 Spring Boot 應用
jx create spring -d web -d actuator
# 創建快速啓動項目
jx create quickstart -l go
也支持導入已有的應用,只是需要注意導入前要保證
使用 Github 等 git 系統管理源碼並設置好 Jenkins webhook
添加 Dockerfile、Jenkinsfile 以及運行應用所需要的 Helm Chart
# 從本地導入
$ cd my-cool-app
$ jx import
# 從 Github 導入
jx import --github --org myname
# 從 URL 導入
jx import --url https://github.com/jenkins-x/spring-boot-web-example.git
發佈應用
# 發佈新版本到生產環境中
jx promote myapp --version 1.2.3 --env production

常用命令
# Get pipelines
jx get pipelines
# Get pipeline activities
jx get activities
# Get build logs
jx get build logs -f myapp
# Open Jenkins in brower
jx console
# Get applications
jx get applications
# Get environments
jx get environments
Last updated