如何在 Job 中使用 env 值?

Tla*_*-ES 4 kubernetes

您好,我正在尝试将环境值传递给作业,为此我使用以下 kubernetes 模板:

apiVersion: batch/v1
kind: Job
metadata:
  name: socksdownloader
spec:
  template:
    spec:
      containers:
      - name: socksdownloader
        image: socksdownloader:0.0.1
   #     env:
   #     - name: REDIS_HOST
   #       value: redis
   #     - name: REDIS_PORT
   #       value: 6379
   #     - name: REDIS_DB
   #       value: 0
   #     - name: REDIS_KEY
   #       value: "SOCK:"
        command: ["python",  "src/main.py"]
      restartPolicy: Never
  backoffLimit: 4
Run Code Online (Sandbox Code Playgroud)

如果我取消注释 yml 的 env 条目,则会出现以下错误:

请求无效: patch: 无效值: "map[metadata:map[annotations:map[kubectl.kubernetes.io/last-applied-configuration:{"apiVersion":"batch/v1","kind":"Job ","metadata":{"annotations":{},"name":"socksdownloader","namespace":"default"},"spec":{"backoffLimit":4,"template":{"spec" :{"容器":[{"命令":["python","src/main.py"],"env":[{"名称":"REDIS_HOST","值":"redis"},{ “名称”:“REDIS_PORT”,“值”:6379},{“名称”:“REDIS_DB”,“值”:0},{“名称”:“REDIS_KEY”,“值”:“SOCK:”}] ,"image":"socksdownloader:0.0.1","name":"socksdownloader"}],"restartPolicy":"从不"}}}}\n]] 规格:地图[模板:地图[规格:地图[ ]]]]”:无法将 int64 转换为字符串

问题是我如何将该值传递给作业,以便可以连接到 Redis。

谢谢

Kri*_*sia 7

Kubernetes 的envvar规范要求将环境变量值强制转换为字符串,因此整数需要通过引号传递。

对整数值使用引号:

- name: REDIS_PORT
  value: "6379"
- name: REDIS_DB
  value: "0"
Run Code Online (Sandbox Code Playgroud)