CKA study: day 1

constant failure
Background
From the official documentation:
Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation.
As with many things it originates from Google- their Borg system in particular. Kubernetes has been adopted by 31% of backend developers worldwide and is only expected to grow more in 2023. Around the end of December, Muni invited graduates of Google ML Bootcamp to a 1-month group study to finish a Udemy CKA course. (02/01/23 - 03/02/23) CKA focuses on administrative tasks instead of covering all of k8s: CNCF allocated CKAD for app development and CKS for security.
Every day I will be recording progress with this blog.
Components: control plane
(updated to 'control plane' from 'master node' since video upload [1][2])
etcd
etcd is a key-value store that holds the current and desired states of the k8s cluster. A "source of truth" as this answer to how etcd is different from MongoDB point out. Notice there is only one instance in the diagram above.
etcd is designed to store small amounts of strongly-consistent state for coordination between services. - Kyle, from his Call Me Maybe Series
kube-scheduler
kube-scheduler assigns (i.e. schedules) feasible pods to a worker node so that the assigned node's kubelet can create the pod as instructed.
But I heard of k8s utilizing hardware to its maximum potential and creating a size 2 pod in a 10 instead of a 6 node did not make sense. Here are some incomplete answers (or more questions), although I hope to study the video below tomorrow to get a clear answer.
kube-apiserver
kube-apiserver does the bulk of the communication- ranging from user authentication and management of etcd, to coordination between the scheduler and kubelets. There are two ways to progress throughout the course:
use kubeadm and call it a day
directly interface with REST
As the link for 2 is outdated, will first try out with kubeadm. There is a way to expose the API via a proxy though.
kube-controller-manager
kube-controller-manager is 4 separate control loops packed into one binary. Most notable right now is the Node controller and Job controller.
Node controller: notices and responds to a node failure, if any. It monitors each node every 5 seconds and if unresponsive for 40 seconds, labels them as 'unreachable'. After 5 minutes it either replaces
Job controller: creates one-time pods for one-time jobs.
Replication controller mentioned in the video is fading in favour of Deployment controller.
Concluding thoughts
I know nothing. Will have to study hard to pass this test. Here are some other resources found along the way.
why is docker getting kicked out? hearing more about containerd only.
maybe some actual stats on how kube-scheduler works will help?
Any more videos I can chew on until I understand?
Never let down people who trust you again.


![[ossca] 모델 리소스 추가](https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/zeH-ljawHtg/upload/7223c3d6a9c2c7795195bf67c5d268ac.jpeg)
