kubectl patch 更新 API 对象

90 篇文章 6 订阅

==使用策略合并 patch 更新 Deployment ==

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mygin-v1
  labels:
    app: mygin
spec:
  replicas: 3
  selector:
    matchLabels:
      app: mygin
  template:
    metadata:
      labels:
        app: mygin
    spec:
      containers:
      - name: mygin
        image: logs:ginv01
        resources:
          requests:
            memory: 256Mi
        ports:
        - containerPort: 80
# kubectl get deploy
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
mygin-v1   3/3     3            3           5s

打一个补丁

  • patch 中的列表与现有列表合并。当你在列表中使用策略性合并 patch 时,并不总是这样。 在某些情况下,列表是替换的,而不是合并的。
    添加一个策略
tee patch-file.yaml <<-'EOF'
spec:
  template:
    spec:
      tolerations:
      - key: "node.kubernetes.io/unreachable"
        operator: "Exists"
        effect: "NoExecute"
        tolerationSeconds: 10
      - key: "node.kubernetes.io/not-ready"
        operator: "Exists"
        effect: "NoExecute"
        tolerationSeconds: 10
EOF

对 Deployment 执行 patch 操作


# kubectl patch deployment mygin-v1 --patch-file patch-file.yaml

# kubectl get deploy mygin-v1 -o yaml

        resources:
          requests:
            memory: 256Mi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      tolerations:    <<<<<<<--------添加的内容
      - effect: NoExecute 
        key: node.kubernetes.io/unreachable
        operator: Exists
        tolerationSeconds: 10
      - effect: NoExecute
        key: node.kubernetes.io/not-ready
        operator: Exists
        tolerationSeconds: 10

在这里插入图片描述

再打一个POD的反亲和性补丁

tee podAnt.yaml <<-'EOF'
spec:
  template:
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:  # 硬策略
          - labelSelector:
              matchExpressions:
              - key: app
                operator: In
                values:
                - mygin
            topologyKey: kubernetes.io/hostname
EOF
kubectl patch deployment mygin-v1 --patch-file podAnt.yaml
#由于节点少需要scale一下
kubectl scale deployment mygin-v1 --replicas=2
kubectl get deployment mygin-v1 -o yaml

在这里插入图片描述

官网官网

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值