Имя хоста pods в Kubernetes всегда совпадает с именем pod, и в Linux у нас есть переменная env $ HOSTNAME. Таким образом, вы можете использовать его для достижения того, что вам нужно:
Вот пример, который может удовлетворить ваши потребности:
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
spec:
containers:
- name: busybox
image: k8s.gcr.io/busybox:1.24
env:
- name: SPRING_PROFILES_ACTIVE
value: prod,swagger
command: [ "sh", "-c"]
args:
- while true; do
export JAVA_OPTS="-XX:MaxRAMPercentage=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/jvm-data/$HOSTNAME.hprof";
printenv JAVA_OPTS;
printenv SPRING_PROFILES_ACTIVE;
sleep 10;
done;
imagePullPolicy: IfNotPresent
restartPolicy: Always
Если вы запустите kubectl get logs busybox
, вы увидите этот вывод:
-XX:MaxRAMPercentage=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/jvm-data/busybox.hprof
prod,swagger
-XX:MaxRAMPercentage=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/jvm-data/busybox.hprof
prod,swagger
-XX:MaxRAMPercentage=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/jvm-data/busybox.hprof
prod,swagger
-XX:MaxRAMPercentage=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/jvm-data/busybox.hprof
prod,swagger
-XX:MaxRAMPercentage=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/jvm-data/busybox.hprof
prod,swagger
-XX:MaxRAMPercentage=50 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/jvm-data/busybox.hprof
prod,swagger