Kubernetes - v1.22.0-beta.0

Changelog since v1.22.0-alpha.3

Urgent Upgrade Notes

(No, really, you MUST read this before you upgrade)

  • Kubeadm: the flag --cri-socket is no longer allowed in a mixture with the flag --config. Please use the kubeadm configuration for setting the CRI socket for a node using {Init|Join}Configuration.nodeRegistration.criSocket. (#101600, @KofClubs) [SIG Cluster Lifecycle]

Changes by Kind


  • Deprecate --record flag in kubectl. The --record flag is being replaced with the mechanism from https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers which annotates HTTP requests with kubectl command details. (#102873, @soltysh) [SIG CLI]
  • E2e.test: removed the --viper-config flag. If you were previously using this to pass flags to e2e.test via a file, you will need to pass them directly on the command line, e.g. e2e.test --e2e-output-dir (#102598, @dims) [SIG Testing]
  • Newly provisioned PVs by vSphere in-tree plugin will no longer have the beta FailureDomain label. vSphere volume plugin will start to have GA topology label instead. (#102414, @divyenpatel) [SIG Cloud Provider, Storage and Testing]
  • The deprecated flag --hard-pod-affinity-symmetric-weight and --scheduler-name have been removed from kube-scheduler. Use ComponentConfig instead to configure those parameters. (#102805, @ahg-g) [SIG Scheduling]

API Change

  • Because of the implementation logic of time.Format in golang, the displayed time zone is not consistent (#102366, @cndoit18) [SIG Apps, Auth, Autoscaling, CLI, Cluster Lifecycle, Instrumentation, Network, Node and Testing]
  • Endpoint slices mirroring controller no longer mirrors the last-applied-configuration annotation created by kubectl to updated endpoint slices (#102731, @sharmarajdaksh) [SIG API Machinery, Apps, Cloud Provider, Network, Release, Scheduling, Storage and Testing]
  • Exec plugin authors can override default handling of standard input via new interactiveMode kubeconfig field (#99310, @ankeesler) [SIG API Machinery, Auth, CLI and Testing]
  • Kube-scheduler component config v1beta2 API available
    Three scheduler plugins deprecated (NodeLabel, ServiceAffinity, NodePreferAvoidPods) (#99597, @adtac) [SIG Scheduling]
  • Network Policy EndPort is graduated to beta and is enabled by default (#102834, @rikatz) [SIG Network]


  • A new metric apiserver_flowcontrol_request_concurrency_in_use that shows the number of
    seats (concurrency) occupied by the currently executing requests in the API Priority and Fairness system (#102795, @tkashem) [SIG API Machinery and Instrumentation]
  • Add a namespace label for all apiserver_admission_* metrics.
  • Expand the histogram range to 0-10s for all apiserver_admission_*_duration_seconds metrics. (#101208, @voutcn) [SIG API Machinery and Instrumentation]
  • Add unified map on CRI to support cgroup v2. Refer to https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified. (#102578, @payall4u) [SIG Node]
  • Base-images: Update to debian-base:buster-v1.7.1 (#102594, @mengjiao-liu) [SIG API Machinery and Release]
  • Implement minReadySeconds for the StatefulSets. (#101316, @ravisantoshgudimetla) [SIG Apps and Testing]
  • Kubeadm: add the "--dry-run" flag to the "control-plane" phase of "kubeadm init" (#102722, @vinayakankugoyal) [SIG Cluster Lifecycle]
  • Kubeadm: add the "imagePullPolicy" field in the "nodeRegistration" section of InitConfiguration and JoinConfiguration in v1beta3. This allows the user to specify the image pull policy during "kubeadm init" and "kubeadm join". The value of this field must be one of "Always", "IfNotPresent" or "Never". The default behavior continues to be "IfNotPresent". (#102901, @wangyysde) [SIG Cluster Lifecycle]
  • Kubeadm: update CoreDNS to 1.8.4. Grant CoreDNS permissions to "list" and "watch" EndpointSlice objects to accommodate dual-stack support. (#102466, @pacoxu) [SIG Cluster Lifecycle]
  • Kubernetes is now built with Golang 1.16.5 (#102689, @cpanato) [SIG Cloud Provider, Instrumentation, Release and Testing]
  • Leader Migration now support a wildcard component name and the default value. (#102711, @jiahuif) [SIG API Machinery and Cloud Provider]
  • SetHostnameAsFQDN has been graduated to GA, which means feature cannot be disabled using a feature gate. (#101294, @javidiaz) [SIG Node]
  • The pod resource API will provide memory manager metrics in the case when the memory manager feature gate enabled and the memory manager policy is static. (#101030, @cynepco3hahue) [SIG Node and Testing]
  • Update etcd version to 3.5.0-beta.3 (#102062, @serathius) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing]

Bug or Regression

  • After DBus restarts, make GracefulNodeShutdown work again (#100369, @wzshiming) [SIG Node and Testing]
  • Aggregate write permissions on events to edit and admin role (#102858, @tumido) [SIG Auth]
  • Changed the Graceful Node Shutdown Pod termination reason and message.
    Changed the Graceful Node Shutdown Pod rejection reason and message. (#102840, @Kissy) [SIG Node]
  • Fix a bug on the endpoint slices mirroring controller where endpoint NotReadyAddresses were mirrored as Ready to the corresponding EndpointSlice (#102683, @aojea) [SIG Apps and Network]
  • Fix scoring for NodeResourcesMostAllocated and NodeResourcesBalancedAllocation plugins when nodes have containers with no requests. This was leaving to under-utilization of small nodes. (#102925, @alculquicondor) [SIG Scheduling]
  • Fix: cleanup outdated routes (#102935, @nilo19) [SIG Cloud Provider]
  • Fixed a bug that scheduler extenders are not called on preemptions (#103019, @ordovicia) [SIG Scheduling]
  • Fixed an issue with kubectl on certain older version of Windows or when legacy console mode is enabled on Windows 8 which causes kubectl exec to crash (#102825, @n4j) [SIG API Machinery, CLI, Cloud Provider and Cluster Lifecycle]
  • Fixed starting new pods after previous pod timed out unmounting its volumes. (#100183, @jsafrane) [SIG Node, Storage and Testing]
  • Fixes a bug due to which the controller was not populating the lastSuccessfulTime field added to batch/v1 cronjob.status (#102642, @alaypatel07) [SIG Apps]
  • Kube-apiserver now reports the synthetic verb when logging requests, better explaining the user intent and matching what is reported in the metrics. (#102934, @lavalamp) [SIG API Machinery and Instrumentation]
  • Kubeadm: allow passing the flag --log-file if --config is passed. If you wish to log to a file you must also pass --logtostderr=false or --alsologtostderr=true. Alternatively you can pipe to a file using "kubeadm ... | tee ...". (#101449, @CaoDonghui123) [SIG Cluster Lifecycle]
  • Kubeadm: remove the "ephemeral_storage" request from the etcd static pod that kubeadm deploys on stacked etcd control plane nodes. This request has caused sporadic failures on some setups due to a problem in the kubelet with cadvisor and the LocalStorageCapacityIsolation feature gate. See this issue for more details: https://github.com/kubernetes/kubernetes/issues/99305 (#102673, @jackfrancis) [SIG Cluster Lifecycle]
  • Updates hostprocess tests to specify user (#102965, @jsturtevant) [SIG Testing and Windows]
  • VSphere: Fix regression during attach disk if datastore is within a storage folder or datastore cluster. (#102892, @gnufied) [SIG Cloud Provider and Storage]

Other (Cleanup or Flake)

  • Allow CSI drivers to just run offline expansion tests (#102665, @gnufied) [SIG Storage and Testing]
  • Client-go: reduce verbosity of "Starting/Stopping reflector" messages to 3 again (#102788, @pohly) [SIG API Machinery]
  • JSON logging now supports having information about source code location in the logging format, source code information is available under the key "caller" (#102437, @MadhavJivrajani) [SIG API Machinery, Cluster Lifecycle and Instrumentation]
  • Migrate staging/src/k8s.io/apiserver/pkg/registry logs to structured logging. (#98287, @lala123912) [SIG API Machinery]
  • Remove balanced attached node volumes feature (#102443, @ravisantoshgudimetla) [SIG Scheduling]
  • The etcd client has been updated to 3.5.0; github.com/golang/protobuf, google.golang.org/protobuf, and google.golang.org/grpc have been updated to current versions. (#100488, @liggitt) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Storage and Testing]
  • Update Azure Go SDK to v55.0.0 (#102441, @feiskyer) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node and Storage]
  • Update Calico to v3.19.1 (#102386, @JornShen) [SIG Cloud Provider]
  • Update dep google/gnostic and google/go-cmp to v0.5.5 and updating transitive dependencies protobuf (#102783, @mcbenjemaa) [SIG Architecture and Testing]



  • 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/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


June 22, 2021, 10:03 p.m.
Kubernetes v1.22.0-beta.0
Register or login to:
  • 🔍View and search all Kubernetes releases.
  • 🛠️Create and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • 🚀Much more coming soon!
Continue with GitHub
Continue with Google