Book Image

Kubernetes in Production Best Practices

By : Aly Saleh, Murat Karslioglu
Book Image

Kubernetes in Production Best Practices

By: Aly Saleh, Murat Karslioglu

Overview of this book

Although out-of-the-box solutions can help you to get a cluster up and running quickly, running a Kubernetes cluster that is optimized for production workloads is a challenge, especially for users with basic or intermediate knowledge. With detailed coverage of cloud industry standards and best practices for achieving scalability, availability, operational excellence, and cost optimization, this Kubernetes book is a blueprint for managing applications and services in production. You'll discover the most common way to deploy and operate Kubernetes clusters, which is to use a public cloud-managed service from AWS, Azure, or Google Cloud Platform (GCP). This book explores Amazon Elastic Kubernetes Service (Amazon EKS), the AWS-managed version of Kubernetes, for working through practical exercises. As you get to grips with implementation details specific to AWS and EKS, you'll understand the design concepts, implementation best practices, and configuration applicable to other cloud-managed services. Throughout the book, you’ll also discover standard and cloud-agnostic tools, such as Terraform and Ansible, for provisioning and configuring infrastructure. By the end of this book, you’ll be able to leverage Kubernetes to operate and manage your production environments confidently.
Table of Contents (12 chapters)

Configuring ExternalDNS

While CoreDNS serves as the internal DNS server for Kubernetes clusters, ExternalDNS is a Kubernetes add-on that is used to manage your cluster external DNS providers, including Route 53, AzureDNS, and Google Cloud DNS.

It makes Kubernetes deployments and services discoverable through public DNS services, such as Route 53. It queries the Kubernetes API to retrieve a list of services and ingresses, and then it communicates with the public DNS and registers these records.

ExternalDNS allows you to control DNS records (via cloud DNS services such as AWS Route 53 or Google Cloud DNS) dynamically via Kubernetes services and ingresses.

ExternalDNS does not come pre-installed with the cluster, so you need to deploy it and specify its configuration, which includes its Docker image, the number of replicas to run, DNS record syncing and interval updates, the cloud provider type (that is, AWS, Azure, and so on), and the hosted zone ID (in the case of AWS Route...