service-apollo-portal-server.yaml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. ---
  2. # 为外部 mysql 服务设置 service
  3. kind: Service
  4. apiVersion: v1
  5. metadata:
  6. namespace: sre
  7. name: service-mysql-for-portal-server
  8. labels:
  9. app: service-mysql-for-portal-server
  10. spec:
  11. ports:
  12. - protocol: TCP
  13. port: 3306
  14. targetPort: 3306
  15. type: ClusterIP
  16. sessionAffinity: None
  17. ---
  18. kind: Endpoints
  19. apiVersion: v1
  20. metadata:
  21. namespace: sre
  22. name: service-mysql-for-portal-server
  23. subsets:
  24. - addresses:
  25. # 更改为你的 mysql addresses, 例如 1.1.1.1
  26. - ip: your-mysql-addresses
  27. ports:
  28. - protocol: TCP
  29. port: 3306
  30. ---
  31. # configmap for apollo-portal-server
  32. kind: ConfigMap
  33. apiVersion: v1
  34. metadata:
  35. namespace: sre
  36. name: configmap-apollo-portal-server
  37. data:
  38. application-github.properties: |
  39. spring.datasource.url = jdbc:mysql://service-mysql-for-portal-server.sre:3306/ApolloPortalDB?characterEncoding=utf8
  40. # mysql username
  41. spring.datasource.username = FillInCorrectUser
  42. # mysql password
  43. spring.datasource.password = FillInCorrectPassword
  44. apollo-env.properties: |
  45. dev.meta=http://service-apollo-config-server-dev.sre:8080
  46. fat.meta=http://service-apollo-config-server-test-alpha.sre:8080
  47. uat.meta=http://service-apollo-config-server-test-beta.sre:8080
  48. pro.meta=http://service-apollo-config-server-prod.sre:8080
  49. ---
  50. kind: Service
  51. apiVersion: v1
  52. metadata:
  53. namespace: sre
  54. name: service-apollo-portal-server
  55. labels:
  56. app: service-apollo-portal-server
  57. spec:
  58. ports:
  59. - protocol: TCP
  60. port: 8070
  61. targetPort: 8070
  62. nodePort: 30001
  63. selector:
  64. app: pod-apollo-portal-server
  65. type: NodePort
  66. # portal session 保持
  67. sessionAffinity: ClientIP
  68. ---
  69. kind: Deployment
  70. apiVersion: apps/v1beta2
  71. metadata:
  72. namespace: sre
  73. name: deployment-apollo-portal-server
  74. labels:
  75. app: deployment-apollo-portal-server
  76. spec:
  77. # 3 个实例
  78. replicas: 3
  79. selector:
  80. matchLabels:
  81. app: pod-apollo-portal-server
  82. strategy:
  83. rollingUpdate:
  84. maxSurge: 1
  85. maxUnavailable: 1
  86. type: RollingUpdate
  87. template:
  88. metadata:
  89. labels:
  90. app: pod-apollo-portal-server
  91. spec:
  92. nodeSelector:
  93. node: "apollo"
  94. volumes:
  95. - name: volume-configmap-apollo-portal-server
  96. configMap:
  97. name: configmap-apollo-portal-server
  98. items:
  99. - key: application-github.properties
  100. path: application-github.properties
  101. - key: apollo-env.properties
  102. path: apollo-env.properties
  103. initContainers:
  104. # 确保 admin-service 正常提供服务
  105. - image: alpine-bash:3.8
  106. name: check-service-apollo-admin-server-dev
  107. command: ['bash', '-c', "curl --connect-timeout 2 --max-time 5 --retry 60 --retry-delay 1 --retry-max-time 120 service-apollo-admin-server-dev.sre:8090"]
  108. - image: alpine-bash:3.8
  109. name: check-service-apollo-admin-server-alpha
  110. command: ['bash', '-c', "curl --connect-timeout 2 --max-time 5 --retry 60 --retry-delay 1 --retry-max-time 120 service-apollo-admin-server-test-alpha.sre:8090"]
  111. - image: alpine-bash:3.8
  112. name: check-service-apollo-admin-server-beta
  113. command: ['bash', '-c', "curl --connect-timeout 2 --max-time 5 --retry 60 --retry-delay 1 --retry-max-time 120 service-apollo-admin-server-test-beta.sre:8090"]
  114. - image: alpine-bash:3.8
  115. name: check-service-apollo-admin-server-prod
  116. command: ['bash', '-c', "curl --connect-timeout 2 --max-time 5 --retry 60 --retry-delay 1 --retry-max-time 120 service-apollo-admin-server-prod.sre:8090"]
  117. containers:
  118. - image: apollo-portal-server:v1.0.0 # 更改为你的 docker registry 下的 image
  119. securityContext:
  120. privileged: true
  121. imagePullPolicy: IfNotPresent
  122. name: container-apollo-portal-server
  123. ports:
  124. - protocol: TCP
  125. containerPort: 8070
  126. volumeMounts:
  127. - name: volume-configmap-apollo-portal-server
  128. mountPath: /apollo-portal-server/config/application-github.properties
  129. subPath: application-github.properties
  130. - name: volume-configmap-apollo-portal-server
  131. mountPath: /apollo-portal-server/config/apollo-env.properties
  132. subPath: apollo-env.properties
  133. env:
  134. - name: APOLLO_PORTAL_SERVICE_NAME
  135. value: "service-apollo-portal-server.sre"
  136. readinessProbe:
  137. tcpSocket:
  138. port: 8070
  139. initialDelaySeconds: 10
  140. periodSeconds: 5
  141. livenessProbe:
  142. tcpSocket:
  143. port: 8070
  144. # 120s 内, server 未启动则重启 container
  145. initialDelaySeconds: 120
  146. periodSeconds: 15
  147. dnsPolicy: ClusterFirst
  148. restartPolicy: Always