kubernetes:使用 kubectl patch 更新 API 對象

背景:
對於已經發布的服務。如何做到在線更新呢?
總結有這麼幾種辦法:
kubectl annotate, kubectl edit, kubectl replace, kubectl scale, 和 kubectl apply。

本文介紹 kubectl patch的辦法
比如創建一個如下的pod

apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: patch-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: patch-demo-ctr
        image: nginx
      tolerations:
      - effect: NoSchedule
        key: dedicated
        value: test-team

之後我們要修改鏡像內容 ,使用patch怎麼辦呢?
1.先創建一個patch-file-containers.yaml

spec:
  template:
    spec:
      containers:
      - name: patch-demo-ctr-2
        image: redis

2.之後命令行更新pod配置
kubectl patch deployment patch-demo --patch “$(cat patch-file-containers.yaml)”
很多k8s管理平臺的 在線修改yaml 其實使用的是 kubectl patch 增量修改pod配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章