1、Kubectl语法
kubectl patch (-f FILENAME | TYPE NAME) -p PATCH
kubectl patch:如果一个容器已经在运行,这时需要对一些容器属性进行修改,又不想删除容器,或不方便通过replace的方式进行更新。kubernetes还提供了一种在容器运行时,直接对容器进行修改的方式,就是patch命令。
2、kubectl命令中的简写
kubectl命令中可以使用的缩写,具体如下:
certificatesigningrequests (缩写 csr) componentstatuses (缩写 cs) configmaps (缩写 cm) customresourcedefinition (缩写 crd) daemonsets (缩写 ds) deployments (缩写 deploy) endpoints (缩写 ep) events (缩写 ev) horizontalpodautoscalers (缩写 hpa) ingresses (缩写 ing) limitranges (缩写 limits) namespaces (缩写 ns) networkpolicies (缩写 netpol) nodes (缩写 no) persistentvolumeclaims (缩写 pvc) persistentvolumes (缩写 pv) poddisruptionbudgets (缩写 pdb) pods (缩写 po) podsecuritypolicies (缩写 psp) replicasets (缩写 rs) replicationcontrollers (缩写 rc) resourcequotas (缩写 quota) serviceaccounts (缩写 sa) services (缩写 svc) statefulsets (缩写 sts) storageclasses (缩写 sc)
3、kubectl patch命令
1)使用patch更新Node节点
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}'
2)使用patch更新由“node.json”文件中指定的类型和名称标识的节点
kubectl patch -f node.json -p '{"spec":{"unschedulable":true}}'
3)更新容器的镜像
kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'
或
kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]'
4)设置服务对外的IP
kubectl patch svc <svc-name> -n <namespace> -p '{"spec": {"type": "LoadBalancer", "externalIPs":["192.168.31.241"]}}'