Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Mastering Elastic Kubernetes Service on AWS

You're reading from   Mastering Elastic Kubernetes Service on AWS Deploy and manage EKS clusters to support cloud-native applications in AWS

Arrow left icon
Product type Paperback
Published in Jul 2023
Publisher Packt
ISBN-13 9781803231211
Length 448 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Authors (2):
Arrow left icon
Yang-Xin Cao Yang-Xin Cao
Author Profile Icon Yang-Xin Cao
Yang-Xin Cao
Malcolm Orr Malcolm Orr
Author Profile Icon Malcolm Orr
Malcolm Orr
Arrow right icon
View More author details
Toc

Table of Contents (28) Chapters Close

Preface 1. Part 1: Getting Started with Amazon EKS
2. Chapter 1: The Fundamentals of Kubernetes and Containers FREE CHAPTER 3. Chapter 2: Introducing Amazon EKS 4. Chapter 3: Building Your First EKS Cluster 5. Chapter 4: Running Your First Application on EKS 6. Chapter 5: Using Helm to Manage a Kubernetes Application 7. Part 2: Deep Dive into EKS
8. Chapter 6: Securing and Accessing Clusters on EKS 9. Chapter 7: Networking in EKS 10. Chapter 8: Managing Worker Nodes on EKS 11. Chapter 9: Advanced Networking with EKS 12. Chapter 10: Upgrading EKS Clusters 13. Part 3: Deploying an Application on EKS
14. Chapter 11: Building Applications and Pushing Them to Amazon ECR 15. Chapter 12: Deploying Pods with Amazon Storage 16. Chapter 13: Using IAM for Granting Access to Applications 17. Chapter 14: Setting Load Balancing for Applications on EKS 18. Chapter 15: Working with AWS Fargate 19. Chapter 16: Working with a Service Mesh 20. Part 4: Advanced EKS Service Mesh and Scaling
21. Chapter 17: EKS Observability 22. Chapter 18: Scaling Your EKS Cluster 23. Chapter 19: Developing on EKS 24. Part 5: Overcoming Common EKS Challenges
25. Chapter 20: Troubleshooting Common Issues 26. Index 27. Other Books You May Enjoy

A brief history of Docker, containerd, and runc

The IT industry has gone through a number of changes: from large, dedicated mainframes and UNIX systems in the 1970s-80s, to the virtualization movement with Solaris Zones, VMware, and the development of cgroups and namespaces in the Linux kernel in the early 2000s. In 2008, LXC was released. It provided a way to manage cgroups and namespaces in a consistent way to allow virtualization natively in the Linux kernel. The host system has no concept of a container so LXC orchestrates the underlying technology to create an isolated set of processes, that is, the container.

Docker, launched in 2013, was initially built on top of LXC and introduced a whole ecosystem around container management including a packaging format (the Dockerfile), which leverages a union filesystem to allow developers to build lightweight container images, and a runtime environment that manages Docker containers, container storage and CPU, RAM limits, and so on, while managing and transferring images (the Docker daemon) and provides an Application Programming Interface (API) that can be consumed by the Docker CLI. Docker also provides a set of registries (Docker Hub) that allows operating systems, middleware, and application vendors to build and distribute their code in containers.

In 2016, Docker extracted these runtime capabilities into a separate engine called containerd and donated it to the Cloud Native Compute Foundation (CNCF), allowing other container ecosystems such as Kubernetes to deploy and manage containers. Kubernetes initially used Docker as its container runtime, but in Kubernetes 1.15, the Container Runtime Interface (CRI) was introduced, which allows Kubernetes to use different runtimes such as containerd.

The Open Container Initiative (OCI) was founded by Docker and the container industry to help provide a lower-level interface to manage containers. One of the first standards they developed was the OCI Runtime Specification, which adopted the Docker image format as the basis for all of its image specifications. The runc tool was developed by the OCI to implement its Runtime Specification and has been adopted by most runtime engines, such as containerd, as a low-level interface to manage containers and images.

The following diagram illustrates how all the concepts we have discussed in this section fit together:

Figure 1.1 – Container runtimes

Figure 1.1 – Container runtimes

In this section, we discussed the history of containers and the various technologies used to create and manage them. In the next section, we will dive deeper into what a container actually consists of.

You have been reading a chapter from
Mastering Elastic Kubernetes Service on AWS
Published in: Jul 2023
Publisher: Packt
ISBN-13: 9781803231211
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image