1. 程式人生 > 其它 >K8S部署apollo配置中心

K8S部署apollo配置中心

K8S部署apollo配置中心

說明:最近在用K8S部署微服務,而微服務的配置檔案眾多,需要一個配置中心來處理配置檔案。於是採用apollo來作為配置中心。本例項介紹瞭如何採用K8S部署高可用的apollo叢集。

一、前提條件

1、已經搭建了一個K8S叢集

2、一個可用的mysql資料庫

apollo是需要用到mysql資料庫的,所以必須要有一個可用的mysql資料庫。

二、apollo映象構建

採用K8S部署apollo時,需要用到多個映象。這些映象,需要自己構建。

1.獲取映象構建指令碼

鑑於在K8S中使用的apollo映象需要自己構建(注意是多個映象),apollo給出了構建這些映象所需要的指令碼。可從

https://github.com/ctripcorp/apollo 或者 國內的gitee https://gitee.com/nobodyiam/apollo 下載指令碼。國內下載會比較快。

git clone https://github.com/ctripcorp/apollo.git  (或者 git clone https://gitee.com/nobodyiam/apollo.git)

獲取檔案後,進入到 /scripts/apollo-on-kubernetes。這裡面,每一個資料夾,對應著相應的指令碼。有打apollo映象的指令碼,有mysql資料庫的指令碼,也有k8s下執行apollo的指令碼。

2.獲取apollo的壓縮包,並解壓。

https://github.com/ctripcorp/apollo/releases 可以獲取apollo的壓縮包,現在的最新版本是v1.8.2

2.1 檔案下載

假如下載的是最新的版本:
apollo-portal-1.8.2-github.zip
apollo-adminservice-1.8.2-github.zip
apollo-configservice-1.8.2-github.zip

2.2 檔案解壓

​解壓 apollo-portal-1.8.2-github.zip
​獲取 apollo-portal-1.8.2.jar, 重新命名為 apollo-portal.jar, 放到 scripts/apollo-on-kubernetes/apollo-portal-server

​解壓 apollo-adminservice-1.8.2-github.zip
​獲取 apollo-adminservice-1.8.2.jar, 重新命名為 apollo-adminservice.jar, 放到 scripts/apollo-on-kubernetes/apollo-admin-server

​解壓 apollo-configservice-1.8.2-github.zip
​獲取 apollo-configservice-1.8.2.jar, 重新命名為 apollo-configservice.jar, 放到 scripts/apollo-on-kubernetes/apollo-config-se

2.3 打docker映象

當檔案解壓,並放入對應的指令碼資料夾後,就可以構建映象了(指令碼資料夾中有對應的dockerfile)。
構建 alpine-bash 映象

進入 scripts/apollo-on-kubernetes/alpine-bash-3.8-image,執行:
docker build -t alpine-bash:3.8 .

構建 apollo-admin-server 映象

進入 scripts/apollo-on-kubernetes/apollo-admin-server,執行:
docker build -t apollo-admin-server:v1.8.2 .

構建 apollo-config-server 映象

進入 scripts/apollo-on-kubernetes/apollo-config-server,執行:
docker build -t apollo-config-server:v1.8.2 .

構建 apollo-portal-server 映象

進入 scripts/apollo-on-kubernetes/apollo-portal-server,執行:
docker build -t apollo-portal-server:v1.8.2 .

三、建立mysql資料庫

​apollo需要用到mysql,apollo服務端共需要兩個資料庫:ApolloConfigDB 和 ApolloPortalDB 。在目錄 scripts/apollo-on-kubernetes/db 中,給出了 dev、test-alpha、test-beta、prod 四個環境的ApolloConfigDB指令碼,而ApolloPortalDB 是通用的。我這裡只部署prod環境的。當然,可以同時部署四個環境的資料庫。
指令碼執行如下所示:

四、執行yaml檔案,K8S部署apollo.

​ 進入 scripts/apollo-on-kubernetes/kubernetes,裡面有各個環境的yaml檔案。由於我只部署prod環境,對apollo-env-prod 中的yaml檔案進行相應的更改。同時更改 service-apollo-portal-server.yaml 的配置。然後根據 kubectl-apply.sh 檔案中的順序執行就可以了。

1.部署後apollo的Eureka註冊中心。

​ apollo自帶了一個Eureka註冊中心。

2.部署環境完成portal頁面圖

​輸入使用者名稱密碼:apollo/admin,就可以看到portal頁面圖。

五、檔案參考

1.https://developer.51cto.com/art/202101/640183.htm

2.https://github.com/ctripcorp/apollo/tree/master/scripts/apollo-on-kubernetes