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 CoreDNS

Kubernetes used to have kube-dns as its default cluster DNS service, but starting from version 1.11, it uses CoreDNS. Also, it gets pre-deployed by most of the managed Kubernetes offerings, including EKS, that we use in this book.

For the other Kubernetes managed services that still use kube-dns, such as GKE, we recommend referring to the official documentation of kube-dns.

CoreDNS is very flexible as it is modular and pluggable. It has a rich set of plugins that can be enabled to enhance DNS functionalities. This is why it is powerful and generally preferred over kube-dns and other Kubernetes DNS solutions. To learn more about the supported plugins, please refer to the following list: https://coredns.io/plugins/.

During the cluster's lifetime, you need to control CoreDNS configuration as code, its periodic updates, and include all of this within the cluster's deployment pipeline. Also, you will need to optimize your cluster DNS performance and...