Kubernetes(k8s) v1.22.0-beta.0版本上线发布说明

半兽人 发表于: 2021-06-29   最后更新时间: 2021-06-29 15:41:24  
{{totalSubscript}} 订阅, 1,654 游览

自Kubernetes(k8s)v1.22.0-alpha.3以来的变更日志

功能

紧急升级注意事项
(真的,你必须在升级之前阅读此内容)

  • Kubeadm:标志--cri-socket不再允许与标志--config混合使用。请使用kubeadm配置,使用{Init|Join}Configuration.nodeRegistration.criSocket为节点设置CRI socket。

种类变更

弃用

  • 弃用kubectl中的--record标志。--record标志将被 https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers 中的机制所取代,该机制用kubectl命令的细节来注释HTTP请求。

  • E2e.test:删除了 --viper-config 标志。如果你以前用它通过文件向 e2e.test 传递标志,你将需要在命令行上直接传递它们,如e2e.test --e2e-output-dir

  • 通过vSphere树内插件新配置的PV将不再具有beta FailureDomain标签。vSphere volume插件将开始具有GA拓扑标签。

  • 已经从kube-scheduler中删除了废弃的标志 --hard-pod-affinity-symmetric-weight--scheduler-name。请使用ComponentConfig来配置这些参数。

API Change

  • 由于golang中time.Format的实现逻辑,显示的时区是不一致的

  • Endpoint镜像控制器不再将kubectl创建的最后应用配置注释镜像到更新的Endpoint片上。

  • 执行插件的作者可以通过新的interactiveMode kubeconfig字段覆盖标准输入的默认处理。

  • Kube-scheduler组件配置 v1beta2 API可用 三个调度器插件已废弃(NodeLabel、ServiceAffinity、NodePreferAvoidPods)。

  • 网络策略终端端口已升级为测试版,并默认为启用。

功能

  • 一个新的指标apiserver_flowcontrol_request_concurrency_in_use,显示API优先级和公平系统中当前执行的请求所占据的席位(并发量)。

  • 为所有apiserveradmission*指标添加一个命名空间标签。

    • 将所有apiserver_admission_*_duration_seconds指标的柱状图范围扩大到0-10s
  • 在CRI上添加统一的map,以支持cgroup v2。请参考 https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified

  • 基础镜像:更新至debian-base:buster-v1.7.1

  • 为StatefulSets实现minReadySeconds。

  • Kubeadm:在 "kubeadm init" 的 "control-plane"阶段添加"-dry-run"标志。

  • Kubeadm:在v1beta3版本的InitConfiguration和JoinConfiguration的 "nodeRegistration"部分增加了"imagePullPolicy"字段。这允许用户在 "kubeadm init"和 "kubeadm join"中指定镜像拉取策略。这个字段的值必须是 "Always"、"IfNotPresent" 或 "Never"中的一个。默认行为仍然是"IfNotPresent"。

  • Kubeadm:更新CoreDNS至1.8.4。授予CoreDNS "list" 和 "watch" EndpointSlice对象的权限,以适应双堆栈支持。

  • Kubernetes现在是用Golang 1.16.5构建的。

  • Leader Migration现在支持通配符组件名称和默认值。

  • SetHostnameAsFQDN已经升级为GA,这意味着不能使用功能网关来禁用该功能。

  • 在内存管理器功能网关启用且内存管理器策略是静态的情况下,pod资源API将提供内存管理器指标。

  • 更新etcd版本至3.5.0-beta.3

Bug和回退

  • 在DBus重启后,让GracefulNodeShutdown再次发挥作用
  • 将事件的写入权限汇总到编辑和管理员角色上
  • 更改了Graceful Node Shutdown Pod的终止原因和信息。更改了Graceful Node Shutdown Pod的拒绝原因和信息。
  • 修复endpoint片状镜像控制器上的一个错误,即端点NotReadyAddresses被镜像为准备好的地址到相应的EndpointSlice。
  • 修复了当节点拥有没有请求的容器时,NodeResourcesMostAllocated和NodeResourcesBalancedAllocation插件的计分。这使得小型节点的利用率不足。
  • 修复:清理过时的路由
  • 修正了一个bug,即调度器扩展器在抢占时不被调用
  • 修正了kubectl在某些旧版Windows上或在Windows 8上启用传统控制台模式时的问题,该问题导致kubectl exec崩溃
  • 修正了在前一个pod超时卸载其卷后启动新pod的问题。
  • 修复了一个bug,由于该错误,控制器没有填充添加到batch/v1 cronjob.status的lastSuccessfulTime字段。
  • Kube-apiserver现在在记录请求时报告合成动词,更好地解释了用户的意图,并与指标中报告的内容相匹配。
  • Kubeadm:从kubeadm在堆叠的etcd控制平面节点上部署的etcd静态pod中删除 "ephemeral_storage"请求。由于kubelet与cadvisor和LocalStorageCapacityIsolation功能门的问题,这个请求在一些设置上造成了零星的失败。更多细节请参见此问题:https://github.com/kubernetes/kubernetes/issues/99305
  • 更新hostprocess测试以指定用户
  • VSphere:如果数据存储在一个存储文件夹或数据存储集群内,修复附加磁盘过程中的回归。

其他(Cleanup 或 Flake)

  • 允许CSI驱动程序只运行离线扩展测试
  • Client-go: 将 "启动/停止反射器"信息的冗长程度再次降低到3。
  • JSON日志现在支持在日志格式中拥有关于源代码位置的信息,源代码信息可在"caller"键下获得。
  • 将staging/src/k8s.io/apiserver/pkg/registry logs迁移到结构化日志。
  • 移除平衡连接的节点 volumes功能
  • etcd客户端已更新至3.5.0;github.com/golang/protobuf、google.golang.org/protobuf和google.golang.org/grpc均已更新至当前版本。
  • 更新Azure Go SDK至v55.0.0
  • 更新Calico到v3.19.1
  • 将google/gnostic和google/go-cmp的版本更新为0.5.5,并更新过渡性依赖的protobuf。

依赖关系

已经添加的

  • github.com/antihax/optional: v1.0.0
  • github.com/benbjohnson/clock: v1.0.3
  • github.com/certifi/gocertifi: 2c3bb06
  • github.com/cncf/udpa/go: 5459f2c
  • github.com/cockroachdb/errors: v1.2.4
  • github.com/cockroachdb/logtags: eb05cc2
  • github.com/coredns/caddy: v1.1.0
  • github.com/etcd-io/gofail: ad7f989
  • github.com/getsentry/raven-go: v0.2.0
  • github.com/go-kit/kit: v0.9.0
  • github.com/josharian/intern: v1.0.0
  • github.com/opentracing/opentracing-go: v1.1.0
  • github.com/robfig/cron/v3: v3.0.1
  • go.etcd.io/etcd/api/v3: v3.5.0
  • go.etcd.io/etcd/client/pkg/v3: v3.5.0
  • go.etcd.io/etcd/client/v2: v2.305.0
  • go.etcd.io/etcd/client/v3: v3.5.0
  • go.etcd.io/etcd/etcdutl/v3: v3.5.0
  • go.etcd.io/etcd/pkg/v3: v3.5.0
  • go.etcd.io/etcd/raft/v3: v3.5.0
  • go.etcd.io/etcd/server/v3: v3.5.0
  • go.etcd.io/etcd/tests/v3: v3.5.0
  • go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.20.0
  • go.opentelemetry.io/contrib: v0.20.0
  • go.opentelemetry.io/otel/exporters/otlp: v0.20.0
  • go.opentelemetry.io/otel/metric: v0.20.0
  • go.opentelemetry.io/otel/oteltest: v0.20.0
  • go.opentelemetry.io/otel/sdk/export/metric: v0.20.0
  • go.opentelemetry.io/otel/sdk/metric: v0.20.0
  • go.opentelemetry.io/otel/sdk: v0.20.0
  • go.opentelemetry.io/otel/trace: v0.20.0
  • go.opentelemetry.io/otel: v0.20.0
  • go.opentelemetry.io/proto/otlp: v0.7.0
  • go.uber.org/goleak: v1.1.10

已变更的

  • github.com/Azure/azure-sdk-for-go: v53.1.0+incompatible → v55.0.0+incompatible
  • github.com/Azure/go-ansiterm: d6e3b33 → d185dfc
  • github.com/Azure/go-autorest/autorest/adal: v0.9.10 → v0.9.13
  • github.com/Azure/go-autorest/autorest/to: v0.2.0 → v0.4.0
  • github.com/Azure/go-autorest/autorest: v0.11.17 → v0.11.18
  • github.com/Azure/go-autorest/logger: v0.2.0 → v0.2.1
  • github.com/aws/aws-sdk-go: v1.35.24 → v1.38.49
  • github.com/cockroachdb/datadriven: 80d97fb → bf6692d
  • github.com/container-storage-interface/spec: v1.3.0 → v1.5.0
  • github.com/coredns/corefile-migration: v1.0.11 → v1.0.12
  • github.com/coreos/go-systemd/v22: v22.3.1 → v22.3.2
  • github.com/envoyproxy/go-control-plane: 5f8ba28 → 668b12f
  • github.com/form3tech-oss/jwt-go: v3.2.2+incompatible → v3.2.3+incompatible
  • github.com/go-openapi/jsonpointer: v0.19.3 → v0.19.5
  • github.com/go-openapi/jsonreference: v0.19.3 → v0.19.5
  • github.com/go-openapi/swag: v0.19.5 → v0.19.14
  • github.com/golang/groupcache: 8c9f03a → 41bb18b
  • github.com/golang/mock: v1.4.3 → v1.4.4
  • github.com/golang/protobuf: v1.4.3 → v1.5.2
  • github.com/google/btree: v1.0.0 → v1.0.1
  • github.com/google/go-cmp: v0.5.4 → v0.5.5
  • github.com/googleapis/gnostic: v0.5.1 → v0.5.5
  • github.com/grpc-ecosystem/go-grpc-middleware: f849b54 → v1.3.0
  • github.com/grpc-ecosystem/grpc-gateway: v1.9.5 → v1.16.0
  • github.com/jonboulle/clockwork: v0.1.0 → v0.2.2
  • github.com/json-iterator/go: v1.1.10 → v1.1.11
  • github.com/mailru/easyjson: v0.7.0 → v0.7.6
  • github.com/mattn/go-isatty: v0.0.4 → v0.0.3
  • github.com/mattn/go-runewidth: v0.0.7 → v0.0.9
  • github.com/miekg/dns: v1.1.35 → v1.0.14
  • github.com/moby/term: df9cb8a → 9d4ed18
  • github.com/olekukonko/tablewriter: v0.0.4 → v0.0.5
  • github.com/prometheus/client_golang: v1.7.1 → v1.11.0
  • github.com/prometheus/procfs: v0.2.0 → v0.6.0
  • github.com/rogpeppe/fastuuid: 6724a57 → v1.2.0
  • github.com/soheilhy/cmux: v0.1.4 → v0.1.5
  • github.com/spf13/cobra: v1.1.1 → v1.1.3
  • github.com/spf13/jwalterweatherman: v1.1.0 → v1.0.0
  • github.com/tmc/grpc-websocket-proxy: 0ad062e → e5319fd
  • github.com/yuin/goldmark: v1.2.1 → v1.3.5
  • go.etcd.io/bbolt: v1.3.5 → v1.3.6
  • go.uber.org/atomic: v1.6.0 → v1.7.0
  • go.uber.org/multierr: v1.5.0 → v1.6.0
  • go.uber.org/zap: v1.16.0 → v1.17.0
  • golang.org/x/lint: 738671d → 6edffad
  • golang.org/x/mod: ce943fd → v0.4.2
  • golang.org/x/net: 3d97a24 → a5a99cb
  • golang.org/x/sync: 67f06af → 036812b
  • golang.org/x/sys: d19ff85 → 59db8d7
  • golang.org/x/tools: v0.1.0 → v0.1.2
  • google.golang.org/genproto: 8816d57 → f16073e
  • google.golang.org/grpc: v1.27.1 → v1.38.0
  • google.golang.org/protobuf: v1.25.0 → v1.26.0
  • gopkg.in/yaml.v3: eeeca48 → 496545a
  • sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.19 → v0.0.20

已移除的

  • github.com/bifurcation/mint: 93c51c6
  • github.com/caddyserver/caddy: v1.0.3
  • github.com/cenkalti/backoff: v2.1.1+incompatible
  • github.com/cheekybits/genny: 9127e81
  • github.com/go-acme/lego: v2.5.0+incompatible
  • github.com/jimstudt/http-authentication: 3eca13d
  • github.com/klauspost/cpuid: v1.2.0
  • github.com/kylelemons/godebug: d65d576
  • github.com/lucas-clemente/aes12: cd47fb3
  • github.com/lucas-clemente/quic-clients: v0.1.0
  • github.com/lucas-clemente/quic-go-certificates: d2f8652
  • github.com/lucas-clemente/quic-go: v0.10.2
  • github.com/marten-seemann/qtls: v0.2.3
  • github.com/mholt/certmagic: 6a42ef9
  • github.com/naoina/go-stringutil: v0.1.0
  • github.com/naoina/toml: v0.1.1
  • github.com/robfig/cron: v1.1.0
  • go.etcd.io/etcd: dd1b699
  • go.uber.org/tools: 2cfd321
  • gopkg.in/cheggaaa/pb.v1: v1.0.25
  • gopkg.in/mcuadros/go-syslog.v2: v2.2.1
  • gopkg.in/resty.v1: v1.12.0
  • rsc.io/quote/v3: v3.1.0
  • rsc.io/sampler: v1.3.0-

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

更新于 2021-06-29

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