书接上文 楼主定制了postgresql版本的apollo 那么怎么使用k8s部署呢
ps :本文只部署dev环境 使用yaml文件在Kubernetes-dashboard部署
如果有对Kubernetes-dashboard不熟悉的 可以参考k8s专栏 地址;https://blog.csdn.net/qq_20143059/category_11047349.html
部署apollo-admin
--- apiVersion: v1 kind: ConfigMap metadata: namespace: apollo #更改自己的namespace name: configmap-apollo-admin-server data: application-github.properties: | spring.datasource.url = jdbc:postgresql://ip:5432/apolloconfig?characterEncoding=utf8 spring.datasource.username = apolloconfig spring.datasource.password = 123 eureka.service.url = ip:5001/eureka --- apiVersion: v1 kind: Service metadata: namespace: apollo name: service-apollo-admin-server labels: app: service-apollo-admin-server spec: ports: - protocol: TCP port: 8090 nodePort: 8090 selector: app: pod-apollo-admin-server type: NodePort --- apiVersion: apps/v1 kind: Deployment metadata: namespace: apollo name: deployment-apollo-admin-server labels: app: deployment-apollo-admin-server spec: replicas: 1 selector: matchLabels: app: pod-apollo-admin-server strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate template: metadata: labels: app: pod-apollo-admin-server spec: volumes: - name: volume-configmap-apollo-admin-server configMap: name: configmap-apollo-admin-server items: - key: application-github.properties path: application-github.properties containers: - image: ip:9000/apollo/apollo-adminservice:latest #镜像地址 楼主这里使用了私人仓库 securityContext: privileged: true imagePullPolicy: IfNotPresent name: container-apollo-admin-server ports: - protocol: TCP containerPort: 8090 volumeMounts: - name: volume-configmap-apollo-admin-server mountPath: /apollo-admin-server/config/application-github.properties subPath: application-github.properties env: - name: APOLLO_ADMIN_SERVICE_NAME value: "service-apollo-admin-server.sre" readinessProbe: tcpSocket: port: 8090 initialDelaySeconds: 10 periodSeconds: 5 livenessProbe: tcpSocket: port: 8090 initialDelaySeconds: 120 periodSeconds: 10 dnsPolicy: ClusterFirst restartPolicy: Always nodeName: apollo #指定的nodes节点
部署apollo-config
--- kind: ConfigMap apiVersion: v1 metadata: namespace: apollo #更改自己的namespace name: configmap-apollo-config-server data: application-github.properties: | spring.datasource.url = jdbc:postgresql://ip:5432/apolloconfig?characterEncoding=utf8 spring.datasource.username = apolloconfig spring.datasource.password = 123 eureka.service.url = ip:5001/eureka --- kind: Service apiVersion: v1 metadata: namespace: apollo name: service-apollo-meta-server labels: app: service-apollo-meta-server spec: ports: - protocol: TCP port: 8080 targetPort: 8080 selector: app: pod-apollo-config-server type: ClusterIP clusterIP: None sessionAffinity: ClientIP --- kind: Service apiVersion: v1 metadata: namespace: apollo name: service-apollo-config-server labels: app: service-apollo-config-server spec: ports: - protocol: TCP port: 8080 targetPort: 8080 nodePort: 8080 selector: app: pod-apollo-config-server type: NodePort sessionAffinity: ClientIP --- kind: StatefulSet apiVersion: apps/v1 metadata: namespace: apollo name: statefulset-apollo-config-server labels: app: statefulset-apollo-config-server spec: serviceName: service-apollo-meta-server replicas: 1 selector: matchLabels: app: pod-apollo-config-server updateStrategy: type: RollingUpdate template: metadata: labels: app: pod-apollo-config-server spec: volumes: - name: volume-configmap-apollo-config-server configMap: name: configmap-apollo-config-server items: - key: application-github.properties path: application-github.properties containers: - image: ip:9000/apollo/apollo-configservice:latest #私人仓库 securityContext: privileged: true imagePullPolicy: IfNotPresent name: container-apollo-config-server ports: - protocol: TCP containerPort: 8080 volumeMounts: - name: volume-configmap-apollo-config-server mountPath: /apollo-config-server/config/application-github.properties subPath: application-github.properties env: - name: APOLLO_CONFIG_SERVICE_NAME value: "service-apollo-config-server.sre" readinessProbe: tcpSocket: port: 8080 initialDelaySeconds: 10 periodSeconds: 5 livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 120 periodSeconds: 10 dnsPolicy: ClusterFirst restartPolicy: Always nodeName: apollo #nodes节点名称
apollo-portal
--- kind: ConfigMap apiVersion: v1 metadata: namespace: apollo name: configmap-apollo-portal-server data: application-github.properties: | spring.datasource.url = jdbc:postgresql://ip:5432/apolloportal spring.datasource.username = apolloportal spring.datasource.password = 123 apollo-env.properties: | dev.meta=http://ip:8080 #上文的apollo-config 切记不用写localhost --- kind: Service apiVersion: v1 metadata: namespace: apollo name: service-apollo-portal-server labels: app: service-apollo-portal-server spec: ports: - protocol: TCP port: 8070 targetPort: 8070 nodePort: 8070 selector: app: pod-apollo-portal-server type: NodePort sessionAffinity: ClientIP --- kind: Deployment apiVersion: apps/v1 metadata: namespace: apollo name: deployment-apollo-portal-server labels: app: deployment-apollo-portal-server spec: replicas: 1 selector: matchLabels: app: pod-apollo-portal-server strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate template: metadata: labels: app: pod-apollo-portal-server spec: volumes: - name: volume-configmap-apollo-portal-server configMap: name: configmap-apollo-portal-server items: - key: application-github.properties path: application-github.properties - key: apollo-env.properties path: apollo-env.properties containers: - image: ip:9000/apollo/apollo-portal:latest #私人仓库 securityContext: privileged: true imagePullPolicy: IfNotPresent name: container-apollo-portal-server ports: - protocol: TCP containerPort: 8070 volumeMounts: - name: volume-configmap-apollo-portal-server mountPath: /apollo-portal-server/config/application-github.properties subPath: application-github.properties - name: volume-configmap-apollo-portal-server mountPath: /apollo-portal-server/config/apollo-env.properties subPath: apollo-env.properties env: - name: APOLLO_PORTAL_SERVICE_NAME value: "service-apollo-portal-server.sre" readinessProbe: tcpSocket: port: 8070 initialDelaySeconds: 10 periodSeconds: 5 livenessProbe: tcpSocket: port: 8070 initialDelaySeconds: 120 periodSeconds: 15 dnsPolicy: ClusterFirst restartPolicy: Always nodeName: apollo #nodes地址
注意:以上yaml 一定注意格式 比如空行 空格 注释 能去掉一定去掉 否则会报各种错误
修改jar包配置
注意 以下apollo-portal.zip中的配置也需要修改(否则一直会访问localhost)