kubernetes - 如何利用 kubectl 补丁部署来更新环境变量?

标签 kubernetes yaml kubectl

我正在尝试修补部署,但我一直在打deployment.extensions/velero 未修补。

我尝试了以下几种不同的变体:

kubectl patch deployment velero -n velero -p '{"spec":{"containers":[{"env":[{"name":"AWS_CLUSTER_NAME","value":"test-cluster"}]}]}}'

我的初始 deployment.yaml 文件
apiVersion: apps/v1
kind: Deployment
metadata:
  name: velero
  labels:
    app.kubernetes.io/name: velero
    app.kubernetes.io/instance: velero
    app.kubernetes.io/managed-by: Tiller
    helm.sh/chart: velero-2.1.1
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/instance: velero
      app.kubernetes.io/name: velero
  template:
    metadata:
      labels:
        app.kubernetes.io/name: velero
        app.kubernetes.io/instance: velero
        app.kubernetes.io/managed-by: Tiller
        helm.sh/chart: velero-2.1.1
    spec:
      restartPolicy: Always
      serviceAccountName: velero-server
      containers:
        - name: velero
          image: "gcr.io/heptio-images/velero:v1.0.0"
          imagePullPolicy: IfNotPresent
          command:
            - /velero
          args:
            - server
          volumeMounts:
            - name: plugins
              mountPath: /plugins
            - name: cloud-credentials
              mountPath: /credentials
            - name: scratch
              mountPath: /scratch
          env:
            - name: AWS_SHARED_CREDENTIALS_FILE
              value: /credentials/cloud
            - name: VELERO_SCRATCH_DIR
              value: /scratch
      volumes:
        - name: cloud-credentials
          secret:
            secretName: cloud-credentials
        - name: plugins
          emptyDir: {}
        - name: scratch
          emptyDir: {}

我现在有点卡住了,担心我可能会以错误的方式去做这件事。任何建议将不胜感激。

最佳答案

除了 kubectl patch命令,你也可以使用 kubectl set env更新 k8s 部署的环境变量。

kubectl set env deployment/velero AWS_CLUSTER_NAME=test-cluster

希望这可以帮助。

关于kubernetes - 如何利用 kubectl 补丁部署来更新环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57601495/

相关文章:

go - 创建用于解码以下 yaml 文件的 go 结构的更好方法是什么?

JavaScript YAML 解析器

kubernetes - kubectl:从明文 secret 中获取特定值

kubernetes - 如何使用 fabric8 kubernetes Java 客户端 API 在容器上设置 GPU 资源要求

java - hazelcast-kubernetes 网络发现 : How to use with Multiple Nodes

ssl - 在 Kubernetes 上使用 Nginx SSL 代理运行 Meteor 应用程序

kubernetes - 服务解析在 minikube 中不起作用

node.js - 支持写入多文档的yaml库

kubernetes - 如何通过 ssh 隧道使用 kubectl 通过我的 kubernetes API 访问我的内部 ELB?

kubernetes - 在金丝雀部署策略中,将特定用户重定向到具有新版本的 pod