{"id":328,"date":"2024-03-05T13:45:04","date_gmt":"2024-03-05T12:45:04","guid":{"rendered":"https:\/\/leren.ovh\/?p=328"},"modified":"2024-03-05T15:41:38","modified_gmt":"2024-03-05T14:41:38","slug":"kubernetes-architecture","status":"publish","type":"post","link":"https:\/\/leren.ovh\/index.php\/2024\/03\/05\/kubernetes-architecture\/","title":{"rendered":"Kubernetes Architecture"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1664\" height=\"938\" src=\"http:\/\/leren.ovh\/wp-content\/uploads\/2024\/03\/kubernetes-ships.jpg\" alt=\"\" class=\"wp-image-330\" srcset=\"https:\/\/leren.ovh\/wp-content\/uploads\/2024\/03\/kubernetes-ships.jpg 1664w, https:\/\/leren.ovh\/wp-content\/uploads\/2024\/03\/kubernetes-ships-300x169.jpg 300w, https:\/\/leren.ovh\/wp-content\/uploads\/2024\/03\/kubernetes-ships-1024x577.jpg 1024w, https:\/\/leren.ovh\/wp-content\/uploads\/2024\/03\/kubernetes-ships-768x433.jpg 768w, https:\/\/leren.ovh\/wp-content\/uploads\/2024\/03\/kubernetes-ships-1536x866.jpg 1536w\" sizes=\"auto, (max-width: 1664px) 100vw, 1664px\" \/><\/figure>\n\n\n\n<p><strong><span style=\"text-decoration: underline;\">Analogy between ships and Kubernetes Cluster.<\/span><\/strong><br>Kubernetes Cluster = Cargo Ships (Orange=Worker Node) and Control Ships (Red=Master Node)<br>A worker node hosts applications (Containers)<br>Many containers (same or different) can be on the same worker node (Cargo Ship).<\/p>\n\n\n\n<p><strong><span style=\"text-decoration: underline;\">Master Node<\/span><\/strong><br>Keeping track\/deploying of all these containers is done on the Master Nodes by Control Plane Components<br>Tracking (Ships Manifest) is done by the <strong>etcd cluster<\/strong>. <br>Deployment happens by the <strong>kube-scheduler<\/strong> checking all constraints. (The crane on the Red Control ship)<br>Monitoring of Worker Nodes happens with<strong> <\/strong>controller-manager. (Maintenance Crew on Control Ship)<br><strong>controller manager<\/strong> = <strong>node controller<\/strong> (node monitoring)+ <strong>replication controller<\/strong> (number of same containers)<br>Letting these processes work together happens through the <strong>kube-apiserver<\/strong>. (The bridge of the Control Ship)<br>The API-server exposes all these processes to outside users for management purposes even the worker node processes.<\/p>\n\n\n\n<p><strong><span style=\"text-decoration: underline;\">Worker Node<\/span><\/strong><br><strong>Container Runtime Interface<\/strong> (CRI)= Software able to understand the containers and run them. For example :  Containerd or Rkt. Each node (Worker and Master) have this. (Nerdctl to control containerd [same style as docker] ; crictl is normally for debugging, should not be used. Also Rkt is kinda dead.)<br><strong>kubelet<\/strong> = Agent running on nodes. Deploying or destroying containers @ request. kube-api requests regularly status update on nodes.<br><strong>kube-proxy<\/strong> = Allows communication between some containers on different worker nodes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"688\" height=\"822\" src=\"https:\/\/leren.ovh\/wp-content\/uploads\/2024\/03\/kubernetes-architecture-overview.png\" alt=\"\" class=\"wp-image-334\" srcset=\"https:\/\/leren.ovh\/wp-content\/uploads\/2024\/03\/kubernetes-architecture-overview.png 688w, https:\/\/leren.ovh\/wp-content\/uploads\/2024\/03\/kubernetes-architecture-overview-251x300.png 251w\" sizes=\"auto, (max-width: 688px) 100vw, 688px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Analogy between ships and Kubernetes Cluster.Kubernetes Cluster = Cargo Ships (Orange=Worker Node) and Control Ships (Red=Master Node)A worker node hosts applications (Containers)Many containers (same or different) can be on the same worker node (Cargo Ship). Master NodeKeeping track\/deploying of all these containers is done on the Master Nodes by Control Plane ComponentsTracking (Ships Manifest) is&hellip;&nbsp;<a href=\"https:\/\/leren.ovh\/index.php\/2024\/03\/05\/kubernetes-architecture\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Kubernetes Architecture<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","_themeisle_gutenberg_block_has_review":false,"_ti_tpc_template_sync":false,"_ti_tpc_template_id":"","footnotes":""},"categories":[7],"tags":[11],"class_list":["post-328","post","type-post","status-publish","format-standard","hentry","category-kubernetes","tag-kubernetes"],"_links":{"self":[{"href":"https:\/\/leren.ovh\/index.php\/wp-json\/wp\/v2\/posts\/328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/leren.ovh\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/leren.ovh\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/leren.ovh\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/leren.ovh\/index.php\/wp-json\/wp\/v2\/comments?post=328"}],"version-history":[{"count":5,"href":"https:\/\/leren.ovh\/index.php\/wp-json\/wp\/v2\/posts\/328\/revisions"}],"predecessor-version":[{"id":339,"href":"https:\/\/leren.ovh\/index.php\/wp-json\/wp\/v2\/posts\/328\/revisions\/339"}],"wp:attachment":[{"href":"https:\/\/leren.ovh\/index.php\/wp-json\/wp\/v2\/media?parent=328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/leren.ovh\/index.php\/wp-json\/wp\/v2\/categories?post=328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/leren.ovh\/index.php\/wp-json\/wp\/v2\/tags?post=328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}