导语:使用configmap挂载替换对应的配置文件。
挂载的配置文件是只读的,无法修改或者同步,且需要用到subpath。
先创建配置文件platform-dynamic的configmap
配置文件如下
#### application.properties
#当前需要激活的的子模块
#deep.modules.active=console,web,scu,cta,lumbar
## 肺结节长短径收缩相关
# 肺结节长短径收缩阈值,大于等于此阈值的则收缩
deep.southwest.test.diameter-shrink-threshold=3.0
# 肺结节长短径需要收缩的像素值
deep.southwest.test.diameter-shrink-pixel=2.0
# 关键序列字体相对整张影像(高度)的大小比例,如图像高512,文字大小为12
deep.logic.auto-generate-ai-key-series-and-send-to-pacs.fontScale=0.024
# 文字起始位置X
deep.logic.auto-generate-ai-key-series-and-send-to-pacs.fontX=1
# 文字起始位置Y
deep.logic.auto-generate-ai-key-series-and-send-to-pacs.fontY=1
# 文字上下间距
deep.logic.auto-generate-ai-key-series-and-send-to-pacs.fontSpacing=1
# 矢状位和冠状位文字位置 0-3:左上,右上,左下,右下
deep.logic.auto-generate-ai-key-series-and-send-to-pacs.mpr-site=3
# 关键序列ImageType值
deep.logic.auto-generate-ai-key-series-and-send-to-pacs.imageType=AIResult_Shenrui
deep.whitelist.login.switch=false
#### application-ftp.properties
# 远程数据库配置(根据医院的数据库类型做相应的修改)
#mysql配置
spring.datasource.remote.url=jdbc:mysql://127.0.0.1:3306/hospital?connectTimeout=1000&useSSL=false&useUnicode=true&characterEncoding=UTF-8
spring.datasource.remote.username=root
spring.datasource.remote.password=deep
#### application-pull.properties
# 远程数据库配置(根据医院的数据库类型做相应的修改)
#mysql配置
spring.datasource.remote.pull.url=jdbc:mysql://172.16.20.187:3306/deep?connectTimeout=1000&useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.remote.pull.username=root
spring.datasource.remote.pull.password=deep
#视图名称
deep.pull.viewName=VIEW_AI_deep
#每一次从视图拉取的记录数
deep.pull.viewLimit=1000
#视图同步范围时间(单位:分)
deep.pull.viewSycRange=60
#视图同步延迟时间(单位:分)
deep.pull.viewDelayed=0
#每次发送cmove的记录数
deep.pull.cmoveLimit=10
#发起cmove的pacs节点
deep.pull.cmovePacsNode=deepSCP@172.16.20.187:22222
#通过视图发起cmove请求开关
deep.pull.cmoveViewSwitch=false
#数据延迟拉取时间 单位(s)
deep.pull.delayed=120
创建configmapplatform-dynamic
kubectl create configmap platform-dynamic --from-file=platform-dynamic -n deep
对应的yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: platform
labels:
k8s-app: platform
k8s-med-type: biz
spec:
strategy:
type: Recreate
replicas: 1
selector:
matchLabels:
k8s-app: platform
template:
metadata:
labels:
k8s-app: platform
spec:
affinity:
podAffinity:
#podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: k8s-app
operator: In
values:
- aiserverconfig
topologyKey: "kubernetes.io/hostname"
initContainers:
- command: ['sh', '-c', "until nc -w 3 -zv mysql 3306 ; do echo waiting for mydb; sleep 5; done"]
image: harbor.deep.com/base/busybox:stable-alpine
name: wait-for-mysql
- command: ['sh', '-c', "until nc -w 3 -zv zk 2181; do echo waiting for zk; sleep 5; done"]
image: harbor.deep.com/base/busybox:stable-alpine
name: wait-for-zk
- command: ['sh', '-c', "until nc -w 3 -zv aiserverconfig 11383; do echo waiting for aiserverconfig; sleep 5; done"]
image: harbor.deep.com/base/busybox:stable-alpine
name: wait-for-aiserverconfig
- command: ['sh', '-c', "until curl aiserver:11381/aiserver/ai/v1/echo ; do echo waiting for aiserver; sleep 5; done"]
image: harbor.deep.com/base/busybox:stable-alpine
name: wait-for-aiserver
restartPolicy: Always
containers:
- name: platform
image: harbor.deep.com/dev/dev-platform:feature-20220516-drwise0531-terra_0c25f29_58
#image: {{ .Values.images.platform }}
command: ["sh","-c","sh /root/platform/startup.sh "]
# livenessProbe:
# httpGet:
# path: /echo
# port: 11380
# initialDelaySeconds: 40
# periodSeconds: 30
# failureThreshold: 2
# timeoutSeconds: 10
env:
- name: NVIDIA_DRIVER_CAPABILITIES
value: all
volumeMounts:
- name: dicom-pvc
mountPath: /data1/inputdata
- name: log-pvc
mountPath: /root/platform/log
- name: log-jvm-pvc
mountPath: /data1/jvm
- name: platform-dynamic
mountPath: /root/platform/classes/application-dynamic.properties # 最终在容器中的文件名
subPath: platform-dynamic # 要挂载的confmap中的key的名称 data里的名称
volumes:
# - name: config-volume
# configMap:
# name: platform-dynamic
- configMap:
name: platform-dynamic
name: platform-dynamic
- name: log-pvc
hostPath:
path: /data1/deep/container-root/platform
type: DirectoryOrCreate
- name: dicom-pvc
hostPath:
path: /data1/inputdata
type: DirectoryOrCreate
- name: log-jvm-pvc
hostPath:
path: /data1/deep/container-root/platform-jvm
type: DirectoryOrCreate
---
apiVersion: v1
kind: Service
metadata:
name: platform
spec:
ports:
- port: 11380
targetPort: 11380
selector:
k8s-app: platform
创建之后测试即可