K8S中搭建Apollo
2021-05-10微服务配置中心点击王峰 共1,378字,阅读约需8分钟
环境准备
- Rancher
- k8s 1.20
- Helm 3
- MySQL数据库
添加Apollo Helm Chart仓库
1 2
| helm repo add apollo https://www.apolloconfig.com/charts helm search repo apollo
|
数据库脚本
下载apollo/scripts/docker-quick-start/sql目录下的apolloportaldb.sql
和apolloconfigdb.sql
两个SQL脚本;
由于搭建的Apollo服务将会用于公司内网1套开发环境和6套测试环境,所以需要搭建1套apollo-portal
服务和7套apollo-configservice
和apollo-adminservice
服务,对应的需要建立一套ApolloPortalDB
和7套ApolloConfigDB
:
- 使用
apolloportaldb.sql
建立ApolloConfigDB
库;
- 使用
apolloportaldb.sql
建立ApolloConfigDB_20_21
、ApolloConfigDB_20_2
、ApolloConfigDB_20_207
、ApolloConfigDB_20_22
、ApolloConfigDB_20_76
、ApolloConfigDB_20_91
、ApolloConfigDB_20_105
库
服务部署
部署apollo-configservice和apollo-adminservice
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| helm install apollo-service-20-2 \ --set configdb.host=<MYSQL_IP> \ --set configdb.port=<MYSQL_PORT> \ --set configdb.userName=<MYSQL_USERNAME> \ --set configdb.password=<MYSQL_PASSWORD> \ --set configdb.dbName=ApolloConfigDB_20_2 \ --set configdb.service.enabled=true \ --set configService.replicaCount=1 \ --set adminService.replicaCount=1 \ -n apollo \ apollo/apollo-service
helm install apollo-service-20-207 \ --set configdb.host=<MYSQL_IP> \ --set configdb.port=<MYSQL_PORT> \ --set configdb.userName=<MYSQL_USERNAME> \ --set configdb.password=<MYSQL_PASSWORD> \ --set configdb.dbName=ApolloConfigDB_20_207 \ --set configdb.service.enabled=true \ --set configService.replicaCount=1 \ --set adminService.replicaCount=1 \ -n apollo \ apollo/apollo-service
helm install apollo-service-20-21 \ --set configdb.host=<MYSQL_IP> \ --set configdb.port=<MYSQL_PORT> \ --set configdb.userName=<MYSQL_USERNAME> \ --set configdb.password=<MYSQL_PASSWORD> \ --set configdb.dbName=ApolloConfigDB_20_21 \ --set configdb.service.enabled=true \ --set configService.replicaCount=1 \ --set adminService.replicaCount=1 \ -n apollo \ apollo/apollo-service
helm install apollo-service-20-22 \ --set configdb.host=<MYSQL_IP> \ --set configdb.port=<MYSQL_PORT> \ --set configdb.userName=<MYSQL_USERNAME> \ --set configdb.password=<MYSQL_PASSWORD> \ --set configdb.dbName=ApolloConfigDB_20_22 \ --set configdb.service.enabled=true \ --set configService.replicaCount=1 \ --set adminService.replicaCount=1 \ -n apollo \ apollo/apollo-service
helm install apollo-service-20-76 \ --set configdb.host=<MYSQL_IP> \ --set configdb.port=<MYSQL_PORT> \ --set configdb.userName=<MYSQL_USERNAME> \ --set configdb.password=<MYSQL_PASSWORD> \ --set configdb.dbName=ApolloConfigDB_20_76 \ --set configdb.service.enabled=true \ --set configService.replicaCount=1 \ --set adminService.replicaCount=1 \ -n apollo \ apollo/apollo-service
helm install apollo-service-20-91 \ --set configdb.host=<MYSQL_IP> \ --set configdb.port=<MYSQL_PORT> \ --set configdb.userName=<MYSQL_USERNAME> \ --set configdb.password=<MYSQL_PASSWORD> \ --set configdb.dbName=ApolloConfigDB_20_91 \ --set configdb.service.enabled=true \ --set configService.replicaCount=1 \ --set adminService.replicaCount=1 \ -n apollo \ apollo/apollo-service
helm install apollo-service-20-105 \ --set configdb.host=<MYSQL_IP> \ --set configdb.port=<MYSQL_PORT> \ --set configdb.userName=<MYSQL_USERNAME> \ --set configdb.password=<MYSQL_PASSWORD> \ --set configdb.dbName=ApolloConfigDB_20_105 \ --set configdb.service.enabled=true \ --set configService.replicaCount=1 \ --set adminService.replicaCount=1 \ -n apollo \ apollo/apollo-service
|
部署apollo-portal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| helm install apollo-portal \ --set portaldb.host=<MYSQL_IP> \ --set portaldb.port=<MYSQL_PORT> \ --set portaldb.userName=<MYSQL_USERNAME> \ --set portaldb.password=<MYSQL_PASSWORD> \ --set portaldb.dbName=ApolloPortalDB \ --set portaldb.service.enabled=true \ --set config.envs="dev21\,test2\,test22\,test76\,test91\,test105\,test207" \ --set config.metaServers.dev21=http://apollo-service-20-21-apollo-configservice.apollo:8080 \ --set config.metaServers.test2=http://apollo-service-20-2-apollo-configservice.apollo:8080 \ --set config.metaServers.test22=http://apollo-service-20-22-apollo-configservice.apollo:8080 \ --set config.metaServers.test76=http://apollo-service-20-76-apollo-configservice.apollo:8080 \ --set config.metaServers.test91=http://apollo-service-20-91-apollo-configservice.apollo:8080 \ --set config.metaServers.test105=http://apollo-service-20-105-apollo-configservice.apollo:8080 \ --set config.metaServers.test207=http://apollo-service-20-207-apollo-configservice.apollo:8080 \ --set replicaCount=1 \ -n apollo \ apollo/apollo-portal
|
在Rancher配置端口映射
部署脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
| --- apiVersion: v1 kind: Service metadata: labels: cattle.io/creator: norman name: apollo-portal-port namespace: apollo annotations: metallb.universe.tf/allow-shared-ip: ip_192_168_40_31 spec: externalTrafficPolicy: Cluster loadBalancerIP: 192.168.40.31 ports: - port: 8070 protocol: TCP targetPort: 8070 selector: app: apollo-portal sessionAffinity: None type: LoadBalancer --- apiVersion: v1 kind: Service metadata: labels: cattle.io/creator: norman name: apollo-20-21-port namespace: apollo annotations: metallb.universe.tf/allow-shared-ip: ip_192_168_40_31 spec: externalTrafficPolicy: Cluster loadBalancerIP: 192.168.40.31 ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: apollo-service-20-21-apollo-configservice sessionAffinity: None type: LoadBalancer --- apiVersion: v1 kind: Service metadata: labels: cattle.io/creator: norman name: apollo-20-02-port namespace: apollo annotations: metallb.universe.tf/allow-shared-ip: ip_192_168_40_32 spec: externalTrafficPolicy: Cluster loadBalancerIP: 192.168.40.32 ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: apollo-service-20-2-apollo-configservice sessionAffinity: None type: LoadBalancer --- apiVersion: v1 kind: Service metadata: labels: cattle.io/creator: norman name: apollo-20-22-port namespace: apollo annotations: metallb.universe.tf/allow-shared-ip: ip_192_168_40_33 spec: externalTrafficPolicy: Cluster loadBalancerIP: 192.168.40.33 ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: apollo-service-20-22-apollo-configservice sessionAffinity: None type: LoadBalancer --- apiVersion: v1 kind: Service metadata: labels: cattle.io/creator: norman name: apollo-20-76-port namespace: apollo annotations: metallb.universe.tf/allow-shared-ip: ip_192_168_40_34 spec: externalTrafficPolicy: Cluster loadBalancerIP: 192.168.40.34 ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: apollo-service-20-76-apollo-configservice sessionAffinity: None type: LoadBalancer --- apiVersion: v1 kind: Service metadata: labels: cattle.io/creator: norman name: apollo-20-91-port namespace: apollo annotations: metallb.universe.tf/allow-shared-ip: ip_192_168_40_35 spec: externalTrafficPolicy: Cluster loadBalancerIP: 192.168.40.35 ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: apollo-service-20-91-apollo-configservice sessionAffinity: None type: LoadBalancer --- apiVersion: v1 kind: Service metadata: labels: cattle.io/creator: norman name: apollo-20-105-port namespace: apollo annotations: metallb.universe.tf/allow-shared-ip: ip_192_168_40_36 spec: externalTrafficPolicy: Cluster loadBalancerIP: 192.168.40.36 ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: apollo-service-20-105-apollo-configservice sessionAffinity: None type: LoadBalancer --- apiVersion: v1 kind: Service metadata: labels: cattle.io/creator: norman name: apollo-20-207-port namespace: apollo annotations: metallb.universe.tf/allow-shared-ip: ip_192_168_40_37 spec: externalTrafficPolicy: Cluster loadBalancerIP: 192.168.40.37 ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: apollo-service-20-207-apollo-configservice sessionAffinity: None type: LoadBalancer
|
参考
- 基于kubernetes原生服务发现
如果觉得我的文章对您有帮助,请随意打赏。
微信打赏

支付宝打赏
版权声明:本文由 王峰 发表于 王峰的博客转载声明:自由转载-非商用-非衍生-保持署名,非商业转载请注明作者及出处,商业转载请联系作者本人。文章标题:K8S中搭建Apollo文章链接: