Kubernetes on AWS: Deploy and manage production-ready Kubernetes clusters on AWS

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Learn to implement container orchestration on AWS with ease

Key Features

  • Leverage the power of Kubernetes on AWS to deploy highly scalable applications
  • Provision Kubernetes clusters on Amazon EC2 environments
  • Implement best practices to improve efficiency and security of Kubernetes on the cloud

Book Description

Docker containers promise to radicalize the way developers and operations build, deploy, and manage applications running on the cloud. Kubernetes provides the orchestration tools you need to realize that promise in production.

Kubernetes on AWS guides you in deploying a production-ready Kubernetes cluster on the AWS platform. You will then discover how to utilize the power of Kubernetes, which is one of the fastest growing platforms for production-based container orchestration, to manage and update your applications. Kubernetes is becoming the go-to choice for production-grade deployments of cloud-native applications. This book covers Kubernetes from first principles. You will start by learning about Kubernetes' powerful abstractions - Pods and Services - that make managing container deployments easy. This will be followed by a guided tour through setting up a production-ready Kubernetes cluster on AWS, while learning the techniques you need to successfully deploy and manage your own applications.

By the end of the book, you will have gained plenty of hands-on experience with Kubernetes on Amazon Web Services. You will also have picked up some tips on deploying and managing applications, keeping your cluster and applications secure, and ensuring that your whole system is reliable and resilient to failure.

What you will learn

  • Learn how to provision a production-ready Kubernetes cluster on AWS
  • Deploy your own applications to Kubernetes with Helm
  • Discover strategies for troubleshooting your cluster and know where to find help with issues
  • Explore the best ways to monitor your cluster and the applications running on it
  • Supercharge your cluster by integrating it with the tools provided by the AWS platform
  • Architect your cluster for high availability

Who this book is for

If you're a cloud engineer, cloud solution provider, sysadmin, site reliability engineer, or developer with an interest in DevOps and are looking for an extensive guide to running Kubernetes in the AWS environment, this book is for you. Though any previous knowledge of Kubernetes is not expected, some experience with Linux and Docker containers would be a bonus.

Table of Contents

  1. Google's Infrastructure for The Rest of Us
  2. Start Your Engines
  3. Reach for the Cloud
  4. Managing Change in Your Applications
  5. Managing Complex Applications with Helm
  6. Planning for Production
  7. A Production Ready Cluster
  8. Sorry, my app ate the cluster!
  9. Store state in your applications
  10. Storing Your Images

Author(s): Ed Robinson
Publisher: Packt Publishing
Year: 2018

Language: English
Pages: 270

Cover
Title Page
Copyright and Credits
Dedication
About Packt
Contributors
Table of Contents
Preface
Chapter 1: Google's Infrastructure for the Rest of Us
Why do I need a Kubernetes cluster?
The roots of containers
Enter the container
Cgroups
Namespaces
Putting the pieces together
Here, schedule this...
The basics of Kubernetes
The pod
Labeling all the things
Replica sets
Services
Under the hood
API server
Controller manager
Scheduler
Kubelet
Summary
Chapter 2: Start Your Engines
Your own Kubernetes
Installation
macOS
Linux
Windows
Starting Minikube
First steps with kubectl
Building Docker containers inside the cluster
Building and launching a simple application on Minikube
What just happened?
Rolling out changes
Resilience and scaling
Using the dashboard
Configuration as code
Troubleshooting Minikube
Summary
Chapter 3: Reach for the Cloud
Cluster architecture
Creating an AWS account
Creating an IAM user
Getting the CLI
Setting up a key pair
Preparing the network
Setting up a bastion
sshuttle
Instance profiles
Kubernetes software
Docker
Installing Kubeadm
Building an AMI
Bootstrapping the cluster
What just happened?
Access the API from your workstation
Setting up pod networking
Launching worker nodes
Demo time
Summary
Chapter 4: Managing Change in Your Applications
Running pods directly
Jobs
CronJob
Cron syntax
Concurrency policy
History limits
Managing long running processes with deployments
kubectl patch
kubectl edit
kubectl apply
Kubernetes dashboard
Greater control of your deployments
RollingUpdate deployment
Recreate deployment
DaemonSet
Summary
Chapter 5: Managing Complex Applications with Helm
Installing Helm
macOS
Linux and Windows
Installing Tiller
Installing a chart
Configuring a chart
Creating your own charts
Chart.yaml
values.yaml
templates
Making it your own
Developing and debugging
Templating language
Functions
Flow control
Hooks
Packaging Helm charts
You can test building an index
Using your repository
Organizational patterns for Helm
Chart per application
Shared charts
Library charts
Next steps
Chapter 6: Planning for Production
The design process
Initial planning
Planning for success
Planning for a successful roll out
Discovering requirements
Availability
Capacity
EC2 instance types
EC2 instance types
Breadth versus depth
Performance
Disk performance
gp2
io2
st1
sc1
Networking
Security
Always be updating
In-place updates
Immutable images
Network security
Infra-node networking
Node-master networking
External networking
Kubernetes infra-pod networking
IAM roles
Validation
Observability
Logging
Monitoring
Blackbox monitoring
Alerting
Tracing
Summary
Chapter 7: A Production-Ready Cluster
Building a cluster
Getting started with Terraform
Variables
Networking
Plan and apply
Control Plane
Preparing node images
Installing Packer
Packer configuration
Node group
Provisioning add-ons
Managing change
Summary
Chapter 8: Sorry My App Ate the Cluster
Resource requests and limits
Resource units
How pods with resource limits are managed
Quality of Service (QoS)
Resource quotas
Default limits
Horizontal Pod Autoscaling
Deploying the metrics server
Verifying the metrics server and troubleshooting
Autoscaling pods based on CPU usage
Autoscaling pods based on other metrics
Autoscaling the cluster
Deploying the cluster autoscaler
Summary
Chapter 9: Storing State
Volumes
EBS volumes
Persistent volumes
Persistent volumes example
Storage classes
StatefulSet
Summary
Further reading
Chapter 10: Managing Container Images
Pushing Docker images to ECR
Creating a repository
Pushing and pulling images from your workstation
Setting up privileges for pushing images
Use images stored on ECR in Kubernetes
Tagging images
Version Control System (VCS) references
Semantic versions
Upstream version numbers
Labelling images
Summary
Other Books You May Enjoy
Index