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

发布时间:2024年01月18日

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"}}'

文章来源:https://blog.csdn.net/weixin_46510209/article/details/135681948
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。