What’s New in Kubernetes v1.22.0‑alpha.3? Detailed Change Log and Upgrade Tips
The Kubernetes v1.22.0‑alpha.3 release introduces a comprehensive set of functional enhancements, deprecations, API modifications, bug fixes, and dependency updates, accompanied by urgent upgrade notes and detailed guidance to help operators safely transition to the new version.
Release Overview
Since Kubernetes v1.22.0‑alpha.3, the release includes functional enhancements, deprecations, API changes, bug fixes, and dependency updates.
Urgent Upgrade Notes
Kubeadm flags --cri-socket and --config cannot be mixed. Use {Init|Join}Configuration.nodeRegistration.criSocket to set the CRI socket.
Deprecations
kubectl --recordis deprecated; it will be replaced by the mechanism in keps/sig-cli/859‑kubectl‑headers. e2e.test no longer supports --viper-config; pass flags directly, e.g., e2e.test --e2e-output-dir.
vSphere in‑tree PVs drop the beta FailureDomain label; GA topology labels are used instead.
Deprecated scheduler flags --hard-pod-affinity-symmetric-weight and --scheduler-name are removed; configure via ComponentConfig.
API Changes
Time zone display inconsistencies caused by Golang time.Format implementation.
EndpointSlice controller no longer copies the last‑applied‑configuration annotation from kubectl to updated EndpointSlice objects.
New interactiveMode field in kubeconfig allows exec plugin authors to override default stdin handling.
Kube‑scheduler v1beta2 API deprecates three plugins: NodeLabel, ServiceAffinity, NodePreferAvoidPods.
NetworkPolicy endPort is promoted to beta and enabled by default.
New Features
Metric apiserver_flowcontrol_request_concurrency_in_use reports current request concurrency in the API priority and fairness system.
All apiserver_admission_* metrics now include a namespace label; histogram bucket range for apiserver_admission_*_duration_seconds expanded to 0‑10 s.
Unified cgroup v2 map added to CRI support.
Base image updated to debian-base:buster-v1.7.1.
StatefulSets gain support for minReadySeconds.
Kubeadm adds -dry-run flag to the control‑plane phase of kubeadm init.
Kubeadm InitConfiguration and JoinConfiguration gain imagePullPolicy field (values: Always, IfNotPresent, Never).
CoreDNS upgraded to 1.8.4 with added list and watch permissions on EndpointSlice objects.
Kubernetes now built with Go 1.16.5.
Leader Migration supports wildcard component names and default values.
Feature gate SetHostnameAsFQDN graduated to GA and can no longer be disabled via the gate.
When the memory‑manager feature gate is enabled with a static policy, the pod resource API provides memory‑manager metrics.
etcd version updated to 3.5.0‑beta.3.
Bug Fixes and Regressions
GracefulNodeShutdown works again after DBus restart.
Event write permissions consolidated to edit and admin roles.
Adjusted termination reasons and messages for GracefulNodeShutdown pods.
Fixed EndpointSlice controller bug that mirrored NotReadyAddresses as ReadyAddresses.
Corrected scoring for NodeResourcesMostAllocated and NodeResourcesBalancedAllocation when nodes have idle containers.
Stale routes are cleaned up.
Scheduler extender is now invoked during preemption.
Fixed kubectl exec crash on older Windows versions.
Ensured a new pod does not start before the previous pod’s volume is fully detached.
Added missing lastSuccessfulTime to batch/v1 CronJob status.
Kube‑apiserver now logs synthetic verbs for clearer intent.
Kubeadm removed ephemeral_storage request from static etcd pods on stacked etcd control‑plane nodes.
Host‑process test updated to specify a user.
vSphere regression fixed for attaching disks when the datastore resides in a folder or cluster.
Other Cleanup / Flake Reductions
CSI drivers can run offline expansion tests only.
Client‑go reduced verbosity of “start/stop reflector” messages to level 3.
JSON logs now include source code location under the caller key.
Apiserver registry logs migrated to structured logging.
Node volume balancing feature removed.
Various Go and third‑party dependencies updated (e.g., OpenTelemetry, protobuf, gRPC, Azure SDK, Calico).
Dependency Changes
Added
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
Updated
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
Removed
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-
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Cloud Native Technology Community
The Cloud Native Technology Community, part of the CNBPA Cloud Native Technology Practice Alliance, focuses on evangelizing cutting‑edge cloud‑native technologies and practical implementations. It shares in‑depth content, case studies, and event/meetup information on containers, Kubernetes, DevOps, Service Mesh, and other cloud‑native tech, along with updates from the CNBPA alliance.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
