{"id":54,"date":"2025-07-12T16:05:34","date_gmt":"2025-07-12T16:05:34","guid":{"rendered":"https:\/\/ag.yomagnet.com\/index.php\/2025\/07\/12\/a-simplified-explanation-of-kubernetes-architecture\/"},"modified":"2026-09-29T07:46:00","modified_gmt":"2026-09-29T07:46:00","slug":"a-simplified-explanation-of-kubernetes-architecture","status":"publish","type":"post","link":"https:\/\/ag.yomagnet.com\/index.php\/2025\/07\/12\/a-simplified-explanation-of-kubernetes-architecture\/","title":{"rendered":"A simplified explanation of Kubernetes Architecture &#8211; Part 1"},"content":{"rendered":"<p>Kubernetes is open source platform used for orchestrating the containerized workload<br \/>\nFeatures of kubernetes:<br \/>\nAutomated rollouts &amp; rollbacks<br \/>\nSecret &amp; config management<br \/>\nLoad balancing<br \/>\nService discovery<\/p>\n<h2>AKS Architecture:<\/h2>\n<h4>Master node components:<\/h4>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/ag.yomagnet.com\/wp-content\/uploads\/2025\/07\/master.png\" \/><\/p>\n<p><strong>1. Docker<\/strong> &#8211; a container runtime, there are other runtimes also available like container-d , rkt etc.<\/p>\n<p><strong>2. Kube apiserver<\/strong> &#8211; It exposes the kubernetes API, it acts as frontend for master node.<br \/>\nAll components of kubernetes like kubectl, scheduler, controller manager, etcd and worker node components like kubelet communicate with this API Server<\/p>\n<p><strong>3. Etcd<\/strong> &#8211; highly available key value store. It stores all the master and worker node information<\/p>\n<p><strong>4. Scheduler<\/strong> &#8211; responsible for distribution containers on multiple nodes. It looks for newly created pods and assign these pods to a node where they can be deployed<\/p>\n<p><strong>5. Kube controller manager<\/strong> &#8211; responsible for monitoring and responding when any node, or container went down then it spin up new containers in such scenario,<br \/>\nthere are multiple controllers inside:<br \/>\nNode controller &#8211; responsible for monitoring &amp; responding when a node goes down<br \/>\nReplication controller &#8211; responsible for maintaining correct number of pods for deployed container workload<br \/>\nEndpoint controller &#8211; populates the endpoint object like (services &amp; pods)<br \/>\nService account &amp; token controller &#8211; give API access to new NameSpace created<\/p>\n<p><strong>6. Cloud controller manager<\/strong> &#8211; Its functioning is similar to kube controller but it only runs controller which are specific to Cloud provider, On-Prem kubernetes cluster will not have this component<br \/>\nNode controller &#8211; similar to node controller of kube controller manager<br \/>\nRoute controller &#8211; for setting up routes in underlying cloud infrastructure<br \/>\nService controller &#8211; for creating, updating and deleting load balancer<\/p>\n<h4>Worker node components:<\/h4>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/ag.yomagnet.com\/wp-content\/uploads\/2025\/07\/worker.png\" \/><\/p>\n<p><strong>1. Docker<\/strong> &#8211; a container runtime which is common in both worker and master node (control plane)<br \/>\n<strong>2. Kubelet<\/strong> &#8211; it is an agent which runs on every worker node in the cluster. It is responsible for making sure that containers are running inside a pod.<br \/>\n<strong>3. KubeProxy<\/strong> &#8211; its a network proxy which runs on each node in cluster. Maintain network rules which ensures network communication to the pods deployed. These network communication can be from within the cluster or from outside the cluster<\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/ag.yomagnet.com\/wp-content\/uploads\/2025\/07\/k8s_cluster.png\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"Kubernetes is open source platform used for orchestrating the containerized workload Features of kubernetes: Automated rollouts &amp; rollbacks&hellip;","protected":false},"author":1,"featured_media":55,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_display_header_overlay":false,"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_reading_time":"","csco_page_toc_navigation":"","csco_post_video_location":[],"csco_post_video_location_hash":"","csco_post_video_url":"","csco_post_video_bg_start_time":0,"csco_post_video_bg_end_time":0,"csco_post_video_bg_volume":false,"footnotes":""},"categories":[2,4],"tags":[],"class_list":["post-54","post","type-post","status-publish","format-standard","has-post-thumbnail","category-docker","category-linux","cs-entry","cs-video-wrap"],"_links":{"self":[{"href":"https:\/\/ag.yomagnet.com\/index.php\/wp-json\/wp\/v2\/posts\/54","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ag.yomagnet.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ag.yomagnet.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ag.yomagnet.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ag.yomagnet.com\/index.php\/wp-json\/wp\/v2\/comments?post=54"}],"version-history":[{"count":1,"href":"https:\/\/ag.yomagnet.com\/index.php\/wp-json\/wp\/v2\/posts\/54\/revisions"}],"predecessor-version":[{"id":56,"href":"https:\/\/ag.yomagnet.com\/index.php\/wp-json\/wp\/v2\/posts\/54\/revisions\/56"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ag.yomagnet.com\/index.php\/wp-json\/wp\/v2\/media\/55"}],"wp:attachment":[{"href":"https:\/\/ag.yomagnet.com\/index.php\/wp-json\/wp\/v2\/media?parent=54"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ag.yomagnet.com\/index.php\/wp-json\/wp\/v2\/categories?post=54"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ag.yomagnet.com\/index.php\/wp-json\/wp\/v2\/tags?post=54"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}