我想在 openshift 的应用程序日志中打印我的应用程序是 运行 的当前 podname
I want to print the current podname in which my application is running in application logs in openshift
所以我的 java 应用程序 运行 在 openshift 的几个 pod 中,出于某些业务目的,我想在应用程序日志中打印 podname。有什么办法吗?谢谢
您应该能够使用 Kubernetes“向下 API”向应用程序公开 Pod 名称。这可以通过使用 Pod 名称公开环境变量或挂载包含该名称的文件来完成。
这是使用环境变量执行此操作的文档:https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#the-downward-api
这是该页面上示例的精简版,仅突出显示 Pod 名称:
apiVersion: v1
kind: Pod
metadata:
name: dapi-envars-fieldref
spec:
containers:
- name: test-container
image: k8s.gcr.io/busybox
command: [ "sh", "-c"]
args:
- while true; do
echo -en '\n';
printenv MY_POD_NAME;
sleep 10;
done;
env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
restartPolicy: Never
正如您从文档中看到的那样,您还可以公开许多其他上下文。
可在此处找到安装卷文件的等效文档:https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/#the-downward-api
所以我的 java 应用程序 运行 在 openshift 的几个 pod 中,出于某些业务目的,我想在应用程序日志中打印 podname。有什么办法吗?谢谢
您应该能够使用 Kubernetes“向下 API”向应用程序公开 Pod 名称。这可以通过使用 Pod 名称公开环境变量或挂载包含该名称的文件来完成。
这是使用环境变量执行此操作的文档:https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#the-downward-api
这是该页面上示例的精简版,仅突出显示 Pod 名称:
apiVersion: v1
kind: Pod
metadata:
name: dapi-envars-fieldref
spec:
containers:
- name: test-container
image: k8s.gcr.io/busybox
command: [ "sh", "-c"]
args:
- while true; do
echo -en '\n';
printenv MY_POD_NAME;
sleep 10;
done;
env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
restartPolicy: Never
正如您从文档中看到的那样,您还可以公开许多其他上下文。
可在此处找到安装卷文件的等效文档:https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/#the-downward-api