Kubernetes 1.25 正式公布,新版本在各个领域提供了 40 项新加强性能和大量谬误修复,本篇文章将带您疾速理解新版本中每个 SIG 的突出变动,第一工夫做到成竹在胸!
API Machinery
API Machinery 有两个新的、闪亮的加强性能。
Validation Expression Language(降级到 beta)
自定义资源是 Kubernetes 中用于在 Kubernetes API 中创立和治理新资源的要害扩大点。随着行将公布的版本,CRD validation using expression language 降级为 beta。当初能够将验证规定增加到 CRD 模式并与资源标准一起治理它们,而不是部署和应用 webhook 进行验证。
Retriable and Non-Retriable Pod Failures for Jobs(alpha 版本)
Job resources 是在 Kubernetes 中运行一次性工作的形式。然而,Kubernetes 中的作业 API 在故障解决方面很少。有了这个新的 alpha 性能,作业标准中的 podFailurePolicy 中有一个新字段。您能够定义如下规定,一个来自 Github/Kubernetes 的带有故障策略的示例作业标准,并对容器的后果采取措施:
apiVersion: v1
kind: Job
spec:
template:
spec:
containers:
- name: main-job-container
image: job-image
command: ["./program"]
- name: monitoring-job-container
image: job-monitoring
command: ["./monitoring"]
backoffLimit: 3
podFailurePolicy:
rules:
- action: Terminate
onExitCodes:
containerName: main-job-container
operator: In
values: [1,2,3]
- action: Ignore
onPodConditions:
- type: DisruptionTarget
APPs
Apps SIG 专一于在 Kubernetes 中部署和治理简单的应用程序。在 1.25 版本中,这方面有两个重要的加强性能。
Add minReadySeconds to StatefulSets(毕业到稳固)
minReadySeconds 是 StatefulSet 资源中一个新的但稳固的字段,以确保在 pod 可用后工作负载准备就绪。这些额定的缓冲秒数在容器启动时是无益的,但应用程序须要工夫来筹备承受申请。
CronJob 中的时区反对(降级到 beta)
CronJob 实例由资源标准中提供的打算创立。然而,新创建资源的时区取决于控制器管理器的运行地位。应用新的加强性能,您将取得一个新字段 spec.timeZone,您能够在其中应用 tz 数据库中的无效时区。
认证
在这里,咱们有一个 critical depreciation 和一个来自受权、身份验证和集群安全策略畛域的新 alpha 版本。
删除 PodSecurityPolicy
在 Kubernetes 1.25 中,PodSecurityPolicy 在 1.21 版本升值后被齐全移除。PodSecurityPolicy 是定义 Pod 性能规定的解决方案,但随着工夫的推移它变得复杂和凌乱。相同,Kubernetes 当初曾经实现了具备明确迁徙门路的 Pod 平安准入控制器。
KMS v2 改良(alpha 版本)
Kubernetes 将其所有数据存储在 etcd 中,默认状况下不加密。正因为如此,Kubernetes 提供了诸如密钥治理服务 (KMS) 提供者之类的内部机制,以将数据安全地存储在 etcd 中。新的 v2alpha1 加强性能侧重于使 KMS 主动解决密钥轮换。此外,它还改良了 KMS 插件健康检查和 API 服务器与 KMS 之间操作的可察看性。
网络
在行将公布的版本中有两个网络畛域的毕业成绩。
NetworkPolicy 端口范畴(毕业到稳固)
在入口和进口网络策略中,您须要应用以后的 Kubernetes API 来一一指定每个端口。新的(现已稳固)性能增加了一个名为 endPort 的字段以轻松申明端口范畴。例如,您能够利用从端口 32000 到 32768 的规定,如下所示:
spec:
egress:
- ports:
- protocol: TCP
port: 32000
endPort: 32768
为动静和动态 IP 调配预留服务 IP 范畴(降级到 beta)
Kubernetes 服务资源裸露了集群内外的应用程序。有两种办法能够为服务资源抉择 IP:Kubernetes 从配置的范畴内调配一个随机 IP,或者用户动态指定同一范畴内的 IP。您能够应用已降级为 beta 的 ServiceIPStaticSubrange 字段划分 IP 范畴,并在 Kubernetes 中为服务调配 IP 地址时防止抵触。
节点
在 1.25 版本中,节点区域有三个通用可用性 (GA) 等级,以及一个 beta 和一个 alpha 版本。
长期容器(毕业到稳固)
调试分布式架构零碎总是具备挑战性,因为连贯、发送申请和查看后果并不容易。应用长期容器,您能够将容器增加到正在运行的 pod。因为应用程序容器映像很小,没有任何 shell、curl 或调试工具,长期容器有利于疾速旋转调试器容器。
例如,您能够应用以下命令将交互式长期 busybox 映像附加到 db-pod 并开始调试:
$ kubectl debug db-pod -it --image=busybox
Defaulting debug container name to debugger-8xzrl.
If you don't see a command prompt, try pressing enter.
/ #
cgroups v2(毕业到稳固)
cgroups 是在节点上组织和治理容器资源的要害 Linux 内核性能之一。在 Kubernetes 的晚期,所有容器运行时都是应用 cgroup v1 构建的,但当初 cgroups v2 反对曾经降级到广泛可用。应用 cgroups v2,容器工作负载将更平安地工作,包含无根容器,并且更牢靠地应用最新的内核性能。
将可配置宽限期退出到探测中(毕业到稳固)
除了 pod 级别的 terminateGracePeriodSeconds 之外,还有一个新的(当初在 liveness probes 中稳固)字段称为 terminateGracePeriodSeconds。这些字段的拆散有助于决定 Kubernetes 在失常敞开和活跃度探测失败的状况下将期待多长时间来 kill 一个容器。
默认为 seccomp(降级到 beta)
Kubernetes 容许通过定义 seccomp 配置文件来进步容器安全性;自 1.22 版本以来,它始终是 alpha 性能。默认状况下启用 Seccomp 会增加一个平安层来避免 CVE 和 0-days,当初此性能已在 1.25 版本中 降级为 beta。
以 Socket 而不是 NUMA Node 的形式,增加 CPUManager 策略 Align CPU(alpha 版本)
应用新的 CPU 架构,每个插槽的 NUMA(非对立内存拜访)节点数量有所增加。新的 alpha 性能增加了一个新的 CPUManager 策略选项作为 align-by-socket。这样,CPU 将被视为在 socket boundaries 而不是 NUMA boundaries. 处匹配。
平安
1.25 版在平安畛域有一个要害的加强。
主动刷新官网 CVE 源(alpha 版本)
Kubernetes 是最沉闷的开源存储库之一,因而存在许多问题和 PR,与 CVE 相干,这些问题和 PR 是无奈过滤的。新的 alpha 性能可确保在自动化的帮忙下标记问题和 PR。这种新办法将让您以最终用户、维护者或平台提供商的身份列出具备相干信息的 CVE。
调度
您将从调度区域取得一个新的 alpha 版本。
滚动降级后 Respect PodTopologySpread(alpha 版本)
PodTopologySpread 是 pod API 的一部分,用于定义对于 pod 在集群中如何散布的束缚,例如每个区域、区域、节点或任何其余用户定义的拓扑。例如,假如您有一个 20 个节点的集群和一个起码 2 个最多 15 个的主动扩大应用程序。当至多有 2 个实例正在运行时,您不心愿它们都运行在同一个节点——或可用区。这些束缚很有帮忙,因为它们能够在集群呈现故障的状况下进步可用性。在 1.25 版本中,Kubernetes 也将尊重滚动降级阶段的流传限度。
存储
存储
从存储区域来看,有两个根本的通用版本和一个 alpha 版本。
本地长期存储容量隔离(毕业到稳固)
Pod 应用长期存储来写入它们的日志和 emptyDir 挂载并作为缓存。在没有任何隔离的状况下,节点上的每个 pod 都在“尽力而为”的根底上共享同一个长期存储池。换句话说,pod 不晓得为它们调配了多少空间或在节点上留下了多少空间。借助将在行将公布的版本中广泛提供的存储容量隔离性能,Pod 能够从长期池中保留本人的存储。
In-Tree 存储插件到 CSI 驱动程序迁徙(毕业到稳固)
将 in-tree 插件迁徙到内部 CSI 插件在 1.25 版本中逐步稳固。这是一个重要的步骤,其中包含许多卷插件的删除和折旧:
- 折旧:GlusterFS、Portworx
- 移除:Flocker、Quobyte 和 StorageOS
- 迁徙到 CSI 插件:AWS EBS、GCE PD、vSphere
追溯默认 StorageClass 调配(alpha 版本)
默认存储类次要由集群管理员在集群创立期间配置。然而,当底层存储提供者或业务需要发生变化时,您还应该更改集群中的默认存储类。新的 alpha 性能侧重于将 Kubernetes 行为更改为对没有任何存储类的 PVC 具备追溯性。
论断
Kubernetes 1.25 旨在让 Kubernetes 更加平安、牢靠和灵便。确保您已为公布中的最新更改做好筹备,并及时降级您的基础架构,能够查看 Kubernetes 博客和发行阐明,理解无关加强性能和最新更改的更多信息。
原文链接:
https://medium.com/@jonathan_…
云原生技术社区有 20+ 技术交换群,想进群跟技术大牛们聊天,或退出志愿者队伍,请加小助手微信:
本文由 mdnice 多平台公布