Supported Versions of Kubernetes

Find out about the Kubernetes versions that Container Engine for Kubernetes (OKE) currently supports, along with details of previously supported versions and planned support for future versions.

When Container Engine for Kubernetes support for a new version of Kubernetes is announced, an older Kubernetes version will subsequently cease to be supported. Oracle recommends that you upgrade existing clusters to use the most recent Kubernetes version that Container Engine for Kubernetes supports.

This topic lists:

Currently Supported Kubernetes Versions

Container Engine for Kubernetes supports three versions of Kubernetes for new clusters. For a minimum of 30 days after the announcement of support for a new Kubernetes version, Container Engine for Kubernetes continues to support the fourth oldest available Kubernetes version. After that time, the older Kubernetes version ceases to be supported.

When creating a new cluster with Container Engine for Kubernetes, Oracle recommends that you use the most recent Kubernetes version that Container Engine for Kubernetes supports. When Oracle announces Container Engine for Kubernetes support for a new Kubernetes version, Oracle recommends you upgrade existing clusters to use that new Kubernetes version as soon as possible.

Release Calendar

Container Engine for Kubernetes (OKE) supports the following versions of Kubernetes for new clusters:

Kubernetes Version Patch release supported by OKE Upstream Release Date Upstream End-of-life date OKE Release Date OKE End-of-life Date
1.28 1.28.2 2023-09-13 2024-10-28 2023-12-19 30 days after 1.31 OKE Release Date (planned)
1.27 1.27.2 2023-07-19 2024-06-28 2023-08-16 30 days after 1.30 OKE Release Date (planned)
1.26 1.26.7 2023-07-19 2024-02-28 2023-09-12 30 days after 1.29 OKE Release Date (planned)
1.26 1.26.2 2022-12-09 2024-02-28 2023-04-26 2023-10-13

Legal Disclaimer: The table is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle's products may change and remains at the sole discretion of Oracle Corporation.

Notes about Container Engine for Kubernetes Support for Kubernetes Version 1.28

Note that in Kubernetes version 1.28, the Kubernetes skew policy has expanded. Prior to Kubernetes version 1.28, the skew policy required a cluster's control plane nodes to be no more than two versions ahead of worker nodes. Starting from Kubernetes version 1.28, the Kubernetes skew policy allows control plane nodes to be up to three versions ahead of worker nodes. See the Kubernetes version skew support policy.

Container Engine for Kubernetes applies the expanded skew policy to clusters running Kubernetes version 1.28 and later.

Notes about Container Engine for Kubernetes Support for Kubernetes Version 1.27

Note that Kubernetes version 1.27 stopped serving the following deprecated Kubernetes API:

  • CSIStorageCapacity (storage.k8s.io/v1beta1 API version)

For more information about migrating from the deprecated APIs, see the Kubernetes Deprecated API Migration Guide.

Notes about Container Engine for Kubernetes Support for Kubernetes Version 1.26

Note that Kubernetes version 1.26 stopped serving a number of deprecated Kubernetes APIs, including:

  • FlowSchema (flowcontrol.apiserver.k8s.io/v1beta1 API version)
  • HorizontalPodAutoscaler (autoscaling/v2beta2 API version)
  • PriorityLevelConfiguration (flowcontrol.apiserver.k8s.io/v1beta1 API version)

For more information about migrating from the deprecated APIs, see the Kubernetes Deprecated API Migration Guide.

Support for Kubernetes version 1.26.7 was released to address the following upstream issues with Kubernetes version 1.26.2:

Notes about Container Engine for Kubernetes Support for Kubernetes Version 1.25

Note that Kubernetes version 1.25 stopped serving a number of deprecated Kubernetes APIs, including:

  • CronJob (batch/v1beta1 API version)
  • EndpointSlice (discovery.k8s.io/v1beta1 API version)
  • Event (events.k8s.io/v1beta1 API version)
  • HorizontalPodAutoscaler (autoscaling/v2beta1 API version)
  • PodDisruptionBudget (policy/v1beta1 API version)
  • PodSecurityPolicy (policy/v1beta1 API version)
  • RuntimeClass (node.k8s.io/v1beta1 API version)

For more information about migrating from the deprecated APIs, see the Kubernetes Deprecated API Migration Guide.

Support for Kubernetes version 1.25.12 was released to address the following upstream issues with Kubernetes version 1.25.4:

Note

The upstream Kubernetes project deprecated pod security policies in Kubernetes version 1.21, and removed the feature in Kubernetes version 1.25. Consequently, Container Engine for Kubernetes does not support pod security policies and the PodSecurityPolicy admission controller in clusters running Kubernetes version 1.25 and later.

If you require similar functionality, consider using Kubernetes pod security standards and the PodSecurity admission controller instead (along with the Privileged, Baseline, and Restricted policies). By default, Container Engine for Kubernetes enables the PodSecurity admission controller in clusters running Kubernetes version 1.23 and later, in order to support pod security standards. For more information about Kubernetes pod security standards, and the PodSecurity admission controller, see Pod Security Standards in the Kubernetes documentation.

Alternatively, consider using other alternatives that are being developed in the Kubernetes ecosystem to enforce policies.

If you do decide to move from using pod security policies and the PodSecurityPolicy admission controller to using pod security standards and the PodSecurity admission controller, see Migrate from PodSecurityPolicy to the Built-In PodSecurity Admission Controller in the Kubernetes documentation. Note that it is important to complete the migration before creating a new cluster running Kubernetes version 1.25, or before upgrading an existing Kubernetes version 1.24 cluster to run Kubernetes version 1.25. Also note that the Console provides a convenient way to disable the use of the PodSecurityPolicy admission controller in existing Kubernetes clusters created and managed by Container Engine for Kubernetes (see Using the Console to Disable the PodSecurityPolicy Admission Controller).

Notes about Container Engine for Kubernetes Support for Kubernetes Version 1.22

Note that Kubernetes version 1.22 stopped serving a number of deprecated Kubernetes APIs, including:

  • Webhook resources
  • CustomResourceDefinition
  • APIService
  • TokenReview
  • SubjectAccessReview resources
  • CertificateSigningRequest
  • Lease
  • Ingress
  • IngressClass
  • RBAC resources
  • PriorityClass
  • Storage resources

For more information about migrating from the deprecated APIs, see the Kubernetes Deprecated API Migration Guide.

Planned Support for Future Kubernetes Versions

Container Engine for Kubernetes support is currently planned for the following future versions of Kubernetes. Note that future dates are subject to change without notice. In addition, note the Legal Disclaimer following the table.

Kubernetes Version Patch release supported by OKE Upstream Release Date Upstream End-of-life date OKE Release Date
1.29 To Be Confirmed 2023-12-13 2025-02-28 March 2024 (planned)
1.30 To Be Confirmed April 2024 (planned) To Be Confirmed To Be Confirmed

Legal Disclaimer: The table is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle's products may change and remains at the sole discretion of Oracle Corporation.

Previously Supported Kubernetes Versions

Container Engine for Kubernetes previously supported the following versions of Kubernetes:

Kubernetes Version Support Ended
1.25.12 February 15, 2024
1.25.4 October, 13, 2023
1.24.1 September 26, 2023
1.23.4 June 22, 2023
1.22.5 February 22, 2023
1.21.5 October 13, 2022
1.20.11 July 19, 2022
1.20.8 November 7, 2021
1.19.15 April 22, 2022
1.19.12 November 7, 2021
1.19.7 August 13, 2021
1.18.10 February 9, 2022
1.17.13 September 8, 2021
1.17.9 April 17, 2021
1.16.15 April 17, 2021
1.15.12 February 2, 2021
1.15.7 February 2, 2021
1.14.8 December 15, 2020
1.13.x March 21, 2020
1.12.7 January 29, 2020
1.12.6 April 15, 2019
1.11.9 September 9, 2019
1.11.8 April 15, 2019
1.11.x versions prior to 1.11.8 March 13, 2019
1.10.x April 12, 2019
1.9.x December 11, 2019
1.8.x September 7, 2018

Notes about Container Engine for Kubernetes Support for Kubernetes Version 1.20

With the announcement of support for Kubernetes version 1.20.8, the container runtime used by Container Engine for Kubernetes changes from Docker to CRI-O. However, you don't have to change any of your existing Docker images because Docker images are Open Container Initiative (OCI) compliant. As far as Kubernetes is concerned, all OCI-compliant images look the same.

Note the following:

  • CRI-O is an implementation of the Kubernetes Container Runtime Interface (CRI), which enables the use of OCI-compatible runtimes. CRI-O can pull your existing Docker images and run them on your Kubernetes version 1.20.8 clusters.
  • When using the Docker runtime, the default configuration captures the standard output and standard error streams of containers using the JSON format. In contrast, CRI-O uses the Logrus format. If you use a logging tool such as Fluentd or Fluent Bit, update the tool's configuration to use a new parser to parse CRI logs. For example:
  • You might have a workflow in a cluster that relies on the underlying docker socket /var/run/docker.sock (a pattern often referred to as Docker in Docker). Starting with Kubernetes version 1.20.8, such a workflow no longer functions.
  • If you previously used the Docker CLI to run commands on a host, you have to use crictl (a CLI for CRI-compatible container runtimes) instead.
  • The upstream Kubernetes project is deprecating Docker as a container runtime after Kubernetes version 1.20.

To find out more:

  • See the Kubernetes 1.20.8 Changelog for more information about Kubernetes 1.20.8
  • See the Dockershim Deprecation FAQ for more information about the deprecation of the dockershim adapter (which previously enabled the kubelet to interact with Docker as if Docker were a CRI-compatible runtime)