tomcat配置获取kubernetes自定义变量

tomcat获取kubernetes自定义变量
1、设置kubernetes自定义变量MY_POD_NAME
2、设置tomcat的JAVA_OPTS -D自定义变量名称:值(yaml里面定义的变量)
3、tomcat配置文件引用变量,获取kubernetes的pod主机名,处理多个pod日志按照主机名命名解决日志交叉写入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@k8s-master ~]# cat tomcat-demo.yaml 
apiVersion: v1
kind: Pod
metadata:
name: tomcat-istio
annotations:
spec:
containers:
- name: tomcat-istio
image: toamcat:demo
env:
- name: JAVA_OPTS
value: "-server -Xms4096M -Xmx4096M -Xss256K -Dmy.pod.name=$MY_POD_NAME -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:MaxPermSize=256M -XX:PermSize=128M"
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
1
2
DOckerfile
sed -i "prefix="localhost_access_log." suffix=".txt"/prefix="$\{my.pod.name\}__access_log" suffix=".txt"/g" server.xml

20190228230738.png