抢先看!Kubernetes v1.21 新特性一览

作者 | 倪朋飞

来源 | 漫谈云原生

头图 | 下载于视觉中国

Kubernetes v1.21 下个月就要发布了(v1.21.0 将于 4 月 8 日发布),本文梳理该版本带来的新特性,以便你为下个月的升级做好准备。

  PodSecurityPolicy 弃用

PodSecurityPolicy(PSP)是 Kubernetes 1.8 开始就支持的 Beta 特性,大量应用于容器的安全策略控制。但由于其 API 不够灵活、认证模型不够完善且配置更新繁琐等缺陷,PodSecurityPolicy 将在 v1.21 正式弃用[1],并将在 v1.25 中从代码库中删除。已经使用 PodSecurityPolicy 的用户建议迁移到 Gatekeeper[2]。

  不可变 ConfigMap/Secret 进入稳定版

当集群包含大量 ConfigMap 和 Secret 时,大量的 watch 事件会急剧增加 kube-apiserver 的负载,并会导致错误配置过快传播到整个集群。在这种情况中,给不需要经常修改的 ConfigMap 和 Secret 设置 immutable: true 就可以避免类似的问题。

注意,设置 immutable: true 之后,ConfigMap 和 Secret 内容更新时需要删除并重新创建,且使用它们的 Pod 也需要删除重建。

  IPv4/IPv6 双栈支持 Beta

IPv4/IPv6 双栈支持在 v1.20 的时候进行了重构,并将于 v1.21 中进入 Beta 版本(默认开启),kubeadm 也已经支持创建 IPv4/IPv6 双栈集群。该特性开启后,Kubernetes Service 和 Pod 会同时分配 IPv4 和 IPv6 两个地址。

注意,如果使用了 CNI 插件和云服务商扩展(Cloud Provider),CNI 插件和云服务商扩展也需要支持 IPv4/IPv6 双栈。

  CSIVolumeHealth Alpha 和 CSIStorageCapacity Beta

从 v1.21 开始,Kubernetes 支持 CSI 存储插件的 Volume 健康检查(Alpha 版),CSI 插件需要实现外部健康监控控制器。当 Volume 或者 Node 出现异常时,该控制器会向 Volume 所属的 PVC 以及使用该 PVC 的 Pod 发送一个异常事件。

CSIStorageCapacity 用于跟踪 CSI 存储容量并确保 Pod 调度到足够存储容量的节点上。该特性从 v1.21 开始进入 Beta 阶段,并默认开启。注意,使用该特性需要 CSI 驱动程序实现对应的接口。

  TTL 控制器 Beta

TTL 控制器用来自动清理已经结束的 Pod,如处于 Complete 或 Failed 状态的 Job。Pod 停止之后的 TTL 可以通过 .spec.ttlSecondsAfterFinished 来设置。

注意,该特性要求集群中各节点(包括控制节点)的时间一致,比如在所有节点中运行 NTP 服务。

  GenericEphemeralVolume Beta

通用临时卷(GenericEphemeralVolume)类似于 emptyDir 卷,但它更加灵活:

  • 存储可以是本地的,也可以是网络存储。

  • 卷可以有固定的大小,Pod 不能超量使用。

  • 卷可能有一些初始数据,这取决于驱动程序和参数。

  • 当驱动程序支持,卷上的典型操作(如快照、克隆、扩展等)也被支持。

  Kubelet 内存控制策略 Alpha

内存控制策略是 Kubelet 在 v1.21 中新增的一个 Alpha 特性,用于为 Pod 提供 NUMA 内存。Kubelet 新增了 --memory-manager-policy 用于配置内存控制策略,它支持两个策略:

  • 默认策略是 none,等同于内存控制策略未开启;

  • static 策略:为 Pod 分配 NUMA 内存并确保 Guaranteed Pod 预留足够的内存(Kubelet 状态保存在 /var/lib/kubelet/memory_manager_state 文件中)。

  ServiceLoadBalancerClass Alpha

以前 LoadBalancer 类型的服务都需要云服务商扩展(Cloud Provider)去配置云上负载均衡器,并且整个集群中只能运行一个 Cloud Provider。Kubernetes v1.21 新增的 ServiceLoadBalancerClass 特性允许一个集群中运行多个负载均衡器的实现,而 Service 可以通过 spec.loadBalancerClass 指定使用哪个具体实现(类似于 Ingress Controller)。

  PodDeletionCost Alpha

以前从 ReplicaSet 删除 Pod 时只能设置副本数量而不能指定要删除的 Pod,而 Kubernetes v1.21 新增的 PodDeletionCost 特性允许用户设置哪些 Pod 优先删除。使用该特性时需要给 Pod 增加一个 annotation controller.kubernetes.io/pod-deletion-cost,其值表示删除一个 Pod 的成本,值越小代表越优先删除。当 annotation 不存在时,表示其删除成本为 0。

  Indexed Jobs Alpha

通常,当使用 Job 来运行分布式任务时,用户需要一个单独的系统来在 Job 的不同 worker Pod 之间分配任务。比如,设置一个工作队列,逐一给每个 Pod 分配任务。Kubernetes v1.21 新增的 Indexed Job 会给每个任务分配一个数值索引,并通过 annotation batch.kubernetes.io/job-completion-index 暴露给每个 Pod。使用方法为在 Job spec 中设置 completionMode: Indexed。

  TopologyAwareHints Alpha

服务拓扑(Service Topology)在 Kubernetes v1.21 中已弃用,并将在 v1.22 中删除。Kubernetes v1.21 新增的拓扑感知提示提供了类似的功能。该特性开启后,EndpointSlice 控制器将填充 EndpointSlice 中每个 Endpoint 上的提示字段,以将其分配到一个区域。然后,诸如 kube-proxy 这样的组件在配置请求路由时就可以使用这些提示。

  其他需要留意的新特性

  • CronJob 进入稳定版本,已有用户注意切换 API 版本到 apiVersion: batch/v1。

  • Sysctls 进入稳定版本,用户终于有一个稳定的 API 来配置 Sysctl 了。

  • Pod disruption budgets(PDB)进入稳定版本,已有用户注意切换 API 版本到 apiVersion: policy/v1。

  • RootCAConfigMap 进入稳定版本,kube-controller-manager 将会在每个 namespace 发布一个名为 kube-root-ca.crt 的 ConfigMap,内容是 ca.crt,可用来验证 Kubernetes API 连接。

  • EndpointSlice 进入稳定版本,已有用户注意切换 API 版本到 apiVersion: discovery.k8s.io/v1。

  • ServiceAccountIssuerDiscovery 进入稳定版本,该特性使得用户能够用联邦的方式结合使用 Kubernetes 集群(_Identity Provider_,标识提供者)与外部系统(_relying parties_, 依赖方)所分发的服务账号令牌。

  • CRIContainerLogRotation 进入稳定版本,kubelet 将会自动为 containerd 等 CRI 容器运行时轮换日志。

  • 结构化日志(Structured Logging)进入 Beta,很多组件的日志都改成以 JSON 格式记录,这样第三方日志处理系统就可以方便地从日志中解析出日志所对应的资源对象和资源属性。

  • EfficientWatchResumption 进入 Beta,kube-apiserver 重启后 watch 缓存将更高效的恢复,更好的支持大规模集群。

  • CSIServiceAccountToken 进入 Beta,使得 CSI 驱动程序可以获取 Pod 的 service account token。

  • GracefulNodeShutdown 进入 Beta,Kubelet 将会检测 Node 的状态并在 Node 关闭前终止其上运行的 Pod(使用前需要配置 ShutdownGracePeriod 和 ShutdownGracePeriodCriticalPods)。

  • Network Policy 支持设置端口范围(port 和 endPort),大量端口时不再需要每个端口单独列出。

参考链接:

https://github.com/kubernetes/kubernetes/pull/97171

https://github.com/open-policy-agent/gatekeeper

你觉得这些特性怎么样?

欢迎来评论区聊聊~


CSDN协同行业大佬
打造13长热门知识图谱及IT成长路线
助力千万IT人成长,快速实现职场进阶!
更多精彩推荐
☞Kubernetes 和 Docker,到底什么关系?☞PassMark 更新排行,苹果 M1 杀疯了☞干货!Redis集群工作原理解析
点分享点收藏点点赞点在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云ARMS助力「叫叫阅读」解锁系统定位分析技能包

叫叫阅读系列是成都书声科技有限公司(铁皮人)旗下的教育Apps。 主要针对3-12岁孩子,以儿童身心发展规律为依据,秉承叶圣陶先生的语文教育论,多读书,读好书,勤思考。由小学语文老师、幼小衔接专家…

uniapp获取微信头像和昵称

<view class"userInformation"><!-- 用户自定义头像 --><view class"userPortrait"><image :src"yonghuwx.avatarUrl" mode"widthFix"></image></view><view class"userLook" >&…

开放下载!《AliOS Things快速开发指南》

简介&#xff1a; 《AliOS Things快速开发指南》手把手教你从环境准备到线上、线下开发调试&#xff0c;更有两大典型场景实践等你参与。你的物联网开发从这里开始&#xff01;快来get新技能吧~ AliOS Things致力于搭建云端一体化IoT基础设施&#xff0c;具备极致性能、极简开…

低代码,填补业务技术鸿沟 or 紧贴业务的开发时代?

作者 | 宋慧 出品 | CSDN云计算 头图 | 付费下载于视觉中国 低代码在技术界一波又一波的讨论中&#xff0c;仍在不断发展中。3 月 30 日&#xff0c;国内企业数字化服务商奥哲举行品牌全新升级暨新品发布&#xff0c;并推出面向业务人员的新产品&#xff1a;数字化管理工具“奥…

我在阿里写代码学会的六件事

简介&#xff1a; 从团队的角度来看&#xff0c;写好代码是一件非常有必要的事情。如何写出干净优雅的代码是个很困难的课题&#xff0c;我没有找到万能的 solution&#xff0c;更多的是一些 trade off&#xff0c;可以稍微讨论一下。 写了多年的代码&#xff0c;始终觉得如何写…

FLOWABLE 流程中的自动跳过

文章目录1. 背景2. 流程3. 实施方案1. 背景 在实际场景中&#xff0c;我们往往会有这样的需求&#xff0c;当流程到达某一个节点的时候&#xff0c;当某角色或岗位不存在时直接跳过当前节点&#xff0c;到下一个节点&#xff08;我们让其自动的跳过去&#xff0c;不做任何操作…

减少运维工作量,如何通过 ROS 轻松实现资源编排新方式

简介&#xff1a; 以“基础设施即代码”的理念代替“重复劳动”。 在日常工作中&#xff0c;我们一定遇到过需要快速构建系统的工作情形&#xff1a; 作为资源管理人员&#xff0c;需要接收一定数量以及配置的资源申请&#xff0c;这些申请要求网络、存储设备按需到位&#xf…

flowable 获取当前以及下一任务节点

/*** 获取任务节点** param node 查询节点选择* param taskId 任务id*/ public void nextFlowNode(String node, String taskId) {Task task processEngine().getTaskService().createTaskQuery().taskId(taskId).singleResult();ExecutionEntity ee (ExecutionEntity) pro…

开放下载!《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》

当你疲惫了一天&#xff0c;回到家里&#xff0c;点点手机灯就亮了&#xff0c;再唤醒天猫精灵放首歌&#xff0c;这样智能的家&#xff0c;恐怕这是很多人梦寐以求的吧。而蓝牙 MESH 智能灯&#xff0c;是智能家居系统中最基础的设施。蓝牙 MESH 智能灯是如何实现轻松、高效地…

2020 年微服务项目活跃度报告

简介&#xff1a; 2020 年 8 月 18 日&#xff0c;首届云原生微服务大会于线上召开&#xff0c;会议首日&#xff0c;阿里云资深技术专家、CNCF TOC 李响 Keynote 演讲中正式发布了《 2020 年微服务领域开源数字化报告》。 导读&#xff1a;2020 年 8 月 18 日&#xff0c;首届…

Spring Boot 面试必问

文章目录面试官&#xff1a;Spring和SprigBoot的区别&#xff1f;面试官&#xff1a;SpringBoot启动流程&#xff1f;面试官&#xff1a;SpringBoot自动配置的原理?面试官&#xff1a;SpringBoot核心注解有哪些以及实现原理?面试官&#xff1a; SpringBoot中配置⽂件的加载顺…

又一低代码平台火了!15 分钟小白轻松开发在线课堂,人人都是开发者时代来了?

据艾瑞咨询统计&#xff0c;2020 年中国在线教育行业市场规模 2573 亿元&#xff0c;过去 4 年的复合增长率达 34.5%。如今在线教育行业如火如荼&#xff0c;亟待一款好的在线教育平台。 此时&#xff0c;不少开发者和教育机构遇到新的难题&#xff1a;如果使用标准化 SaaS 平…

阿里巴巴大数据实践—实时技术

来源&#xff1a;数智化转型俱乐部 数据价值是具有时效性的&#xff0c;在一条数据产生的时候&#xff0c;如果不能及时处理并在业务系统中使用&#xff0c;就不能让数据保持最高的“新鲜度”和价值最大化。 相对于离线批处理技术&#xff0c;流式实时处理技术作为一个非常重…

解压tar.xz文件

解压tar.xz文件&#xff1a; 先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后&#xff0c;再用 tar xvf xxx.tar来解包。

全民加速节:全站加速在互联网媒体应用上的最佳实践

8月19日&#xff0c;全民加速节第三场直播中&#xff0c;阿里云CDN解决方案架构师拓州进行了《全站加速在媒体服务行业的实践》主题分享&#xff0c;针对互联网媒体服务行业中的特征和痛点&#xff0c;介绍阿里云全站加速产品的应用实践。 互联网媒体服务的特征 互联网媒体服…

云原生全景图之六 | 托管 Kubernetes 和 PaaS 解决什么问题

作者 | Catherine Paganini、Jason Morgan来源 | K8sMeetup头图 | 下载于视觉中国在本系列之前的文章中&#xff0c;我们讨论了 CNCF 云原生全景图的各层&#xff1a;供应层、运行时层、编排管理层以及应用定义和开发层。本文我们将聚焦在平台层。正如我们在本系列文章中看到的…

Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerEx

Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerException错误 springboot最新版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</arti…

报告:5G 网络切片可能会给不法分子留下漏洞!

责编 | 寇雪芹头图 | 下载于视觉中国据爱尔兰安全公司 AdaptiveMobile Security 的一份报告显示&#xff0c;由于缺乏传输层与应用层之间的映射关系&#xff0c;因此结合了传统技术的 5G 网络可能更容易受到威胁。网络切片对于实现5G的许多功能至关重要。网络切片&#xff08;N…

独家下载!小程序Serverless云上开发一站到底

阿里云小程序Serverless 提供包括云函数、数据存储、文件存储等一整套后端服务。开发者通过API 方式即可获取云函数、数据存储、文件存储、音视频、图像处理等服务&#xff0c;不需要关心服务器或底层运维设施&#xff0c;可以更专注于代码和业务本身。 《小程序Serverless 云…

HttpClient如何自定义重试方法

问题&#xff1a; 在写项目的时候&#xff0c;使用到 org.apache.commons.httpclient.HttpClient &#xff0c;进行http请求&#xff0c;发现有时一些链接无法正常连接&#xff0c;这时候就会自动重连3次&#xff0c;导致一个http连接的时间过长。 解决方法&#xff1a; 设置连…