企業微服務項目如何進入K8S的全過程


前言

現在很多企業已經進入了docker容器化的部署方式,容器化的部署離不開容器編排的工具,現在用的最多的當屬K8S的編排工具。那項目從0開始時,一直進入到k8s中,整體流程是什么,以及用到什么工具組件呢?今天老顧就從整體上面來介紹一下。

整體流程

企業微服務項目如何進入K8S的全過程

 

工作流程

1)開發人員提交代碼到Git版本倉庫;
2)Jenkins人工/定時觸發項目構建;
3)Jenkins拉取代碼、代碼編碼、打包鏡像、推送到測試環境的鏡像倉庫;
4)k8s拉取鏡像產生pod中的容器
5)測試環境中測試沒有問題后,把鏡像同步到生產的鏡像倉庫中
6)生產環境K8S部署鏡像

git

git現在有的私有倉庫,有兩種選擇gitlab,gogs。

gogs

企業微服務項目如何進入K8S的全過程

 

一開始老顧選擇的gogs,因為比較輕量級,消耗服務器的資源也很少。但是gogs現有版本中缺少很重要的功能,就是在web界面上面操作拉取分支的功能,這個功能是平常經常用的,但比較可惜的是gogs現在不支持。

gitlab

企業微服務項目如何進入K8S的全過程

 

gitlab功能還是比較強大的,唯一的缺點就是比較耗服務器資源,最好用4G內存承載,要不然很慢哦

jenkins

企業微服務項目如何進入K8S的全過程

 

 

企業微服務項目如何進入K8S的全過程

 

jenkins應該是持續集成的唯一選擇了,功能非常強大,強大的插件功能;不同的團隊應用jenkins的方式也不盡相同。

拉取git的插件Git Parameter

動態獲取Git倉庫Branch、Tag
企業微服務項目如何進入K8S的全過程

 

企業微服務項目如何進入K8S的全過程

 

配置好后,在build時,你可以選擇不同的分支

企業微服務項目如何進入K8S的全過程

 

利用pom.xml文件構建項目

企業微服務項目如何進入K8S的全過程

 

在Jenkins本機鏡像構建與推送到鏡像倉庫

企業微服務項目如何進入K8S的全過程

 

REPOSITORY=192.168.110.10/qy-tribe/user-server:${branch}
#構建鏡像

cat > Dockerfile << EOF

FROM openjdk:8-jdk-alpine

RUN rm -rf /usr/local/qy-tribe

COPY target/*.jar /usr/local/qy-tribe/user-server.jar

ENTRYPOINT java -jar /usr/local/qy-tribe/user-server.jar

EOF

docker build -t $REPOSITORY .

#上傳鏡像

docker push $REPOSITORY

上面是直接在jenkins的shell中輸入了構建鏡像腳本。

其實還有一種常用的方式就是在項目工程下新建Dockerfile文件,在可以利用mvn插件

企業微服務項目如何進入K8S的全過程

 

在jenkins中使用shell

mvn dockerfile:build dockerfile:push

這樣就更簡單一點

注意點:因為我們會對同一個版本會構建多次,鏡像images會產生多次,會把上一次的鏡像的tag更改為none;我們要記得清除哪些被替換的image,可以使用腳本

注意點:jenkins結點需要安裝docker哦,不要忘了

docker images | grep none | awk '{print $3}' | xargs docker rmi

鏡像倉庫

現在市面上的鏡像倉庫,不二人選肯定是harbor了,使用起來比較簡單,功能也是比較強大的

企業微服務項目如何進入K8S的全過程

 

harbor的安裝推薦使用docker方式安裝,比較方便

https://github.com/goharbor/harbor/releases/download

harbor中有個復制管理,即是同步鏡像的功能。

很多網上有harbor的高可用,以及集群的架構方案,老顧認為沒有必要,應該harbor是在內部使用,高可用的需求不強烈。我們只要保證鏡像文件不丟失即可,正好harbor的復制管理即可完成此功能。

所以我們只要架設幾個harbor就ok了

k8s

k8s集群安裝是比較復雜的,網上介紹的有兩種方式kubeadm方式和二進制方式,我們今天介紹更簡單的方式,只要幾句命令就ok。

利用sealyun工具,利用go語言方式,能夠快速搭建k8s集群

結點規划

主機名

IP地址

master01

192.168.0.2

master02

192.168.0.3

master03

192.168.0.4

work01

192.168.0.5

work02

192.168.0.6

注意:

系統支持:centos7.2以上 ubuntu16.04以上 內核推薦4.14以上

推薦配置:centos7.4

注意事項

1)必須同步所有服務器時間

2)所有服務器主機名不能重復

#下載並安裝sealos, sealos是個golang的二進制工具,直接下載拷貝到#bin目錄即可, release頁面也可下載
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos && \
chmod +x sealos && mv sealos /usr/bin

#下載離線資源包
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/d551b0b9e67e0416d0f9dce870a16665-1.18.0/kube1.18.0.tar.gz


#安裝一個三master的kubernetes集群
sealos init --passwd 123456 \
--master 192.168.0.2 --master 192.168.0.3 --master 192.168.0.4 \
--node 192.168.0.5 --node 192.168.0.6 \
--pkg-url /root/kube1.18.0.tar.gz \
--version v1.18.0

上面就是3條命令,就可以幫我們完成k8s集群的搭建,等待的時長根據自身的網絡環境。

注意:上面的passwd 123456,是5個服務器結點的root密碼,一定要一樣哦

k8s界面控制台

安裝好了k8s后,只能用命令方式控制k8s,是很不方便的,所以我們還需要安裝一個界面控制台,我們這里選擇強大的kuboard

wget https://github.com/sealstore/dashboard/releases/download/v1.0-1/kuboard.tar


sealos install --pkg-url kuboard.tar

到這里我們完成了k8s的安裝,來看看炫酷的界面

企業微服務項目如何進入K8S的全過程

 

創建Deployment

企業微服務項目如何進入K8S的全過程

 

企業微服務項目如何進入K8S的全過程

 

kuboard的優勢,可以在邏輯上面區分不同的層級,可以方便的讓我們一覽系統架構

企業微服務項目如何進入K8S的全過程

 

ingress安裝

為了讓集群外可以訪問集群里面的訪問,需要安裝ingress

kubectl apply -f https://kuboard.cn/install-script/v1.16.2/nginx-ingress.yaml
企業微服務項目如何進入K8S的全過程

 

配置service服務,以及ingress

企業微服務項目如何進入K8S的全過程

 

總結

今天整體介紹把一個微服務項目,如何部署到k8s中,經過什么流程,以及需要什么工具,而且推薦了市面上面的主流工具。尤其介紹了k8s集群的搭建的工具,很推薦哦

當然具體工具的使用細節,需要小伙伴們自行搭建,里面會遇到很多的坑,遇到坑就去解決,這樣理解起來會更好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM