我有一个运行 Flask 应用程序的 k8s 部署,并且我要求该应用程序现在拥有自己的应用程序名称(位于 中metadata.labels.app
)。然后我希望能够从正在运行的 Pod 中获取该信息,这可能吗?
我已经尝试bash
进入正在运行的 Pod 并运行printenv
,但没有有关精确部署的信息。
我还检查了 python 的 kubernetes 客户端,但似乎不可能仅获取有关当前部署的信息。
我错过了什么?有可能吗?
感谢您的帮助
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: my-app
env: production
name: my-app
namespace: production
spec:
replicas: 1
selector:
matchLabels:
app: my-app
env: production
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: my-app
env: production
spec:
containers:
- image: gcr.io/github.com/my-company/my-app
imagePullPolicy: IfNotPresent
name: my-app-1
resources:
limits:
cpu: 100m
memory: 200Mi
requests:
cpu: 10m
memory: 100Mi
Run Code Online (Sandbox Code Playgroud)
您可以使用环境变量或文件公开信息,请参阅
单标签示例:
apiVersion: v1
kind: Pod
metadata:
name: label-as-var
labels:
app: my-app
spec:
containers:
- name: test-container
image: k8s.gcr.io/busybox
command: ["sh", "-c"]
args:
- while true; do
echo "$MY_APP";
sleep 10;
done;
env:
- name: MY_APP
valueFrom:
fieldRef:
fieldPath: metadata.labels['app']
Run Code Online (Sandbox Code Playgroud)
结果:
kubectl logs label-as-var
my-app
Run Code Online (Sandbox Code Playgroud)
来自文档的向下 api 示例,其中所有标签都可以在文件 /etc/podinfo/labels 中访问
kubectl logs label-as-var
my-app
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
383 次 |
最近记录: |