Q: What is Amazon Elastic Container Service for Kubernetes (Amazon EKS)?
A: Amazon EKS is a managed service that makes it easy for you to run Kubernetes on AWS without needing to install and operate your own Kubernetes control plane.
Q: What is Kubernetes?
A: Kubernetes is open source software that allows you to deploy and manage containerized applications at scale. Kubernetes groups containers into logical groupings for management and discoverability, then launches them onto clusters of EC2 instances. Using Kubernetes you can run containerized applications including microservices, batch processing workers, and platforms as a service (PaaS) using the same toolset on premises and in the cloud.
Q: Why should I use Amazon EKS?
A: Amazon EKS provisions and scales the Kubernetes control plane, including the API servers and backend persistence layer, across multiple AWS availability zones for high availability and fault tolerance. Amazon EKS automatically detects and replaces unhealthy control plane nodes and provides patching for the control plane. Amazon EKS is integrated with many AWS services to provide scalability and security for your applications. These services include Elastic Load Balancing for load distribution, IAM for authentication, Amazon VPC for isolation, AWS PrivateLink for private network access, and AWS CloudTrail for logging.
Q: How does Amazon EKS work?
A: Amazon EKS works by provisioning (starting) and managing the Kubernetes control plane for you. At a high level, Kubernetes consists of two major components - a cluster of 'worker nodes' that run your containers and the control plane that manages when and where containers are started on your cluster and monitors their status.
Without Amazon EKS, you have to run both the Kubernetes control plane and the cluster of worker nodes yourself. With Amazon EKS, you provision your cluster of worker nodes using the provided Amazon Machine Image (AMI) and AWS CloudFormation script and we handle provisioning, scaling, and managing the Kubernetes control plane in a highly available and secure configuration. This removes a significant operational burden for running Kubernetes and allows you to focus on building your application instead of managing AWS infrastructure.
Q: Does Amazon EKS work with my existing Kubernetes applications and tools?
A: Amazon EKS runs the latest version of the open-source Kubernetes software, so you can use all the existing plugins and tooling from the Kubernetes community. Applications running on Amazon EKS are fully compatible with applications running on any standard Kubernetes environment, whether running in on-premises datacenters or public clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modifications.
Kubernetes versions and updates
Q: Which Kubernetes versions does Amazon EKS support?
A: See the Amazon EKS documentation for currently supported Kubernetes versions. Amazon EKS will continue to add support for additional Kubernetes versions in the future.
Q: Can I update my Kubernetes cluster to a new version?
A: Yes. Amazon EKS performs managed, in-place cluster upgrades for both Kubernetes and Amazon EKS platform versions. This simplifies cluster operations and lets you take advantage of the latest Kubernetes features, as well as the updates to Amazon EKS configuration and security patches.
There are two types of updates that you can apply to your Amazon EKS cluster, Kubernetes version updates and Amazon EKS platform version updates. As new Kubernetes versions are released and validated for use with Amazon EKS, we will support three stable Kubernetes versions as part of the update process at any given time.
Q: What is an EKS platform version?
A: The Amazon EKS platform version contains Kubernetes patches and changes to the API server configuration. Platform versions are seperate from but associated with Kubernetes minor versions. When a new Kubernetes version is made available for Amazon EKS, its initial control plane configuration is released as the “eks.1” platform version. We release new platform versions as needed to enable Kubernetes patches or when we implement Amazon EKS API server configuration changes that could impact cluster behavior. Using this versioning scheme, makes it possible to independently update the configuration of different Kubernetes versions; for example, if we need to release a patch for Kubernetes version 1.11 that is incompatible with Kubernetes version 1.12.
Q: Why would I want manual control over Kubernetes version updates?
A: New versions of Kubernetes introduce significant change to the Kubernetes API, and as a result, can result in changed application behavior. Manual control over the version of Kubernetes on your cluster allows you to test applications against new versions of Kubernetes before upgrading production clusters. Amazon EKS provides you the ability to choose when you introduce changes to your EKS cluster.
Q: How do I update my worker nodes?
A: We publish EKS Amazon Machine Images (AMIs) that include the necessary worker node binaries (Docker and Kubelet). This AMI is updated regularly and builds in the most up to date version of these components. We also publish Packer scripts that document our build steps, allowing you to identify the binaries included in each version of the AMI. You can use existing Auto Scaling functionality to update worker instances to the latest version of the EKS AMI. You can also use our Packer scripts to build a new version of a custom AMI.
Q: Where is Amazon EKS available?
A: Please visit the AWS global infrastructure region table for the most up-to-date information on Amazon EKS regional availability.