• 使用 kubectl patch 修改 Kubernetes objects


    为了能够修改Kubernetes对象,我们可以使用kubectl edit以交互方式进行修改。如果我们需要测试值,它可以派上用场,但它使自动化变得更加困难。如果我们需要一种使用非交互式命令更改Kubernetes对象的方法,kubectl patch是我们的最佳选择。

    为了能够在脚本模式下修改Kubernetes对象,我们需要告诉kubectl我们要设置哪些字段。例如,如果我们想添加一个顶级条目,例如allowVolumeExpansion,以便能够调整EBS支持的PVC的大小:

    $ kubectl get sc gp2 -o yaml
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      (...)
      name: gp2
    parameters:
      fsType: ext4
      type: gp2
    provisioner: kubernetes.io/aws-ebs
    reclaimPolicy: Delete
    volumeBindingMode: WaitForFirstConsumer
    

    使用-p 选项定义 需要添加的对象

    $ kubectl patch sc gp2 -p '{"allowVolumeExpansion": true}'
    storageclass.storage.k8s.io/gp2 patched
    

    如果需要修改具有更多级别的值,则必须将所有级别都包含到补丁中。例如,以下定义使用不同的spec.resources.requests.storage:

    $ kubectl get pvc demopvc -o yaml
    (...)
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
    (...)
    

    我们必须定义整个路径以达到我们想要更改的值:

    $ kubectl patch pvc demopvc -p '{"spec": {"resources": {"requests": {"storage": "20Gi"}}}}'
    persistentvolumeclaim/demopvc patched
    

    再次使用kubectl get pvc检查对象,我们将能够看到它是如何成功修补的:

    $ kubectl get pvc demopvc -o yaml
    (...)
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 20Gi
    (...)
    
  • 相关阅读:
    YARN简短的建筑
    Codeforces Round #274 (Div. 2) B. Towers
    基于PaaS人事部门间平台多重身份的技术解决方案
    android(9)_数据存储和访问3_scard基本介绍
    google搜索小技巧
    纯CSS实现垂直居中的几种方法
    关于网站的SYN_RECV(SYN_RECEIVED)***的防范措施
    网络的FIN_WAIT_2状态解释和分析
    jQuery对checkbox的各种操作
    0.0.0.0 与 127.0.0.1的区别
  • 原文地址:https://www.cnblogs.com/faberbeta/p/16646362.html
Copyright © 2020-2023  润新知