Multi-environment
利用Apollo为dubbo服务提供多环境配置
环境分离
- 两套环境
test
和prod
-
k8s名称空间与镜像仓库
[root@hdss7-21 ~]# kubectl create ns test [root@hdss7-21 ~]# kubectl create ns prod [root@hdss7-21 ~]# kubectl create secret docker-registry harbor --docker-server=harbor.od.com --docker-username=admin --docker-password=Harbor12345 -n test [root@hdss7-21 ~]# kubectl create secret docker-registry harbor --docker-server=harbor.od.com --docker-username=admin --docker-password=Harbor12345 -n prod
-
apollo-portal可以多环境共用,但admin和config需要每套环境一组,而且admin和config分别对应的数据库也需要分离
[root@hdss7-11 ~]# vim apolloconfig.sql ... CREATE DATABASE IF NOT EXISTS ApolloConfigTestDB DEFAULT CHARACTER SET = utf8mb4; Use ApolloConfigTestDB; ... [root@hdss7-11 ~]# mysql -uroot -p123456 < apolloconfig.sql [root@hdss7-11 ~]# vim apolloconfig.sql ... CREATE DATABASE IF NOT EXISTS ApolloConfigProdDB DEFAULT CHARACTER SET = utf8mb4; Use ApolloConfigProdDB; ... [root@hdss7-11 ~]# mysql -uroot -p123456 < apolloconfig.sql [root@hdss7-11 ~]# mysql -uroot -p123456 MariaDB [(none)]> update ApolloConfigTestDB.ServerConfig set ServerConfig.Value="http://config-test.od.com/eureka" where ServerConfig.Key="eureka.service.url"; MariaDB [(none)]> update ApolloConfigProdDB.ServerConfig set ServerConfig.Value="http://config-prod.od.com/eureka" where ServerConfig.Key="eureka.service.url"; MariaDB [(none)]> grant INSERT,DELETE,UPDATE,SELECT on ApolloConfigTestDB.* to "apolloconfig"@"10.4.7.%" identified by "123456"; MariaDB [(none)]> grant INSERT,DELETE,UPDATE,SELECT on ApolloConfigProdDB.* to "apolloconfig"@"10.4.7.%" identified by "123456"; MariaDB [(none)]> use ApolloPortalDB; MariaDB [ApolloPortalDB]> update ServerConfig set Value='fat,pro' where Id=1;
-
关闭apollo服务
[root@hdss7-21 ~]# kubectl edit deployment -ninfra apollo-adminservice [root@hdss7-21 ~]# kubectl edit deployment -ninfra apollo-configservice [root@hdss7-21 ~]# kubectl edit deployment -ninfra a