kubernetes 通过env变量传递时缺少$符号

jjhzyzn0  于 2023-04-29  发布在  Kubernetes
关注(0)|答案(1)|浏览(150)

集装箱

FROM python:3.11-alpine
COPY test.py .
ENTRYPOINT [ "python3", "test.py" ]

test.py

import os
import time

print(os.environ)
time.sleep(30)

示例pod

apiVersion: v1
kind: Pod
metadata:
  name: test
spec:
  containers:
  - name: test
    image: test:0.1
    imagePullPolicy: Never
    env:
      - name: TEST
        value: 1$2$$3$$$4$$$$
      - name: TEST2
        value: '1$2$$3$$$4$$$$'
      - name: TEST3
        value: '"1$2$$3$$$4$$$$"'

k8s v1.23 prod和v1.25两者都再现了这个问题
输出

environ({..., 'TEST': '1$2$3$$4$$', 'TEST2': '1$2$3$$4$$', 'TEST3': '"1$2$3$$4$$"', ... }

但我希望它们都是'1$2$$3$$$4$$$$'
尝试了不同类型的报价-没有工作
Worked“1\$2\$\$3\$\$4\$\$\$”什么都没有,我得到了相同的字符串(所有的“\$”),但添加和删除'\'看起来不正确

2guxujil

2guxujil1#

这似乎是一个k8s的功能。它将$$减少到$,同时将env变量传递给容器

相关问题