生产实践:
迭代新需求/修复BUG(编码->提GIT)—> 测试环境发版,测试(应用通过编译打包发布至TEST命名空间)—>测试通过,上线(应用镜像直接发布至PROD命名空间)
系统架构
物理架构
主机名 | 角色 | ip |
---|---|---|
node7-11.host.com | zk-test(测试环境Test) | 10.4.7.11 |
node7-12.host.com | zk-prod(生产环境Prod) | 10.4.7.12 |
node7-21.host.com | kubernetes运算节点 | 10.4.7.21 |
node7-22.host.com | kubernetes运算节点 | 10.4.7.22 |
node7-200.host.com | 运维主机,harbor仓库 | 10.4.7.200 |
K8S内系统架构
环境 | 命名空间 | 应用 |
---|---|---|
测试环境(TEST) | test | apollo-config,apollo-admin |
测试环境(TEST) | test | dubbo-demo-service,dubbo-demo-web |
生产环境(PROD) | prod | apollo-config,apollo-admin |
生产环境(PROD) | prod | dubbo-demo-service,dubbo-demo-web |
ops环境(infra) | infra | jenkins,dubbo-monitor,apollo-portal |
划分测试环境、生产环境
修改/添加域名解析
[root@node7-11 ~]# vi /var/named/od.com.zone
zk-test A 10.4.7.11
zk-prod A 10.4.7.12
config-test A 10.4.7.10
config-prod A 10.4.7.10
demo-test A 10.4.7.10
[root@node7-11 ~]# systemctl restart named
创建test、prod名称空间
kubectl create ns test
kubectl create secret docker-registry harbor --docker-server=harbor.od.com --docker-username=admin --docker-password=Harbor12345 -n test
kubectl create ns prod
kubectl create secret docker-registry harbor --docker-server=harbor.od.com --docker-username=admin --docker-password=Harbor12345 -n prod
创建ApolloConfigTestDB,ApolloConfigProdDB
[root@node7-11 ~]# cp apolloconfigdb.sql apolloconfigdbTest.sql
[root@node7-11 ~]# vi apolloconfigdbTest.sql
CREATE DATABASE IF NOT EXISTS ApolloConfigTestDB DEFAULT CHARACTER SET = utf8mb4;
Use ApolloConfigTestDB;
[root@node7-11 ~]# vi apolloconfigdbProd.sql
CREATE DATABASE IF NOT EXISTS ApolloConfigProdDB DEFAULT CHARACTER SET = utf8mb4;
Use ApolloConfigProdDB;
[root@node7-11 ~]# cp apolloconfigdb.sql apolloconfigdbProd.sql
[root@node7-11 ~]# mysql -uroot -p < apolloconfigdbTest.sql
[root@node7-11 ~]# mysql -uroot -p < apolloconfigdbProd.sql
[root@node7-11 ~]# mysql -uroot -p
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| ApolloConfigDB |
| ApolloConfigProdDB |
<