Kubernetes(k8s) v1.25.0-alpha.3版本上线发布说明kubernetes

半兽人 发表于: 2022-11-21   最后更新时间: 2022-11-21 12:40:37  
{{totalSubscript}} 订阅, 1,478 游览

2022年7月20号,v1.25.0-alpha.3 使用 Golang 版本 1.18.3 构建并推送。

紧急升级注意事项

  • 端到端测试已经从Ginkgo v1迁移到v2。

当通过Ginkgo CLI运行test/e2e时,必须使用v2 CLI,并且必须通过-timeout=24h,因为默认超时时间从24h减少到1h。当通过go test运行时,相应的-args参数是-ginkgo.timeout=24h。要在Kubernetes repo中构建CLI,使用make all WHAT=github.com/onsi/ginkgo/v2/ginkgo。Ginkgo V2不接受go test的-parallel标志来并行化Ginkgo规范,请改用ginkgo -pginkgo -procs=N

变化

以下是自Kubernetes(k8s) v1.25.0-alpha.2以来的变更日志。

弃用

  • Ginkgo.Measure在Ginkgo V2中已被废弃,转而使用gomega/gmeasure。

API的变化

  • 增加了一个新的功能门CheckpointRestore,以实现对容器的检查点支持。如果启用,就可以使用新的kubelet API(/checkpoint/{podNamespace}/{podName}/{containerName})对容器进行检查。

  • 网络策略中的EndPort字段现在被提升为GA

  • 支持endPort字段的网络策略提供者现在可以用它来指定应用网络策略的端口范围。

  • 以前,每个网络策略只能针对一个单一的端口。

  • 请注意,endPort字段必须由网络策略提供者支持。如果你的供应商不支持endPort,而这个字段在网络策略中被指定,网络策略将被创建,只包括端口字段(单一端口)。

  • 让PodSpec.Ports的描述更清楚地说明该信息如何只是信息性的,以及它如何可能是错误的。

  • 在兼容系统上,当指定的目标被检测出不是挂载点时,挂载器的Unmount实现被改变为不返回错误。在Linux上,检测挂载点的行为取决于umount命令在创建挂载器时被验证。此外,如果挂载器的Unmount有改变的行为,即当目标不是挂载点时不返回错误,那么在CleanupMountPoint/CleanupMountWithForce中会跳过挂载点检查。

  • 将 StatefulSet minReadySeconds 提升为 GA。这意味着kube-apiserver和kube-controller-manager二进制文件不需要--feature-gate=StatefulSetMinReadySeconds=true,它们将根据 https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation 上的政策很快被移除。

  • Pod spec.podOS字段被提升为GA。IdentifyPodOS功能门无条件启用,在1.27中不再接受-功能门参数。

  • Pod Topology Spread中的minDomains字段已升级为beta版

功能

  • 默认启用测试版功能ServiceIPStaticSubrange

  • 默认启用CSIMigrationvSphere功能。

  • 将SeccompDefault分级为beta。现在默认启用Kubelet功能门,配置/CLI标志仍默认为假。

  • 逐步将ServerSideFieldValidation改为beta版。模式验证在服务器端进行,请求将默认收到任何无效/未知字段的警告。

  • 在 "大型 "集群中,iptables模式下的kube-proxy有时会将未使用的规则留在iptables中一段时间(最多到--iptables-sync-period),然后再删除它们。这提高了性能,因为它不需要在每次同步时检查过期的规则。(在较小的集群中,一旦不再使用,它仍然会立即删除未使用的规则)。

    (这里使用的 "大 "的阈值目前是 "1000个端点",但这可能会改变)。

  • 引入新的KUBECACHEDIR环境变量,覆盖默认的发现缓存目录,即$HOME/.kube/cache

  • 默认启用JobTrackingWithFinalizers。该功能允许跟踪作业的进展,而不依赖于Pod在apiserver中的停留。

  • Kubeadm:确保etcd静态pod启动探针使用/health?serializable=false,而liveness探针使用/health?serializable=true&exclude=NOSPACE。NOSPACE的排除将允许管理员一次解决一个成员的空间问题。

  • Pod SecurityContext和PodSecurityPolicy支持斜线作为sysctl分隔符。

文档

  • kubectl中文翻译的优化

Bug 或 回归

  • 在替换命令中设置了dry-run和force标志时,增加了错误信息 "dry-run不能在设置-force时使用"。

  • Test/e2e/framework Framework.RecordFlakeIfError中的错误修正。

  • 不报告终止的容器度量

  • 修正当出现短暂的ResourceQuota冲突时,作业同步不会被重试的问题

  • 修复了具有@everyX时间表的cronjob的调度。

  • 对于调度器插件开发者:调度器框架的共享PodInformer现在以空索引器初始化。这使得调度器插件可以添加他们额外的索引器。请注意,只有不冲突的索引器才允许被添加。

  • 如果--audit-log-path参数中指定的文件的父目录不存在,Kubernetes现在会创建它。

  • Kubeadm:修复了在kubeadm加入时不尊重可配置的KubernetesVersion的问题。

  • Kubeadm:使用Kubernetes ci版本时,尊重用户指定的镜像库

  • Kubeadm:支持在重置阶段移除容器的重试机制

  • 运行kubelet,当出现错误时退出,打印错误日志

  • 节点注解alpha.kubernetes.io/provided-node-ip不再只在--cloud-provider=external时设置。现在,如果--cloud-provider标志被设置,它将在kubelet启动时被设置,包括被废弃的树内提供者。

  • 计算指标时,丢弃错误的容器StartTime指标

  • [aws]修正了一个错误,在传统云提供商出现假定角色故障的情况下,减少了对STS的不必要的调用。

其他 (Cleanup or Flake)

  • 如果有一个以上的IngressClass被指定为 "默认",DefaultIngressClass接纳控制器将选择一个而不是失败。
  • Kube-proxy。"用户空间 "代理模式在Linux和Windows上已被弃用,尽管在Windows上是默认模式。从v1.26开始,Windows的默认模式将变为 "内核空间"。
  • 一些apiserver指标发生了变化,具体如下。
    • priority_level_seat_count_samples被替换为priority_level_seat_utilization,它每纳秒而不是每毫秒采样一次;旧的指标尽管名称是传达利用率。
    • priority_level_seat_count_watermarks被移除。
    • priority_level_request_count_samples替换为priority_level_request_utilization,它每纳秒而不是每毫秒采样一次;旧的指标尽管名字很好,但传达的是利用率。
    • priority_level_request_count_watermarks 被移除。
    • read_vs_write_request_count_samples 被 read_vs_write_current_requests 取代,它每纳秒而不是每秒采样一次;新指标和旧指标一样,在使用 max-in-flight 过滤器时测量利用率,在使用 API Priority and Fairness 过滤器时测量请求数。
    • read_vs_write_request_count_watermarks被删除。

依赖关系

已经添加的

- github.com/go-task/slim-sprig: 348f09d
- github.com/google/pprof: 94a9f03
- github.com/ianlancetaylor/demangle: 28f6c0f
- github.com/onsi/ginkgo/v2: v2.1.4

已变更的

- github.com/antlr/antlr4/runtime/Go/antlr: ad29539 → f25a4f6
- github.com/google/cel-go: v0.11.2 → v0.12.3
- github.com/onsi/gomega: v1.10.1 → v1.19.0
- golang.org/x/net: cd36cc027dd868
- golang.org/x/sys: 3681064 → a9b59b0
- golang.org/x/tools: 897bd77 → v0.1.10
- google.golang.org/genproto: 1973136 → c8bf987
- google.golang.org/protobuf: v1.27.1 → v1.28.0
- k8s.io/klog/v2: v2.70.0 → v2.70.1
- k8s.io/kube-openapi: 31174f5 → 011e075
- sigs.k8s.io/json: 9f7c6b3 → f223a00

已移除的

- github.com/nxadm/tail: v1.4.4
- github.com/onsi/ginkgo: v1.14.0
- gopkg.in/tomb.v1: dd63297

相关链接

英文原文:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.25.md#v1250-alpha3

更新于 2022-11-21

查看kubernetes更多相关的文章或提一个关于kubernetes的问题,也可以与我们一起分享文章