Kubernetes is a portable, extensible, open-source platform for managing containerized workload and service, that facilitates declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes service, support, and tools are widely available.
Kubernetes takes care of scaling and failover for the application provides deployment patterns and more. Kubernetes is not a traditional PaaS system. Kubernetes operates at a container level rather than at the hardware level, it provides some generally applicable features common to pass offering, such as deployment, scaling load balancing, and lets users integrate their, logging, monitoring, and alerting solutions. Kubernetes is not monolithic and these default solutions are optional and pluggable. Kubernetes provides the building developer platforms but preserves user choice and flexibility where it is important.
Kubernetes can expose a container using a DNS name or using their own IP address. If traffic to a container is high, Kubernetes is able to load balance and distribute the network traffic so that deployment is stable.
Kubernetes allows you to automatically mount storage systems such as local storage, public cloud providers, and more.
You can describe the desired state for your deployed containers using Kubernetes, and it can change the actual state, to the desired state at a controlled rate.
You provide Kubernetes with a cluster of nodes that it can use to run the containerized tasks. You tell Kubernetes how much CPU memory each container needs. Kubernetes can fit container on to your nodes to make the best use of your resources.
Kubernetes restart container that fails, replace containers, kills containers that don’t respond to your user-defined health check, and doesn’t advertise them to clients until they are ready to serve.
Kubernetes lets you store and manage sensitive information, such as passwords, OAuth tokens, and SSH keys. You can deploy and update secrets and application configuration without rebuilding. Your container images, and without exposing secrets in your stack configuration.
Amazon EKS is one of the most used and on-demand Kubernetes service providers instances.
Amazon Elastic Kubernetes Service (Amazon EKS) is a fully managed Kubernetes service that makes it easy to run Kubernetes on AWS without needing to install, operate, and maintain Kubernetes control plane.
Amazon EKS automatically manages the availability and scalability of the Kubernetes control plane node that is responsible for starting and stopping containers, scheduling containers on a virtual machine, storing cluster data, and other tasks. Amazon EKS automatically detects and replace unhealthy control planes nodes for each other.
Amazon EKS provides an advantage for all the performance, scale, and reliability of the AWS platform, as well as integration with AWS networking and security services, such as application load balancers for load distribution, identity access manager for role-based access control, and virtual private cloud (VPC) for pod networking.
Amazon EKS provides a scalable and highly available control plane that runs across multiple AWS availability of zones. The Amazon EKS service automatically manages the availability and scalability of the Kubernetes API servers and the persistence layer for each cluster. Amazon EKS runs the Kubernetes control plane across three availability zone in order to ensure high availability, and it automatically detects and replaces the unhealthy master.
Amazon EKS makes it easy to provide security for the Kubernetes cluster, with advanced features and integration to AWS service and technology partner solutions. By using the AWS cloud map, you can define custom names for your application resources, and it maintains the updated location of these dynamically changes changing resources. It increases application availability because web service always discovers the most up-to-date locations of its resources. Kubernetes-based service becomes discoverable via a cloud map, which provides a unified map service registry for all container workloads. Amazon EKS works with the project calico network policy engine to provide fine-grained networking policies for Kubernetes workloads. This allows controlling access on a per-service basis using the Kubernetes networking policy API.
Amazon EKS supports using Elastic load Balancing including application load balancer (ALB), Network Load Balancer (NLB), Classic Load Balancer. You can run standard Kubernetes cluster load balancing or any Kubernetes supported ingress controller with your Amazon EKS cluster.
AWS EKS supports AWS Fargate to run Kubernetes applications using serverless computing. Fargate removes the need to provision and manage servers, let’s specify and pay for resources per application, and improves security through application isolation by design.
AWS outposts on EKS used to run containerized applications that require particularly low latencies to the on-premises system. AWS outposts are fully managed services that extend AWS infrastructure, AWS service, API, and tools to virtually any connected service.
Amazon EKS provides AMI (Amazon Machine Image) that includes configured NVIDIA drivers for GPU-enabled P2 and P3 EC2 instances. This makes it easy to use Amazon EKS to run computationally advanced workloads, including machine learning, Kubeflow, deep learning containers, high-performance computing (HPS), financial analytics, and Video transcoding.
Amazon EKS is fully compatible with Kubernetes community tools and supports and popular Kubernetes add-ons. These include core DNS to create a DNS service for your cluster and both the Kubernetes Dashboard web-based UI and the kubectl command-line tools to access and manage your cluster on Amazon EKS.