k8s部署apollo 2.2.0
1、部署mysql
vim mysql-statefulset.yaml
apiVersion: v1 kind: Secret metadata: name: mysql-secret namespace: apollo type: Opaque stringData: root-password: root123 # 可自定义,Apollo 中会用到 --- apiVersion: v1 kind: ConfigMap metadata: name: mysql-init-sql namespace: apollo data: init.sql: | CREATE USER IF NOT EXISTS 'apollo'@'%' IDENTIFIED BY 'apollo123'; GRANT ALL PRIVILEGES ON ApolloPortalDB.* TO 'apollo'@'%'; GRANT ALL PRIVILEGES ON ApolloConfigDB.* TO 'apollo'@'%'; FLUSH PRIVILEGES; --- apiVersion: v1 kind: Service metadata: name: apollo-mysql namespace: apollo labels: app: mysql spec: ports: - port: 3306 name: mysql clusterIP: None selector: app: mysql --- apiVersion: apps/v1 kind: StatefulSet metadata: name: apollo-mysql namespace: apollo spec: serviceName: apollo-mysql replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:8.0.36 env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: root-password ports: - containerPort: 3306 name: mysql volumeMounts: - name: data mountPath: /var/lib/mysql - name: init-sql mountPath: /docker-entrypoint-initdb.d resources: requests: cpu: 500m memory: 512Mi limits: cpu: 750m memory: 768Mi volumes: - name: init-sql configMap: name: mysql-init-sql volumeClaimTemplates: - metadata: name: data spec: accessModes: [ "ReadWriteOnce" ] storageClassName: alicloud-disk-ssd # 你指定的存储类 resources: requests: storage: 20Gi
运行
kc apply -f mysql-statefulset.yaml
2、部署Config Service 和 Admin Service
vim my-service-values.yaml
# 全局配置 image: tag: "2.2.0" # Config Service 和 Admin Service 共用的数据库配置 configdb: host: "apollo-mysql.apollo.svc.cluster.local" # 指向你部署在K8s内部的MySQL服务 port: 3306 dbName: "ApolloConfigDB" userName: "root" password: "root123" # 请替换为你实际设置的MySQL root密码 connectionStringProperties: "characterEncoding=utf8" # 部署Config Service的3个副本实现高可用 [9†L13] configService: replicaCount: 3 service: type: ClusterIP # 部署Admin Service的2个副本 [9†L14] adminService: replicaCount: 2 service: type: ClusterIP
helm install my-apollo-service apollo/apollo-service -n apollo -f my-service-values.yaml
3、部署Portal
vim my-portal-values.yaml
image: tag: "2.2.0" # Portal专用的数据库配置 portaldb: host: "apollo-mysql.apollo.svc.cluster.local" port: 3306 dbName: "ApolloPortalDB" userName: "root" password: "root123" # 请替换为你实际设置的MySQL root密码 connectionStringProperties: "characterEncoding=utf8" portal: replicaCount: 1 # Portal本身是无状态的,1个副本足以 [9†L15] service: type: LoadBalancer # 为了能通过浏览器访问,我们将Service类型设为LB
helm install my-apollo-portal apollo/apollo-portal -n apollo -f my-portal-values.yaml
4、访问
获取到地址后,在浏览器打开,默认用户名/密码:apollo / admin。

浙公网安备 33010602011771号