You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为kubectl create deployment命令传递环境变量?

kubectl create deployment传递环境变量的正确方式

kubectl create deployment命令本身不支持--env参数,这就是你执行命令时出现error: unknown flag: --env错误的原因,而kubectl run命令设计时包含了该参数,因此可以正常执行。以下是三种为kubectl create deployment传递环境变量的正确方法:

方法1:生成YAML模板后编辑添加环境变量

  1. 生成仅用于输出模板、不实际创建资源的YAML文件:
kubectl create deployment nginx-deployment --replicas=2 --image=nginx --dry-run=client -o yaml > nginx-deployment.yaml
  1. 编辑生成的nginx-deployment.yaml文件,在容器配置段添加env字段:
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx-deployment
  template:
    metadata:
      labels:
        app: nginx-deployment
    spec:
      containers:
      - name: nginx
        image: nginx
        env:
        - name: HOSTNAME
          value: "dev.example.com"
        - name: KEY
          value: "randomkey1456"
        - name: PORT_NUMBER
          value: "5601"
  1. 应用修改后的YAML文件创建deployment:
kubectl apply -f nginx-deployment.yaml

方法2:先创建deployment,再添加环境变量

  1. 先创建基础的deployment实例:
kubectl create deployment nginx-deployment --replicas=2 --image=nginx
  1. 使用kubectl set env命令为已创建的deployment添加环境变量:
kubectl set env deployment/nginx-deployment HOSTNAME=dev.example.com KEY=randomkey1456 PORT_NUMBER=5601

方法3:通过--overrides参数直接在命令行传递环境变量

利用--overrides参数传入JSON格式的配置,直接在创建deployment时指定环境变量:

kubectl create deployment nginx-deployment --replicas=2 --image=nginx --overrides='
{
  "spec": {
    "template": {
      "spec": {
        "containers": [
          {
            "name": "nginx",
            "image": "nginx",
            "env": [
              {"name": "HOSTNAME", "value": "dev.example.com"},
              {"name": "KEY", "value": "randomkey1456"},
              {"name": "PORT_NUMBER", "value": "5601"}
            ]
          }
        ]
      }
    }
  }
}'

内容的提问来源于stack exchange,提问作者devops-admin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:17:42