我有一個運行 Flask 應用程式的 k8s 部署,我要求該應用程式現在是他自己的應用程式名稱(在 中metadata.labels.app)。然后我希望能夠從正在運行的 pod 中獲取該資訊,這可能嗎?
我已經嘗試bash進入正在運行的 pod 并運行,printenv但沒有關于該精確部署的資訊。
我還檢查了 kubernetes 客戶端的 python,但似乎不可能只獲取有關當前部署的資訊。
我錯過了什么?甚至有可能嗎?
感謝您的幫助
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
uj5u.com熱心網友回復:
您可以使用環境變數或檔案公開資訊,請參閱
- https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/
- https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/
單標簽示例:
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']
結果:
kubectl logs label-as-var
my-app
來自檔案的向下 api 示例,其中所有標簽都可以在檔案 /etc/podinfo/labels 中訪問
apiVersion: v1
kind: Pod
metadata:
name: kubernetes-downwardapi-volume-example
labels:
zone: us-est-coast
cluster: test-cluster1
rack: rack-22
annotations:
build: two
builder: john-doe
spec:
containers:
- name: client-container
image: k8s.gcr.io/busybox
command: ["sh", "-c"]
args:
- while true; do
if [[ -e /etc/podinfo/labels ]]; then
echo -en '\n\n'; cat /etc/podinfo/labels; fi;
if [[ -e /etc/podinfo/annotations ]]; then
echo -en '\n\n'; cat /etc/podinfo/annotations; fi;
sleep 5;
done;
volumeMounts:
- name: podinfo
mountPath: /etc/podinfo
volumes:
- name: podinfo
downwardAPI:
items:
- path: "labels"
fieldRef:
fieldPath: metadata.labels
- path: "annotations"
fieldRef:
fieldPath: metadata.annotations
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/331088.html
標籤:Python 烧瓶 Kubernetes
