kubenetes: patch更新和替换、删除资源内容

简介: kubenetes: patch更新和替换、删除资源内容

目录

使用(patch)补丁修改、更新资源的字段。

kubectl命令操作

替换:replace

新增:add

删除:remove

多个资源内容的修改、删除、新增

疑惑:

kubernetes-client/java操作Patch



使用(patch)补丁修改、更新资源的字段。

支持JSON和YAML格式。


kubectl命令操作

k8s版本1.13


替换:replace

kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]'


新增:add

kubectl patch pod valid-pod --type='json' -p='[{"op": "add", "path": "/metadata/labels/MixedDeploy_Status", "value":"true"}]'


删除:remove

kubectl patch pod valid-pod --type='json' -p='[{"op": "remove", "path": "/metadata/labels/MixedDeploy_Status"}]'

 

多个资源内容的修改、删除、新增

参数:JSON数组


疑惑:

kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'

在K8s版本为1.13上,使用这种方式修改更新资源,却提示unpatch


kubernetes-client/java操作Patch

CoreV1Api apiInstance = new CoreV1Api();
String name = "主机名称"; // String | name of the Node
// 新增
V1Patch body = new V1Patch("[{\"op\": \"add\", \"path\": \"/metadata/labels/MixedDeploy_Status\", \"value\":\"true\"}]");
// 替换更新
V1Patch body = new V1Patch("[{\"op\": \"replace\", \"path\": \"/metadata/labels/MixedDeploy_Status\", \"value\":\"false\"}]");
String pretty = "true";
String dryRun = null;
Boolean force = true; // Boolean | Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.
try {
    V1Node result = apiInstance.patchNode(name, body, pretty, dryRun, null, force);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling CoreV1Api#patchNode");
    e.printStackTrace();
}

 


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
10月前
|
Kubernetes 负载均衡 应用服务中间件
k8s学习-Ingress(安装、模板、创建、删除)
k8s学习-Ingress(安装、模板、创建、删除)
320 0
|
10月前
|
存储 Kubernetes 数据安全/隐私保护
k8s学习-Secret(创建、使用、更新、删除等)
k8s学习-Secret(创建、使用、更新、删除等)
862 0
|
10月前
|
存储 Kubernetes API
k8s学习-ConfigMap(创建、使用、更新、删除等)
k8s学习-ConfigMap(创建、使用、更新、删除等)
2477 0
|
10月前
|
Ruby Perl
工程支持xcframework,检查pod版本及更新pod
工程支持xcframework,检查pod版本及更新pod
92 0
|
10月前
|
存储 Kubernetes 监控
k8s学习-DaemonSet(模板、创建、更新、回滚、删除等)
k8s学习-DaemonSet(模板、创建、更新、回滚、删除等)
191 0
|
jenkins 应用服务中间件 持续交付
Jenkins+Gitlab+Nginx实现自动发布与回退基于tag版本的静态项目(解决重复构建问题)
Jenkins+Gitlab+Nginx实现自动发布与回退基于tag版本的静态项目(解决重复构建问题)
279 0
|
缓存 索引
ES的删除和更新,旧数据到低是如何处理的?
根据ES的读写入原理,大家都知道ES写入时每秒从内存缓冲区(memory buffer)生成小的segment,将其递交给系统缓存(OS filesystem cache)中,后台会定期的对这些小的segment 合并成一个大的segment段
449 0
ES的删除和更新,旧数据到低是如何处理的?
node26-系统模块path路径操作
node26-系统模块path路径操作
122 0
node26-系统模块path路径操作
|
Kubernetes API 容器
开发一个禁止删除namespace的控制器
开发一个禁止删除namespace的控制器
开发一个禁止删除namespace的控制器