K8S部署apollo配置中心
K8S部署apollo配置中心
說明:最近在用K8S部署微服務,而微服務的配置檔案眾多,需要一個配置中心來處理配置檔案。於是採用apollo來作為配置中心。本例項介紹瞭如何採用K8S部署高可用的apollo叢集。
一、前提條件
1、已經搭建了一個K8S叢集
2、一個可用的mysql資料庫
apollo是需要用到mysql資料庫的,所以必須要有一個可用的mysql資料庫。
二、apollo映象構建
採用K8S部署apollo時,需要用到多個映象。這些映象,需要自己構建。
1.獲取映象構建指令碼
鑑於在K8S中使用的apollo映象需要自己構建(注意是多個映象),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