在2018年年初,Jenkins X首次發布,它由Apache Groovy語言的創建者Jame Strachan創建。Jenkins X 是一個高度集成化的 CI/CD 平台,基於 Jenkins 和 Kubernetes 實現,旨在解決微服務體系架構下的雲原生應用的持續交付的問題,簡化整個雲原生應用的開發、運行和部署過程。僅需一條Jenkins X命令,管理員可以創建一個Kubernetes集群,並安裝用於管理應用程序、創建流水線並部署一個應用程序到不同的環境中的工具。
Jenkin X還是由插件配置的可擴展自動化服務器,可充當持續集成(CI)服務器,持續部署(CD)hub和自動化測試。
Jenkins X(也稱為JX)可以輕松地安裝在現有的雲提供商上(如GKE、AKS等)。或者,如果你由本地Kubernetes集群,也可以使用Jenkins X。通過jx命令,你可以在本地或遠程雲提供商(如Google Cloud Platform)上快速部署集群。
本文將教您完成在Ubuntu Server 18.04上運行的現有Kubernetes集群上安裝Jenkins X的過程。
前期准備
我將演示在本地和Google Cloud Platform上部署Kubernetes集群(使用Jenkins X)。為此,您需要:
-
已安裝Kubernetes的Ubuntu Server的運行實例。
-
一個Google Cloud Platform帳戶。
-
具有sudo權限的用戶。
-
網絡連接。
除此之外,還需一點時間。
讓我們開始吧!
安裝Jenkins X
在Ubuntu上安裝Jenkins X十分簡單。從Jenkins X Github官方頁面(https://github.com/jenkins-x/ )上下載可執行的二進制文件,然后將其移到正確的目錄中。為此,請通過SSH登錄到服務器,或直接登錄到控制台,在服務器出現bash提示后,輸入命令:
curl -L "https://github.com/jenkins-x/jx/releases/download/$(curl --silent "https://github.com/jenkins-x/jx/releases/latest" | sed 's#.*tag/\(.*\)\".*#\1#')/jx-linux-amd64.tar.gz" | tar xzv "jx"
以上命令將下載最新版本的Jenkins X,然后解壓二進制文件。命令完成之后,你應該在當前工作目錄中看到一個名為jx的可執行文件(如下圖):
為了移動Jenkins X二進制文件,請輸入以下命令:
sudo mv jx /usr/local/bin
如果你選擇使用一個虛擬機環境來部署一個集群,你必須安裝它。為此,你需要安裝KVM、KVM-2或VirtualBox。為了簡化操作,我們將安裝VirtualBox。這會安裝X server,但你無需使用它。
要安裝VirtualBox,請輸入命令:
sudo apt-get install virtualbox -y
安裝將花費一些時間,等安裝結束之后,你需要在Ubuntu Server上安裝minikube(這將是我們的提供商)。為了完成這一操作,使用以下命令下載必要的文件:
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
使用以下命令更改下載文件的權限:
chmod +x minikube-linux-amd64
使用命令移動(並重命名)文件到適當的目錄中:
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
使用以下命令,你應該能看到minikube已經安裝完成:
minikube version
下圖將展示minikube的版本號:
jx命令部署一個集群
現在,我們要去部署一個集群,這一集群將使用minikube和VirtualBox作為驅動。部署集群的命令如下:
jx create cluster minikube
你將會被問到以下問題:
-
應用於集群的內存量(默認為4096)
-
應用於集群的核心數(默認為3)
-
磁盤大小(默認為150GB)
-
選擇驅動程序(從kvm、kvm2、virtualBox、無中選擇)
如果你選擇以下選項:
-
內存4096
-
核心3
-
磁盤空間20GB
-
VirtualBox驅動程序
有效的命令如下:
minikube start --memory 4096 --cpus 3 --disk-size 20GB --vm-driver virtualbox --bootstrapper=kubeadm
你也可以不使用驅動在本地部署一個集群。要完成此操作,你必須使用通過sudo運行jx命令,如:
sudo jx create cluster minikube --local-cloud-environment=true
命令將運行如下:
minikube start --memory 4096 --cpus 3 --disk-size 20GB --vm-driver none --bootstrapper=kubeadm
jx命令將負責提取所有必要的鏡像並部署配置的集群。
部署到谷歌雲
假設您要將集群部署到Google Cloud Platform, Jenkins X也可以實現。在執行此操作之前,你必須首先安裝gcloud應用程序。為此,請返回到終端窗口,並使用以下命令下載源文件:
wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-265.0.0-linux-x86_64.tar.gz
使用以下命令解壓文件:
tar -zxf google-cloud-sdk-*
使用以下命令進入新創建的目錄:
cd google-cloud-sdk
最后,使用命令運行安裝程序:
./install.sh
處理完之后,請使用以下命令更新gcloud的所有內容:
gcloud components update
最后,你必須使用以下命令登錄到你的Google Cloud Platform帳戶:
gcloud auth login
復制鏈接到瀏覽器,選擇要使用的谷歌賬戶,然后復制獲得的驗證碼,將其粘貼到命令提示符下,按Enter鍵。現在,你已經登錄Google Cloud Plartform賬戶,可以發出以下命令:
jx create cluster gke --skip-login
出現提示時,確保選擇要使用的Google Cloud Project:
做出選擇並按下Enter鍵后,系統會提示您選擇一個區域:
接着,將問你Jenkins的安裝類型(在有Tekton的Serverless Jenkins X 流水線或有Jenkinsfikes的Static Jenks Server中選擇)。請注意,使用tekton時,僅支持kaniko作為構建器。
然后,你需要輸入名稱和郵箱地址以用於git,然后為你的Github賬戶獲取必要的API密鑰。之后,集群將部署並可以為你工作。
這就是在現有Kubernetes集群上安裝和使用Jenkins X的要旨。這一工具還有許多其他功能,強烈建議你閱讀官方文檔: