Kubernetes v1.23.0-alpha.3上线了!

半兽人 发表于: 2021-10-13   最后更新时间: 2021-10-14 23:34:09  
{{totalSubscript}} 订阅, 1,385 游览

2021年9月29日,Kubernetes(k8s) v1.23.0-alpha.3已经使用Golang 1.17.1版本构建并推送。

种类变更

弃用

  • 在EgressSelectorConfiguration API中删除master作为有效的EgressSelection类型。
  • 移除VolumeSubpath功能网关
  • 已经删除了废弃的 --experimental-bootstrap-kubeconfig 标志。这可以通过 --bootstrap-kubeconfig 设置。

API变化

  • Client-go模拟配置可以指定一个 UID 以在请求中传递模拟的 uid 信息。
  • IPv6DualStack功能移至稳定版。节点IPAM控制器的控制器管理器标志略有变化。
    • 当配置双栈集群时,用户必须同时指定 --node-cidr-mask-size-ipv4 和 --node-cidr-mask-size-ipv6 来设置每个节点的IP掩码大小,而不是以前的 --node-cidr-mask-size 标志。
    • --node-cidr-mask-size与--node-cidr-mask-size-ipv4和--node-cidr-mask-size-ipv6相互排斥。
    • 单栈集群不需要改变,但可以选择使用更具体的标志。用户可以使用较早的 --node-cidr-mask-size 标志或较新的 --node-cidr-mask-size-ipv4 或 --node-cidr-mask-size-ipv6 标志来配置每个节点的IP掩码大小,前提是该标志的IP系统与集群的IP系统(--cluster-cidr)匹配。
  • Kubelet:将KubeletConfiguration v1beta1 ResolverConfig字段从一个string变成*string

功能

  • 添加机制,将简单的sniffer(嗅探器)类加载到fluentd-elasticsearch镜像中。
  • Kubeadm: 在预检期间不检查加入工作节点的'/etc/kubernetes/manifests'文件夹是否为空。
  • kube-apiserver的Prometheus指标已经扩展了一些,描述了处理LIST请求的成本。 如下:

    • apiserver_cache_list_total: 从watch缓存提供的LIST请求的计数器,按resource_prefix和index_name细分。
    • apiserver_cache_list_fetched_objects_total: 在为LIST请求提供服务的过程中,从观察缓存中读取的对象的计数器,按资源前缀和索引名称细分。
    • apiserver_cache_list_evaluated_objects_total: watch缓存的LIST请求提供服务的过程中测试的对象的计数器,按resource_prefix细分。
    • apiserver_cache_list_returned_objects_total: 从watch缓存为 LIST 请求返回的对象计数器,按 resource_prefix 细分
    • apiserver_storage_list_total: 从 etcd 提供的 LIST 请求计数器,按资源细分
    • apiserver_storage_list_fetched_objects_total: 在服务 LIST 请求的过程中从 etcd 读取的对象计数器,按资源细分
    • apiserver_storage_list_evaluated_objects_total: 在处理来自 etcd 的 LIST 请求的过程中测试的对象计数器,按资源细分
    • apiserver_storage_list_returned_objects_total: 为来自 etcd 的 LIST 请求返回的对象计数器,按资源细分

Bug和回退

  • 改变 kube-proxy start 的行为; 当当前的 sysctl 值已经设置得更高时,不会尝试设置特定的 sysctl 值(在非 init 命名空间中的最新内核版本中不再起作用)。
  • 修复job控制器同步:如果发生冲突,确保使用最新信息进行同步。 提高 JobTrackingWithFinalizers 的可靠性。
  • 修复了节点没有区域标签时的系统默认拓扑传播。现在默认情况下,Pod可以正确传播。
  • 没有选择器的无头服务在创建时没有启用双栈,将被默认为 RequireDualStack 而不是 PreferDualStack。 这与创建时启用了双栈的服务是一致的。
  • Kube-apiserver: 通过events.k8s.ioAPI组为集群范围内的对象创建的事件现在也允许在默认的命名空间中,以便与事件客户端和v1 API兼容。
  • 如果启用了存储对象启用了保护功能,Kube-controller将错误地启用对通用短暂内卷(inline volumes)的支持。
  • Kubeadm:将验证Linux主机上是否启用swap的预检(称为'Swap'),变为警告而不是错误。这与kubelet中的NodeSwap功能网关分级定为Beta版并在1.23中默认启用允许Linux主机上的Swap支持。在kubeadm的下一个版本(1.24)中,预检将被删除,因此我们建议你停止使用它 -- 例如通过 --ignore-preflight-errors或kubeadm配置。
  • 使 etcd 客户端(由 API 服务器使用)重试某些类型的错误。 可以在 https://github.com/etcd-io/etcd/blob/main/api/v3rpc/rpctypes/error.go#L72 找到可重试(codes.Unavailable)错误的完整列表
  • 当使用固定 UID 删除并重新创建静态 pod 文件时,pod 未正确重新启动。
  • XFS文件系统现在强制格式化(选项-f),以避免由于检测到魔术超级块而出现格式化问题。 这与 ext3/4 文件系统的格式化行为一致。

其他(Cleanup 或 Flake)

  • 增强了由于pod的PersistentVolumeClaim绑定到不存在的PersistentVolume而未被调度器选中的节点的错误信息。
  • cmd/proxy/{config, healthcheck, winkernel}迁移至结构化日志
  • 将 cmd/proxy/app 和 pkg/proxy/meta_proxier 迁移到结构化日志上
  • 将 pkg/proxy 迁移至结构化日志
  • 将 pkg/proxy/winuserspace 迁移至结构化日志
  • 自v1.22版起,GA的BoundServiceAccountTokenVolume功能网关被无条件启用,不再通过--feature-gates参数指定。
  • 支持PodPidsLimit支持NodePidsLimit功能网关,从v1.20版起为GA无条件启用,不能再通过`--feature-gates'参数指定。
  • 更新构建镜像至Debian 11 (Bullseye)
    • debian-base:bullseye-v1.0.0
    • debian-iptables:bullseye-v1.0.0
    • go-runner:v2.3.1-go1.17.1-bullseye.0
    • kube-cross:v1.23.0-go1.17.1-bullseye.1
    • setcap:bullseye-v1.0.0
    • cluster/images/etcd: Build 3.5.0-2 image
    • test/conformance/image: Update runner image to base-debian11

依赖关系

已经添加的

Nothing has changed.(没有任何变化。)

变更

  • github.com/json-iterator/go: v1.1.11 → v1.1.12
  • github.com/modern-go/reflect2: v1.0.1 → v1.0.2

已删除

Nothing has changed.(没有任何变化。)

相关链接

英文原文来自:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.23.md

更新于 2021-10-14

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