JSON Patch

从OpenKruise 用户疑问开始理解 K8s 资源更新机制

你说的曾经没有我的故事 提交于 2020-08-09 16:30:00
背景 OpenKruise 是阿里云开源的大规模应用自动化管理引擎,在功能上对标了 Kubernetes 原生的 Deployment / StatefulSet 等控制器,但 OpenKruise 提供了更多的增强功能如:优雅原地升级、发布优先级/打散策略、多可用区workload抽象管理、统一 sidecar 容器注入管理等,都是经历了阿里巴巴超大规模应用场景打磨出的核心能力。这些 feature 帮助我们应对更加多样化的部署环境和需求、为集群维护者和应用开发者带来更加灵活的部署发布组合策略。 目前在阿里巴巴内部云原生环境中,绝大部分应用都统一使用 OpenKruise 的能力做 Pod 部署、发布管理,而不少业界公司和阿里云上客户由于 K8s 原生 Deployment 等负载不能完全满足需求,也转而采用 OpenKruise 作为应用部署载体。 今天的分享文章就从一个阿里云上客户对接 OpenKruise 的疑问开始。这里还原一下这位同学的用法(以下 YAML 数据仅为 demo): 准备一份 Advanced StatefulSet 的 YAML 文件,并提交创建。如: yaml apiVersion: apps.kruise.io/v1alpha1 kind: StatefulSet metadata: name: sample spec: # ... template

Kubernetes官方java客户端之七:patch操作

人走茶凉 提交于 2020-08-09 08:37:52
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等; 概览 本文是《Kubernetes官方java客户端》系列的第七篇,以下提到的java客户端都是指client-jar.jar; 本文主要内容是通过java客户端发起patch请求,用来修改已有资源; 接下来会对kubernetes的patch做一些介绍,由于咱们这里的重点还是java客户端的patch操作,因此不会对patch的原理和概念展开太多,仅做最基本的说明能即可; 本文内容 这是篇万字长文,所以一开始就要明确本文的核心内容:开发一个SpringBoot应用并部署在kubernetes环境,这个应用通过kubernetes的java客户端向API Server发请求,请求内容包括:创建名为test123的deployment、对这个deployment进行patch操作,如下图: 接下来先了解一些kubernetes的patch相关的基本知识; 关于patch 是对各种资源的增删改查是kubernetes的基本操作; 对于修改操作,分为Replace和Patch两种; Replace好理解,就是用指定资源替换现有资源,replace有个特点,就是optimistic

理解 K8s 资源更新机制,从一个 OpenKruise 用户疑问开始

拥有回忆 提交于 2020-07-29 02:30:25
作者 | 酒祝 阿里云技术专家 背景 OpenKruise 是阿里云开源的大规模应用自动化管理引擎,在功能上对标了 Kubernetes 原生的 Deployment / StatefulSet 等控制器,但 OpenKruise 提供了更多的增强功能如:优雅原地升级、发布优先级/打散策略、多可用区workload抽象管理、统一 sidecar 容器注入管理等,都是经历了阿里巴巴超大规模应用场景打磨出的核心能力。这些 feature 帮助我们应对更加多样化的部署环境和需求、为集群维护者和应用开发者带来更加灵活的部署发布组合策略。 目前在阿里巴巴内部云原生环境中,绝大部分应用都统一使用 OpenKruise 的能力做 Pod 部署、发布管理,而不少业界公司和阿里云上客户由于 K8s 原生 Deployment 等负载不能完全满足需求,也转而采用 OpenKruise 作为应用部署载体。 今天的分享文章就从一个阿里云上客户对接 OpenKruise 的疑问开始。这里还原一下这位同学的用法(以下 YAML 数据仅为 demo): 准备一份 Advanced StatefulSet 的 YAML 文件,并提交创建。如: apiVersion: apps.kruise.io/v1alpha1 kind: StatefulSet metadata: name: sample spec: # .

K8S新安全漏洞的应对之策:API Server拒绝服务漏洞

亡梦爱人 提交于 2019-11-27 20:17:19
Kubernetes爆出中等严重性安全漏洞——Kubernetes API Server拒绝服务漏洞CVE-2019-1002100。 本文将进行漏洞解读和情景再现,并分享漏洞修复方案,Rancher用户来看应对之策了! CVE-2019-1002100漏洞 美国当地时间2019年3月2日,Kubernetes社区发布了Kubernetes API server拒绝服务的漏洞(CVE-2019-1002100),即有API写入权限的用户在写入资源时会导致Kubernetes API server过度消耗资源,此漏洞被评级为【中等严重性】。 此漏洞表现为用户在向Kubernetes API server发送 json-patch规则的补丁包来更新资源对象时(例如kubectl patch xxx --type json 或者“Content-Type: application/json-patch+json”),Kubernetes API server会消耗极大的资源,最终导致API server拒绝连接。 https://github.com/kubernetes/kubernetes/issues/74534 情景再现 一个json-patch的例子: kubectl patch deployment test --type='json' -p '[{"op": "add",