1. 程式人生 > >從實戰角度超級詳解中大型企業微服務化的六大核心關鍵技術

從實戰角度超級詳解中大型企業微服務化的六大核心關鍵技術

在之前文章:超全詳解Java開發環境搭建 一文中,部分博友提出程式的自動化部署等相關問題,本篇文章就來解決該問題,即企業微服務化,如何實現服務的自動化部署?服務自動化部署需要哪些技術?

本篇文章從實戰角度講解中大型公司微服務化最核心最關鍵的六大技術,即jenkins,docker,maven,git,gitlab,harbor(本篇文章未講解nexus,在後續文章再講解),關於六大技術,會在接下來的文章中從架構,理論,實戰,常見難點和常見誤區等角度精細化講解。

Tip:本篇文章適合具有一定linux和docker基礎的讀者,對於不熟悉linux和docker的讀者朋友,可以先關注,後續文章會對每個專題從入門到架構進行講解。

 一 docker安裝


 1.解除安裝舊版本

yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

2.安裝相關工具

yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

 3.選擇穩定倉庫

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

 注意:這裡可以選擇阿里雲映象或網易雲映象等,也可選擇自己公司搭建的harbor映象倉庫

4.下載最新版docker

yum install docker-ce docker-ce-cli containerd.io

注意:如果安裝具體版本,請使用命令:yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

5.啟動docker

systemctl start docker

6.加入開機啟動

system enable docker

7.檢視是否安裝成功

docker info

如下表示安裝成功

 *************************特別說明***********************************

關於徹底解除安裝docker:

(1)查詢docker安裝過的包

yum list installed | grep docker

(2)安裝安裝包

yum remove docker-ce.x86_64 ddocker-ce-cli.x86_64 -y

(3)刪除容器映象

rm -rf /var/lib/docker

rm -rf /var/run/docker

rm -rf /etc/systemd/system/docker.service.d

(4)解除安裝docker相關元件

 yum remove docker \
         docker-client \
         docker-client-latest \
         docker-common \
         docker-latest \
         docker-latest-logrotate \
         docker-logrotate \
         docker-engine

關於centos 官網參考:

https://docs.docker.com/install/linux/docker-ce/centos/

***********************************************************************

二 docker安裝gitlab


 1.docker查詢gitlab

docker search gitlab

 2.拉取gialab映象

我們選擇映象名稱為gitlab/gitlab-ce的映象來安裝

docker pull gitlab/gitlab-ce

 3.檢視本地拉取的gitlab映象

 4.啟動映象

docker run -itd -p 9980:80 -p 9943:443 -p 9922:22 --name gitlab gitlab/gitlab-ce:latest

啟動容器,建議採用如下方式:

docker run \
--detach \
--publish 9943:443 \
--publish 9980:80 \
--name gitlab \
--restart=always \
-v /mnt/gitlab/etc:/etc/gitlab \
-v /mnt/gitlab/log:/var/log/gitlab \
-v /mnt/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest

注意:埠號:9980,9943,9922可以任意選擇,但是80,443,22是gitalab映象固定的,不要改變。

5.將埠號加入防火牆

注意:需要將對映的埠號9980,9943,9922加入防火牆,如果不加入防火牆,雖然能成功啟動gitlab映象,但瀏覽器訪問不了

(1)將9980,9943,9922埠號加入防火牆

firewall-cmd --permanent --add-port=9980/tcp

firewall-cmd --permanent --add-port=9943/tcp

firewall-cmd --permanent --add-port=9922/tcp

(2)重啟防火牆

systemctl reload firewalld

(3)檢視防火牆允許埠

firewall-cmd --list-ports

6.設定開機啟動容器

docker update --restart=always 容器名稱 

7.檢視容器狀態

docker ps

如下表示啟動容器成功

8.訪問gitlab

訪問方式:ip:9980

這裡的9980埠就是啟動gitlab容器時設定的埠

首次訪問時,需要設定密碼(這裡設定為12346),預設賬戶為root

 

 用剛才設定的密碼登入

賬號/密碼:root/123456

三 harbor


 (一)安裝docker-compose

關於docker-compose安裝,分為線上安裝和離線安裝。

線上安裝,請參照官網:https://docs.docker.com/compose/install/#install-compose

 由於大部分公司運用程式部署在內網,因此主要講解內網安裝

1.下載docker-compose離線安裝包

github提供下載地址:https://github.com/docker/compose/releases

 2.將下載的安裝包上傳到linux 

我上傳到/usr/harbor_1.10.1 目錄下

  3.將docker-compose-Linux-x86_64.64移動到/usr/local/bin,並重命名為docker-compose

mv docker-compose-Linux-x86_64.64  /usr/local/bin/docker-compose

 4.賦許可權

chmod +x /usr/local/bin/docker-compose

5.檢視是否安裝成功

docker-compose -v

如下表示docker-compose安裝成功

 (二)安裝python 2.7+

 由於大部分電腦都自帶了python2,所以這裡就不講解安裝python了。

(三)harbor安裝

 3.訪問

訪問時,只需輸入ip或域名即可,預設埠號為80

賬號/密碼:admin/Alan_beijing

登入成功後主介面如下:

 *****************************************************************************

其他一下相關操作提示

******************************************************************************

1.資料儲存路徑

在預設安裝情況下,harbor儲存路徑是/data/    

https://blog.csdn.net/BalaBalaYi/article/details/83338416

2.登入harbor伺服器

假若A(10.3.212.21)為harbor伺服器,B伺服器要操作harbor伺服器映象,需要做如下操作:

(1)配置B伺服器

vim /etc/docker/daemon.json

否則,會出現:

 (2)配置完後,重啟docker

  systemctl restart docker

四  部署jenkins


 (一)安裝maven

1.下載maven

wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz

2.將maven包移動到/usr,並解壓

mv ./apache-maven-3.6.1-bin.tar.gz /usr/apache-maven-3.6.1-bin.tar.gz

tar -zxvf apache-maven-3.6.1-bin.tar.gz

3.配置maven環境變數

vim /etc/profile

#配置maven
export MAVEN_HOME=/usr/apache-maven-3.6.1
export PATH=$MAVEN_HOME/bin:$PATH

 4.source profile檔案

source  /etc/profile

5.檢視maven是否配置成功

mvn -v,如果出現如下,就表示成功

 (二)GIT安裝

git安裝有兩種方式,yum方式和通過git原始碼安裝方式,本次講解通過git源安裝

1.解除安裝舊版本git

yum remove git

2.下載git gz包

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz

Tip:

如果要下載其他版本,請去官網獲取不同源url,官網源url

https://mirrors.edge.kernel.org/pub/software/scm/git/

3.解壓

tar -zxvf git-2.9.5.tar.gz

4.安裝相關依賴

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc xmlto docbook2x autoconf

yum install gcc perl-ExtUtils-MakeMaker

注意:這一步可以先跳過,等後面安裝出現問題時,再具體安裝也可(推薦)

5.配置安裝路徑

make configure

./configure prefix=/usr/git-2.9.5

6.編譯安裝

make install 

7.配置變數

vim /etc/profile

export GIT_HOME=/usr/git-2.9.5
export PATH=$GIT_HOME/bin:${PATH}

 8.重新整理配置檔案

source /etc/profile

9.檢視安裝是否成功

git --version

 (三)jenkins安裝

 關於jenkins安裝,有兩種安裝方式,即基於linux的tomcat安裝和基於docker安裝,由於jenkins是管理核心資料的建議採用基於tomcat方式安裝,

(一)基於linux的tomcat方式安裝

這種方式就是傳統tomcat部署方式,即將jenkins.war放在tomcat中即可,在後續專題講解jenkins中講解,這裡不講解。

(二)基於docker安裝

1.docker查詢jenkins映象

2.拉取映象

docker pull jenkins

3.建立目錄

這個目錄可以隨意指定,我這裡建立為: mkdir   /usr/jenkins

4.為剛才建立的目錄賦予許可權

chmod 777 /usr/jenkins/

5.啟動映象

需要注意的是:需要先將對映的端開啟防火牆允許,如下對映的埠9090和5000需要讓防火牆允許。

docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true  -v /usr/jenkins:/var/jenkins_home jenkins:latest

6.訪問

訪問方式:ip:9090或域名訪問

注意:這裡的9090埠為如上對映的端號

 7.初始密碼

初始密碼在/var/jenkins_home/secrets/initialAdminPassword,操作步驟如下:

(1)檢視jenkins容器id

docker ps

(2)進入容器

進入容器格式為:

 

(3)檢視密碼

cat  /var/jengkins_home/secrets/initialAdminPassword

(4)用查詢到密碼登入

如下表示登入成功。

五  總結


 本篇文章從操作角度講解了docker,jenkins,git,maven,harbor,gitlab,在後續文章,會按照七個專題(docker,jenkins,git,maven,

harbor,gitlab和nexus)從架構,實戰,常見難點,常見誤區等角度精細化講解,感興趣的讀者,可以加入架構師群(820424)一起交流

分享,架構師群每天都會分享技術幹活,設計到基礎技術,中級技術,高階技術,架構師技術,PM技術和微服務架構等,且群裡提出的問題24h內

必解決。

六  版權區


 感謝您的閱讀,若有不足之處,歡迎指教,共同學習、共同進步。

 從入門到架構群:820424。

 極少部分文章利用讀書、參考、引用、抄襲、複製和貼上等多種方式整合而成的,大部分為原創。

 如您喜歡,麻煩推薦一下;如您有新想法,歡迎提出,郵箱:[email protected]

 可以轉載該部落格,但必須著名部落格來