五分钟带你玩转apollo使用k8s部署,吐血亲验
Posted 小黄鸡1992
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五分钟带你玩转apollo使用k8s部署,吐血亲验相关的知识,希望对你有一定的参考价值。
书接上文 楼主定制了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)
以上是关于五分钟带你玩转apollo使用k8s部署,吐血亲验的主要内容,如果未能解决你的问题,请参考以下文章