Skip to content

v1.21.0+k3s1

Compare
Choose a tag to compare
@ks3serviceaccount ks3serviceaccount released this 26 Apr 21:48
· 1671 commits to master since this release
2705431

This release is K3s's first in the v1.21 line. It updates Kubernetes to v1.21.0.

As this release includes a number of significant changes from previous versions, we will not make v1.21 available via the stable release channel until v1.21.1+k3s1 or later.

Before upgrading from earlier releases, be sure to read the Kubernetes Urgent Upgrade Notes.

Changes since K3s v1.20:

  • Upgrade Kubernetes to v1.21.0 (#3097)
  • Dual-stack IPv4/IPv6 operation is now possible. (#3212)
    Flannel, ServiceLB, and the Network Policy Controller do not support IPv6 yet, so those wanting to experiment with dual-stack operation must disable these features and install a dual-stack capable CNI Plugin, as well as providing dual-stack addresses for --node-ip, --cluster-cidr, and --service-cidr. See the upstream documentation for more information.
  • conf.d style config loading is now supported. (#3162)
    Additional configuration files found in /etc/rancher/k3s/config.yaml.d/ will be loaded in sequential order; the last file to set a value takes precendence.
  • Airgap images can now be loaded from zstandard-compressed tarballs. (#2929)
  • Release artifacts now include k3s-airgap-images tarballs compressed with zstandard and gzip. (#3169)
    Zstandard produces archives that are significantly smaller, and faster to decompress compared to gzip. Gzip and uncompressed archives are provided for those using docker load to import images into a private registry.
  • Service Account Issuer Discovery is now supported, using the OpenID provider endpoint built in to the Kubernetes API Server. (#3097)
  • CoreDNS has been upgraded to v1.8.3. (#3168)
  • Traefik has been upgraded to v2.4.8. (#2910)
    Existing clusters will not upgrade from v1.x but all new installations will have Traefik v2.
  • Agents now use static local ports for load-balancer tunnels to servers. (#3026)
  • ContainerD now supports repository rewrites in the private registry configuration (#3064)
    This is intended for use with private registries that prefix mirrored images, for example if nginx:latest is mirrored as myregistry.example.com/images-prod/library/nginx:latest.

Known Issues:

  • Install script does not properly escape shell special characters in arguments (#3179)
  • There is a regression that may cause issues with deleting nodes due to finalizers not being removed. If you observe a node is stuck for some time and is not being deleted you can describe the node to see if any finalizers remain. If there are any finalizers, you can work around this issue by running the following command to remove the finalizers:
# replace $NODENAME with the name of the node
kubectl patch node $NODENAME -p '{"metadata":{"finalizers":[]}}' --type=merge

Embedded Component Versions

Component Version
Kubernetes v1.21.0
Kine v0.6.0
SQLite 3.33.0
Etcd v3.4.13-k3s1
Containerd v1.4.4-k3s1
Runc v1.0.0-rc93 (3397a09)
Flannel v0.13.1-rc2 (273b36c)
Metrics-server v0.3.6
Traefik v2.4.8
CoreDNS v1.8.3
Helm-controller v0.8.3
Local-path-provisioner v0.0.19

Helpful Links

As always, we welcome and appreciate feedback from our community of users. Please feel free to: