What this book covers
Chapter 1, The Fundamentals of Kubernetes and Containers, covers an introduction to Kubernetes and container technology. It will also deep dive into the elements that constitute a container, the concept of the container orchestrator, and the Kubernetes architecture.
Chapter 2, Introducing Amazon EKS, provides a comprehensive guide to explain what Amazon EKS is, its architecture behind the scenes, its pricing model, and the common mistakes that users may have. This chapter also gives you a brief overview to compare the options for running workloads on AWS: using EKS or a self-managed Kubernetes cluster.
Chapter 3, Building Your First EKS Cluster, explores different options to create your first EKS cluster step by step and gives an overview of the automation process when building your workflow, including the AWS console, AWS CLI, eksctl, AWS CDK, and Terraform.
Chapter 4, Running Your First Application on EKS, covers the different ways you can deploy and operate a simple application on EKS, including how to implement and expose your application to make it accessible externally. It also touches on tools to visualize your workload.
Chapter 5, Using Helm to Manage a Kubernetes Application, focuses on how to install and use Helm to simplify your Kubernetes deployment experience. This chapter also covers the details of Helm charts, their architecture, and common scenarios for their use.
Chapter 6, Securing and Accessing Clusters on EKS, dives into the essential aspects of authentication and authorization in Kubernetes and how they apply to EKS. The chapter explains the significance of configuring client tools and accessing your EKS cluster securely.
Chapter 7, Networking in EKS, explains Kubernetes networking and demonstrates how EKS can be seamlessly integrated with AWS Virtual Private Cloud (VPC).
Chapter 8, Managing Worker Nodes on EKS, explores the configuration and effective management of EKS worker nodes. It highlights the benefits of using EKS-optimized images (AMIs) and managed node groups, offering insights into their advantages over self-managed alternatives.
Chapter 9, Advanced Networking with EKS, delves into advanced networking scenarios in EKS. It covers topics such as managing Pod IP addresses with IPv6, implementing network policies for traffic control, and utilizing complex network-based information systems such as Multus CNI.
Chapter 10, Upgrading EKS Clusters, focuses on the strategies for upgrading EKS clusters to leverage new features and ensure continued support. It provides guidance on key areas to consider, including in-place and blue/green upgrades of the control plane, critical components, node groups, and migrating workloads to new clusters.
Chapter 11, Building Applications and Pushing Them to Amazon ECR, examines the process of building and storing container images on Amazon ECR for EKS deployments. It covers topics such as repository authentication, pushing container images, utilizing advanced ECR features, and integrating ECR into EKS clusters.
Chapter 12, Deploying Pods with Amazon Storage, explains Kubernetes volumes, Container Storage Interface (CSI), and the need for persistent storage in Kubernetes Pods, and demonstrates the usage of EBS and EFS on EKS. It also covers the details for installing and configuring AWS CSI drivers for utilizing EBS and EFS volumes with your application.
Chapter 13, Using IAM for Granting Access to Applications, discusses Pod security with a scenario on integrating IAM with your containerized applications. It includes defining IAM permissions for Pods, utilizing IAM Roles for Service Accounts (IRSA), and troubleshooting IAM issues specific to EKS deployments.
Chapter 14, Setting Load Balancing for Applications on EKS, explores the concept of load balancing for EKS applications. It also expands the discussion of scalability and resilience and provides insights into the Elastic Load Balancer (ELB) options available in AWS.
Chapter 15, Working with AWS Fargate, introduces AWS Fargate as an alternative serverless option for hosting Pods in EKS. It examines the benefits of using Fargate, provides guidance on creating Fargate profiles, deploying Pods to Fargate environments seamlessly, and troubleshooting common issues that may arise.
Chapter 16, Working with a Service Mesh, explores the use of service mesh technology to enhance control, visibility, and security in microservices-based ecosystems on EKS. The chapter covers the installation of the AWS App Mesh Controller, integration with Pods, leveraging AWS Cloud Map, and troubleshooting the Envoy proxy.
Chapter 17, EKS Observability, describes the importance of observability in EKS deployments and provides insights into monitoring, logging, and tracing techniques. The chapter covers native AWS tools for monitoring EKS clusters and Pods, building dashboards with Managed Prometheus and Grafana, leveraging OpenTelemetry, and utilizing machine learning capabilities to capture cluster status with DevOps Guru.
Chapter 18, Scaling Your EKS Cluster, discusses the challenges of capacity planning in EKS and explores various strategies and tools for scaling your cluster to meet application demands while optimizing cost. The chapter walks through topics such as scaling node groups with Cluster Autoscaler and Karpenter, scaling applications with Horizontal Pod Autoscaler (HPA), describing the use case of custom metrics, and utilizing KEDA to optimize event-driven autoscaling.
Chapter 19, Developing on EKS, explores ways to improve efficiency for developers and DevOps engineers when building EKS clusters. The chapter focuses on different automation tools and CI/CD practices to streamline these activities, including Cloud9, EKS Blueprints, Terraform, CodePipeline, CodeBuild, ArgoCD, and GitOps for workload deployment.
Chapter 20, Troubleshooting Common Issues, provides an EKS troubleshooting checklist and discusses common problems and their solutions.