Chapter 6: Container Orchestration Flashcards
What questions/concerns do container orchestration tools address? Name 5 tasks
- How to group multiple host together to form a cluster and manage them as a single compute unit?
- How to schedule containers to run on specific hosts?
- How can containers running on one host communicate with containers running on other hosts?
- How to **provide **containers with dependent storage when it is scheduled on a specific host?
- How to access a container through a server name instead of accessing it directly through their IP addresses?
What is container orchestration? What does it encompass?
- umbrella concept, encompassing container scheduling and cluster management
How is container orchestration achieved?
- through policy-driven mechanism
- that automates the decision process that distributes containers across the nodes of the cluster
- this decision process is aided by cluster management aspects like state of the exisitng workload and cluster node resource availability
What is enabled through the cluster management orchestrators?
- management of resources of cluster nodes
- as well as adding and deletion of node through cluster scaling mechanism
What is Kubernetes?
- Apache 2.0 licensed open source project for automating deployment, operations and scaling of containerized applications
- started in 2014 by Google, IP transferred 2015 to Cloud Native Computing Foundation (CNCF), non-profit organization
What container runtimes are supported by Kubernetes?
- CRI-O
- containerd
- Docker Engine
- Miratins Container Runtime
- may change with matury of Kubernetes project
What are the main components of the kubernetes architecture?
- cloud-control-manager (optional)
- kube-api-server
- scheduler
- etcd (persistent store)
- Controller Manager
- kubelet
- kube-proxy
- CRI
- pod(s)
How is a Cluster made up?
- Control Plane containing cloud-control-manager, kube-api-server, Controller Manager, scheduler and etcd
- nodes each containing kubelet, kube-proxy and CRI, which contains pods
- from each node kubelet and kube-proxy communicate with kube-api-server
- cloud control manager, controller manager, scheduler and etcd communicate with kube-api-server
- cloud control manager communicates with the outside Cloud provider API
What are the key components/elements of kubernetes?
- Cluster
- Control-Plane-Node
- Worker-Node
- Namespace
What is a Cluster?
- collection of systems (bare-metal or virtual) and other infrastructure resources used by Kubernetes to run containerized applications
What is a Control-Plane Node? What does it do?
- a system that:
- takes containerized workload scheduling decisions
- manages worker nodes
- enforces access control policies
- reconciles changes in the state of the cluster
- delegates container management tasks to worker node agens
What are the main components of a Control-Plane Node?
- kube-api server
- etcd
- kube controller manager
- cloud controller manager
- kube-scheduler
How many Control Plane nodes are usually found within a container?
- multiple can be found as a solution for High Availability
What are Worker Nodes?
- system where containers are schedules to run workload management units called pods
How do Worker nodes function?
- runs a kubelet named daemon responsible for intercepting instructions related to container deployment and lifecycle management
- these instructions are comming from kube-apiserver
- the node delegates such tasks to the container runtime, found on the node
- implements container health checks, enforces resource utilization limits and reports node status back to the kube-apiserver