Chapter 6: Container Orchestration Flashcards

1
Q

What questions/concerns do container orchestration tools address? Name 5 tasks

A
  • 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?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is container orchestration? What does it encompass?

A
  • umbrella concept, encompassing container scheduling and cluster management
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

How is container orchestration achieved?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is enabled through the cluster management orchestrators?

A
  • management of resources of cluster nodes
  • as well as adding and deletion of node through cluster scaling mechanism
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is Kubernetes?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What container runtimes are supported by Kubernetes?

A
  • CRI-O
  • containerd
  • Docker Engine
  • Miratins Container Runtime
  • may change with matury of Kubernetes project
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the main components of the kubernetes architecture?

A
  • cloud-control-manager (optional)
  • kube-api-server
  • scheduler
  • etcd (persistent store)
  • Controller Manager
  • kubelet
  • kube-proxy
  • CRI
  • pod(s)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How is a Cluster made up?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the key components/elements of kubernetes?

A
  • Cluster
  • Control-Plane-Node
  • Worker-Node
  • Namespace
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is a Cluster?

A
  • collection of systems (bare-metal or virtual) and other infrastructure resources used by Kubernetes to run containerized applications
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a Control-Plane Node? What does it do?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the main components of a Control-Plane Node?

A
  • kube-api server
  • etcd
  • kube controller manager
  • cloud controller manager
  • kube-scheduler
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How many Control Plane nodes are usually found within a container?

A
  • multiple can be found as a solution for High Availability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are Worker Nodes?

A
  • system where containers are schedules to run workload management units called pods
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

How do Worker nodes function?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What function does the kube-proxy of a Worker node have?

A
  • is a network proxy
  • enables applications running in the cluster to be accessible by external requests
17
Q

Where can kubelets and kube-proxies as well as container runtimes be found?

A
  • on worker nodes
  • on control-plane nodes
18
Q

What does a namespace enable?

A
  • allows logical partition of the cluster into virtual sub-clusters by segregating the cluster’s resources
  • addressing the multi-tenancy requirements of enterprises requiring an isolation method for their projects, applications, users, and teams
19
Q

What are the key API resources of the Kubernetes architecture?

A
  • Pod
  • ReplicaSet
  • Deployment
  • DaemonSet
  • Service
  • Label
  • Selector
  • Volume
20
Q

What is a pod?

A
  • smalles deployment unit in Kubernetes
  • logical workload management unit
  • enabling co-location of a group of containers with shared dependencies such as storage volumes
  • often managing a single container and its dependencies such as Secrets or ConfigMaps
  • can be created independently
  • but lacks than self-healing, scaling and seamless updates capabilities
  • usually managed by controller programs or operators such as ReplicaSet, Deployment, DaemonSet or StatefulSet
21
Q

What is ReplicaSet API resource?

A
  • mid-level controller or operator
  • manages the lifecycle of pods
  • rolls out desired amount of pod replicas
  • uses state reconcilliation to ensure that desired number of application pods is running at all times
  • enables self-heal if an application pod is lost unexpectedly
22
Q

What is the Deployment API resource?

A
  • top-level controller
  • allows declarative updates for pods and ReplicaSets
  • can be defined to create new resources or to replace existing ones with new ones
  • represents the default stateless application rollout mechanism
23
Q

What is the DaemonSet API resource?

A
  • controller or operator
  • that manages the lifecycle of node agent pods
  • rolls out a desired amount of pod replicas while ensuring that each cluster node will run exactly one application pod replica
  • uses reconciliation to ensure that the desired number of application pod replicas is running at all times
  • self-heal the application if a pod replica is unexpectedly lost due
24
Q

What are typical Deployment use cases?

A
  • Create a Deployment to roll out a desired amount of pods with a ReplicaSet
  • Check the status of a deployment to see if the rollout was successful or not
  • later update the deployment to recreate the pods (use a new image) - through the Rolling Update Mechanism
  • roll back to an earliert Deployment revision if the current Deployment isnt stable
  • scale, pause and resume a deployment
25
Q

What is the Service API resource?

A
  • traffic routing unit
  • implemented by kube-proxy
  • provides a load-balancing access interface to a logical grouping of pods, typically managed by the same operator
  • enables applicatons with a DNS name registrations, name resolution to a private/cluster internal static IP
  • can reference a single pod or set of pods managed by ReplicaSet, Deployments, DaemonSets or StatefulSets
26
Q

What is the Label API resource?

A
  • arbitrary key-value pair attached to resources
  • typically used to tag resources of a particular application, such as pods or deployments to logically group them for management purposes - for updates, scaling, or traffic routing
27
Q

What is the Selector API resource?

A
  • allows controllers or operators to seach for resources or groups of resources described by a desired key-value pair labels
28
Q

What is the Volume API resource?

A
  • abstraction layer implemented through Kubernetes plugins and third-party driver
  • aimed to provide simplified and flexible method of container storage management in Kubernetes
  • Volume containers are able to mount local host storage, network storage, distributed storage clusters, cloud storage services seamlessly
29
Q

What options do exist for Kubernetes in public clouds?

A
  • clusters can be managed by yourself
  • hosted (managed) Kubernetes services, where management tasks are performed by cloud services providers
30
Q

What are examples for hosted solutions available for Kubernetes?

A
  • Amazon Elastic Kubernetes Services
  • Azure Kubernetes Services (AKS)
  • Google Kubernetes Engine
  • IBM Cloud Kubernetes Services
  • Red Hat OpenShift
31
Q

What do Kubernetes Platform solutions offer?

A
  • a managed Kubernetes environment flexible enough, to be deployed on any public cloud, multi-cloud or on-premises/private cloud
  • eliminating vendor lock-in
32
Q

What are examples for Kubernetes Platforms?

A
  • Managed Kubernetes
  • Kubermatic Kubernetes Platform
  • Platform9 Managed Kubernetes (PMK)
  • Ranchers Kubernetes Engine (RKE)