Deployment Kubernetes-使用命令行更新部署配置文件

Deployment Kubernetes-使用命令行更新部署配置文件,deployment,kubernetes,Deployment,Kubernetes,我有一个正在运行的部署: # kubectl get deployments NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE kubernetes-dashboard 4 4 4 4 131d 我可以使用以下方式查看当前部署配置: # kubectl get deployments kubernetes-dashboard

我有一个正在运行的部署:

# kubectl get deployments
NAME                   DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kubernetes-dashboard   4         4         4            4           131d
我可以使用以下方式查看当前部署配置:

# kubectl get deployments kubernetes-dashboard -o yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "2"
  creationTimestamp: 2017-02-03T16:04:04Z
  generation: 5
  labels:
    app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: default
  resourceVersion: "33197158"
  selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/kubernetes-dashboard
  uid: 627d92b2-ea2a-11e6-a152-0050569b714e
spec:
  replicas: 4
  selector:
    matchLabels:
      app: kubernetes-dashboard
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      annotations:
        scheduler.alpha.kubernetes.io/tolerations: |
          [
            {
              "key": "dedicated",
              "operator": "Equal",
              "value": "master",
              "effect": "NoSchedule"
            }
          ]
      creationTimestamp: null
      labels:
        app: kubernetes-dashboard
    spec:
      containers:
      - args:
        - --apiserver-host=http://172.29.219.6:8080
        image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.0
        imagePullPolicy: Always
        livenessProbe:
          failureThreshold: 3
          httpGet:
            path: /
            port: 9090
            scheme: HTTP
          initialDelaySeconds: 30
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 30
        name: kubernetes-dashboard
        ports:
        - containerPort: 9090
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      securityContext: {}
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 4
  observedGeneration: 5
  replicas: 4
  updatedReplicas: 4
现在我想动态编辑
副本:4
。我知道这样做的一个方法是:

kubectl edit  deployment kubernetes-dashboard
但是上面的方法打开了一个文件,我需要手动更新它。这对我来说是个问题,因为我想使用脚本或Ansible等外部工具自动编辑这些部署

我希望用这样的东西:

kubectl set replicas deployment/kubernetes-dashboard replicas=2
但似乎不支持这样的命令。 看起来只有
image
tag才支持这样的命令


如果需要部署,是否有任何方法可以更新副本或任何其他属性,但只需发出命令(不涉及任何编辑器)

您可以通过以下命令为部署实现这一点:

kubectl扩展部署我的部署--副本4

更多信息请访问

如果您碰巧想要更改不同的配置,则此问题的一个更通用的解决方案是使用:

kubectl补丁部署我的部署-p'{“spec”:{“replications”:4}}'

这可用于对任何资源应用任意部分配置更新