AWS EKS supported "container runtimes"

0

Hi,

Im newbie in container/virtualization technology, but from reading some article i came up with this logic - AWS EKS uses kubernetes, which in its turn, from version 1.24, relies on different "container runtimes" (not only docker), that are "kubernetes compatible", or have CRI implemented. Does it mean, that AWS EKS, does work with different "container runtimes"? have anyone tried using any other "container runtime" with EKS?

Thank you.

asked a year ago2384 views
1 Answer
0
Accepted Answer

AWS EKS indeed supports different container runtimes. However, the choice of container runtime depends on the version of Kubernetes in use. For Kubernetes version 1.24 and later clusters, the only container runtime included in the officially published Amazon EKS AMIs is containerd. Earlier versions of Kubernetes use Docker as the default runtime, but they have a bootstrap flag option that you can use to test your workloads on any supported cluster with containerd​-11.24and later clusters, officially published Amazon EKS AMIs includecontainerdas the only runtime. Kubernetes versions earlier than1.24use Docker as the default runtime. These versions have a bootstrap flag option that you can use to test out your workloads on any supported cluster withcontainerd. For more information, see Amazon EKS ended support for Dockershim","pub_date":null}}​. Starting from Kubernetes version 1.27, Amazon EKS will ignore the --container-runtime argument passed to any bootstrap scripts, and it's recommended not to pass this argument to --kubelet-extra-args in order to prevent errors during the node bootstrap process​-1--container-runtimecommand line argument for thekubeletwas removed. The default container runtime for Amazon EKS has been containerd since1.24, which eliminates the need to specify the container runtime. From 1.27onwards, Amazon EKS will ignore the--container-runtimeargument passed to any bootstrap scripts. It is important that you don't pass this argument to--kubelet-extra-argsin order to prevent errors during the node bootstrap process. You must remove the--container-runtime argument from all of your node creation workflows and build scripts","pub_date":null}}​.It's important to note that Kubernetes 1.26 no longer supports CRI v1alpha2, which means the kubelet will not register the node if the container runtime doesn't support CRI v1. This effectively means that Kubernetes 1.26 doesn't support containerd minor version 1.5 and earlier. You need to upgrade to containerd version 1.6.0 or later before you upgrade any nodes to Kubernetes 1.26. This also applies to any other container runtimes that only support the v1alpha2​-11.26no longer supports CRIv1alpha2. This results in the kubelet no longer registering the node if the container runtime doesn't support CRI v1. This also means that Kubernetes 1.26doesn't support containerd minor version1.5and earlier. If you're using containerd, you need to upgrade to containerd version1.6.0or later before you upgrade any nodes to Kubernetes1.26. You also need to upgrade any other container runtimes that only support the v1alpha2. For more information, defer to the container runtime vendor. By default, Amazon Linux and Bottlerocket AMIs include containerd version 1.6.6","pub_date":null}}`​.

profile picture
EXPERT
answered a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions