Kubernetes 1.27 版本 release
Kubernetes v1.26
是 2022 年只有 37
项特性。Kubernetes v1.27
2023年第一个大版本更新,包含了近 60
项主要的更新。这个版本可以说是一个变化非常显著的版本了。
Pod 调度就绪机制达到 Beta
这个功能实际上是从 Kubernetes v1.26
开始增加的。是 KEP 3521
的第一部分。
https://www.kubeservice.cn/2023/01/24/ecology-k8s-1-26/
使用时,通过配置 Pod 的 .spec.schedulingGates
即可。
新增 NodeLogQuery
特性
最习惯使用 kubectl logs
命令来获取 Kubernetes
集群中运行的应用的日志,也可以通过给它传递一些参数来调整它的过滤范围。
比如:kubectl logs job/hello
来指定获取 hello
这个 job
的日志;也可以增加 -l / --selector=''
来基于 label
进行过滤。
但是这并没有扩展到 Node 级别
的日志,无法直接获取到某个 Node
上的全部日志,要想得到这个结果需要写一段很复杂的 Shell
来完成。
现在可以远程获取底层 Node
日志。与容器日志记录一样,这是Kubelet API
的一部分。
$ kubectl get --raw "/api/v2/nodes/$NODE_NAME/proxy/logs/?query=kubelet
目前还没有专门针对此功能的 kubectl
命令,但可以使用以上命令进行尝试
Pod In-place 原地伸缩能力
这个功能允许在不重启 Pod
的情况下,更新 Pod 的 resources 配置
。
In-place Pod Vertical Scaling feature by vinaykul · Pull Request #102884 · kubernetes/kubernetes
经过 4 年的规划和至少 2 年的开发,在 Kubernetes v1.27
中终于推出了 Pod 的就地资源缩放的第一版。这个PR实现了核心缩放功能和一些相关的API处理。主要功能非常简单,现在可以在现有容器上编辑 resources 配置
,而不会导致 API 错误
。
在看到缩放请求后,Kubelet
会立即采取行动并检查节点是否有足够的资源来满足新的请求。如果是这样,它将 Status.Resize
字段设置为 InProgress
,并继续进行 CRI 调用
和其他内部更新
。
如果新的大小不合适,将启动其他状态流,但总体目标相同,即尝试在可能的情况下提供请求的更改。还有一个新的 per-resource
缩放策略字段,可以设置为 RestartNotRequired(默认值
)表示不需要重新启动(但某些运行时仍然可能需要这样做), 或设置为 Restart
以强制关闭和重新启动容器(例如具有需要重新计算-Xmx 堆大小标志的 Java 应用
)。
现在缺少一个显著的特性是基于缩放的驱逐
。目前,Kubelet
不会自动处理它,但如果外部系统执行 Pod 删除
,它将适当地作出反应。
尽管现在还处于比较早期的阶段,但至少我们看到了它的变化,期待后续的演进。
废弃特性
不再提供的API版本:
- Kubeadm v1beta2,可以使用 kubeadm config migrate 迁移到 v1beta3。
- resource.k8s.io/v1alpha1.PodScheduling :请使用 resource.k8s.io/v1alpha2.PodSchedulingContext。
- DynamicResourceManagement v1alpha1:请使用 v1alpha2。
- CSIStorageCapacity:storage.k8s.io/v1beta1:请使用 v1。
已弃用,在下一个版本发布之前实现替代方案:
- seccomp.security.alpha.kubernetes.io/pod 和 container.seccomp.security.alpha.kubernetes.io annotations :请改用 securityContext.seccompProfile 字段。
- SecurityContextDeny 准入插件。
- service.kubernetes.io/topology-aware-hints annotations:请改用 service.kubernetes.io/topology-mode。
已删除
- Feature gates:
- IPv6DualStack
- ExpandCSIVolumes
- ExpandInUsePersistentVolumes
- ExpandPersistentVolumes
- ControllerManagerLeaderMigration
- CSI Migration
- CSIInlineVolume
- EphemeralContainers
- LocalStorageCapacityIsolation
- NetworkPolicyEndPort
- StatefulSetMinReadySeconds
- IdentifyPodOS
- DaemonSetUpdateSurge
- appProtocol: kubernetes.io/grpc.
- kube-apiserver 参数: –master-service-namespace.
- CLI 参数: –enable-taint-manager 和 –pod-eviction-timeout.
- kubelet 参数: –container-runtime, –master-service-namespace.
- Azure disk in-tree storage plugin.
- AWS kubelet credential provider: 使用 ecr-credential-provider.
Metrics:
- node_collector_evictions_number 被 node_collector_evictions_total 替换
- scheduler_e2e_scheduling_duration_seconds 被 scheduler_scheduling_attempt_duration_seconds 替换
「如果这篇文章对你有用,请随意打赏」
如果这篇文章对你有用,请随意打赏
使用微信扫描二维码完成支付