kubuctl patch 直接修改yaml文件,不使用edit

kubectl patch命令可以用于直接修改Kubernetes对象,而无需使用edit命令。这种方法非常适合在需要更新某些初始化后无法更新的资源字段时使用。
1、合并

  1. 假设我们有一个名为nginx-daemonset.yaml的DaemonSet对象,我们想要在其中添加一个新的容器。
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nginx-daemonset
  labels:
    app: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.1
        ports:
        - containerPort: 80
  1. 创建一个名为patch-file.yaml的文件,内容如下:
spec:
  template:
    spec:
      containers:
      - name: patch-demo-ctr-2
        image: redis
  1. 使用kubectl patch命令更新DaemonSet:
kubectl patch deployment nginx-daemonset --patch "$(cat patch-file.yaml)"

这样,nginx-daemonset的每个Pod就会有两个容器:一个运行nginx,另一个运行redis.

2、替换

当然,以下是一个使用kubectl patch进行替换操作的示例1:

假设我们有一个名为my-configmap的ConfigMap对象,其YAML文件如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-configmap
data:
  key1: value1
  key2: value2

我们想要更新key1的值为new-value,可以使用以下命令:

kubectl patch configmap my-configmap -p '{"data": {"key1": "new-value"}}'

你可能感兴趣的:(云原生,记录学习或工作中遇到的问题,kubernetes,k8s)