{"id":93320,"date":"2025-11-28T22:24:24","date_gmt":"2025-11-28T15:24:24","guid":{"rendered":"https:\/\/itviec.com\/blog\/?p=93320"},"modified":"2025-11-28T22:24:27","modified_gmt":"2025-11-28T15:24:27","slug":"kubernetes-component-la-gi","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/","title":{"rendered":"Kubernetes component: Hi\u1ec3u r\u00f5 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ea5u th\u00e0nh cluster"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#Kubernetes_Component_la_gi\" >Kubernetes Component l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#Cac_component_trong_Kubernetes_Control_Plane\" >C\u00e1c component trong Kubernetes Control Plane&nbsp;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#Node_Components_trong_Kubernetes\" >Node Components trong Kubernetes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#Add-ons_va_cac_thanh_phan_mo_rong_trong_Kubernetes\" >Add-ons v\u00e0 c\u00e1c th\u00e0nh ph\u1ea7n m\u1edf r\u1ed9ng trong Kubernetes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#Cach_Kubernetes_Components_phoi_hop_voi_nhau\" >C\u00e1ch Kubernetes Components ph\u1ed1i h\u1ee3p v\u1edbi nhau&nbsp;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#Cac_cau_hoi_thuong_gap_ve_Kubernetes_Component\" >C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 Kubernetes Component<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#Tong_ket\" >T\u1ed5ng k\u1ebft<\/a><\/li><\/ul><\/nav><\/div>\n\n<p><strong><em>R\u1ea5t nhi\u1ec1u ng\u01b0\u1eddi d\u00f9ng Kubernetes h\u1eb1ng ng\u00e0y nh\u01b0ng l\u1ea1i kh\u00f4ng th\u1eadt s\u1ef1 n\u1eafm r\u00f5 c\u00e1c Kubernetes component \u0111ang v\u1eadn h\u00e0nh b\u00ean d\u01b0\u1edbi. Ch\u00ednh nh\u1eefng \u201cm\u1ea3nh gh\u00e9p\u201d n\u00e0y quy\u1ebft \u0111\u1ecbnh \u0111\u1ed9 \u1ed5n \u0111\u1ecbnh, t\u1ed1c \u0111\u1ed9 v\u00e0 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng c\u1ee7a h\u1ec7 th\u1ed1ng. Khi hi\u1ec3u \u0111\u01b0\u1ee3c ch\u00fang, b\u1ea1n s\u1ebd th\u1ea5y vi\u1ec7c qu\u1ea3n l\u00fd cluster tr\u1edf n\u00ean d\u1ec5 d\u00e0ng h\u01a1n r\u1ea5t nhi\u1ec1u.<\/em><\/strong><\/p>\n\n\n\n<p>\u0110\u1ecdc b\u00e0i vi\u1ebft sau \u0111\u1ec3 bi\u1ebft th\u00eam v\u1ec1:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>T\u1ed5ng quan v\u1ec1 Kubernetes Component<\/li>\n\n\n\n<li>Control Plane Components trong Kubernetes<\/li>\n\n\n\n<li>Node Components trong Kubernetes<\/li>\n\n\n\n<li>Addons v\u00e0 c\u00e1c th\u00e0nh ph\u1ea7n m\u1edf r\u1ed9ng trong Kubernetes<\/li>\n\n\n\n<li>C\u00e1ch Kubernetes Components ph\u1ed1i h\u1ee3p v\u1edbi nhau<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-kubernetes-component-la-gi\"><span class=\"ez-toc-section\" id=\"Kubernetes_Component_la_gi\"><\/span><strong>Kubernetes Component l\u00e0 g\u00ec?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Kubernetes component l\u00e0 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ea5u th\u00e0nh n\u00ean m\u1ed9t cluster Kubernetes. M\u1ed7i th\u00e0nh ph\u1ea7n gi\u1eef vai tr\u00f2 ri\u00eang trong vi\u1ec7c \u0111i\u1ec1u ph\u1ed1i, th\u1ef1c thi v\u00e0 qu\u1ea3n l\u00fd container.&nbsp;<\/p>\n\n\n\n<p>Khi nh\u00ecn t\u1ed5ng th\u1ec3, ki\u1ebfn tr\u00fac Kubernetes \u0111\u01b0\u1ee3c chia th\u00e0nh hai nh\u00f3m ch\u00ednh: Control Plane v\u00e0 Worker Nodes, c\u00f9ng v\u1edbi c\u00e1c th\u00e0nh ph\u1ea7n m\u1edf r\u1ed9ng (add-ons).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Control plane<\/strong>: ch\u1ecbu tr\u00e1ch nhi\u1ec7m qu\u1ea3n l\u00fd tr\u1ea1ng th\u00e1i to\u00e0n h\u1ec7 th\u1ed1ng. G\u1ed3m c\u00e1c th\u00e0nh ph\u1ea7n nh\u01b0 <code>kube-apiserver<\/code>, <code>etcd<\/code>, <code>kube-scheduler<\/code>, <code>controller manager<\/code> nh\u1eefng b\u1ed9 ph\u1eadn \u0111i\u1ec1u ph\u1ed1i v\u00e0 l\u01b0u tr\u1eef tr\u1ea1ng th\u00e1i cluster.<\/li>\n\n\n\n<li><strong>Worker nodes (node components)<\/strong>: n\u01a1i ch\u1ea1y workload th\u1ef1c t\u1ebf. G\u1ed3m c\u00e1c th\u00e0nh ph\u1ea7n nh\u01b0 <code>kubelet<\/code>, <code>kube-proxy<\/code> v\u00e0 <code>container runtime interface<\/code> (CRI) v\u1edbi c\u00e1c implementation nh\u01b0 containerd, CRI-O, ch\u1ecbu tr\u00e1ch nhi\u1ec7m v\u1eadn h\u00e0nh container v\u00e0 giao ti\u1ebfp v\u1edbi Control Plane.<\/li>\n\n\n\n<li><strong>Add-ons \/ extensions<\/strong>: v\u00ed d\u1ee5 CoreDNS, dashboard, metrics server, Ingress controllers, CNI plugins) gi\u00fap ho\u00e0n thi\u1ec7n m\u00f4i tr\u01b0\u1eddng production.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc chi ti\u1ebft: <strong><a href=\"https:\/\/itviec.com\/blog\/kubernetes-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kubernetes l\u00e0 g\u00ec: To\u00e0n di\u1ec7n ki\u1ebfn th\u1ee9c Kubernetes n\u1ec1n t\u1ea3ng c\u1ea7n bi\u1ebft<\/a><\/strong><\/em><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-vi-sao-c\u1ea7n-n\u1eafm-ro-cac-kubernetes-component-khi-dung-kubernetes\"><strong>V\u00ec sao c\u1ea7n n\u1eafm r\u00f5 c\u00e1c Kubernetes component khi d\u00f9ng Kubernetes?<\/strong><\/h3>\n\n\n\n<p>Khi b\u1ea1n hi\u1ec3u r\u00f5 t\u1eebng Kubernetes component, b\u1ea1n kh\u00f4ng ch\u1ec9 n\u1eafm \u0111\u01b0\u1ee3c c\u00e1ch h\u1ec7 th\u1ed1ng v\u1eadn h\u00e0nh m\u00e0 c\u00f2n t\u1eadn d\u1ee5ng \u0111\u01b0\u1ee3c nhi\u1ec1u l\u1ee3i \u00edch thi\u1ebft th\u1ef1c cho vi\u1ec7c tri\u1ec3n khai v\u00e0 v\u1eadn h\u00e0nh \u1ee9ng d\u1ee5ng container. V\u00ed d\u1ee5 nh\u01b0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>T\u1ed1i \u01b0u h\u00f3a chi ph\u00ed ho\u1ea1t \u0111\u1ed9ng nh\u1edd qu\u1ea3n l\u00fd t\u00e0i nguy\u00ean hi\u1ec7u qu\u1ea3 th\u00f4ng qua Resource Quotas, LimitRanges, v\u00e0 Horizontal Pod Autoscaler v\u00e0 gi\u1ea3m thi\u1ec3u l\u00e3ng ph\u00ed.<\/li>\n\n\n\n<li>N\u00e2ng cao hi\u1ec7u qu\u1ea3 \u0111\u1ed9i ng\u0169 ph\u00e1t tri\u1ec3n v\u00e0 DevOps khi vi\u1ec7c tri\u1ec3n khai, th\u1eed nghi\u1ec7m v\u00e0 m\u1edf r\u1ed9ng \u1ee9ng d\u1ee5ng tr\u1edf n\u00ean nhanh v\u00e0 linh ho\u1ea1t h\u01a1n th\u00f4ng qua t\u00edch h\u1ee3p CI\/CD v\u00e0 quy tr\u00ecnh GitOps.<\/li>\n\n\n\n<li>T\u0103ng kh\u1ea3 n\u0103ng tri\u1ec3n khai \u0111a \u0111\u00e1m m\u00e2y (multi-cloud) v\u00e0 hybrid cloud d\u1ec5 d\u00e0ng di chuy\u1ec3n workload. \u0110i\u1ec1u n\u00e0y \u0111\u1eb7c bi\u1ec7t quan tr\u1ecdng khi b\u1ea1n mu\u1ed1n tr\u00e1nh b\u1ecb r\u00e0ng bu\u1ed9c b\u1edfi m\u1ed9t nh\u00e0 cung c\u1ea5p n\u00e0o \u0111\u00f3.<\/li>\n\n\n\n<li>N\u00e2ng cao t\u00ednh s\u1eb5n s\u00e0ng v\u00e0 kh\u1ea3 n\u0103ng ch\u1ecbu l\u1ed7i cho \u1ee9ng d\u1ee5ng: c\u00e1c component ph\u1ed1i h\u1ee3p \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng m\u1edf r\u1ed9ng (auto-scaling), kh\u00f4i ph\u1ee5c (self-healing) v\u00e0 duy tr\u00ec ho\u1ea1t \u0111\u1ed9ng \u1ed5n \u0111\u1ecbnh th\u00f4ng qua ReplicaSets, Deployments, v\u00e0 StatefulSets.<\/li>\n\n\n\n<li>Khai th\u00e1c \u0111\u01b0\u1ee3c l\u1ee3i th\u1ebf c\u1ee7a m\u1ed9t n\u1ec1n t\u1ea3ng m\u00e3 ngu\u1ed3n m\u1edf, c\u00f3 h\u1ec7 sinh th\u00e1i CNCF (Cloud Native Computing Foundation) \u0111\u1ed3 s\u1ed9, v\u1edbi c\u1ed9ng \u0111\u1ed3ng h\u1ed7 tr\u1ee3 m\u1ea1nh, gi\u00fap b\u1ea1n linh ho\u1ea1t h\u01a1n trong vi\u1ec7c m\u1edf r\u1ed9ng, t\u00edch h\u1ee3p v\u00e0 b\u1ea3o tr\u00ec h\u1ec7 th\u1ed1ng.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cac-component-trong-kubernetes-control-plane-nbsp\"><span class=\"ez-toc-section\" id=\"Cac_component_trong_Kubernetes_Control_Plane\"><\/span><strong>C\u00e1c component trong Kubernetes Control Plane&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Trong ki\u1ebfn tr\u00fac c\u1ee7a Kubernetes, nh\u00f3m c\u00e1c th\u00e0nh ph\u1ea7n qu\u1ea3n l\u00fd (hay c\u00f2n \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 control plane ho\u1eb7c master components) \u0111\u00f3ng vai tr\u00f2 trung t\u00e2m \u0111\u1ec3 gi\u00e1m s\u00e1t, \u0111i\u1ec1u ph\u1ed1i v\u00e0 duy tr\u00ec tr\u1ea1ng th\u00e1i c\u1ee7a c\u1ea3 cluster.&nbsp;<\/p>\n\n\n\n<p>C\u00e1c th\u00e0nh ph\u1ea7n ch\u00ednh:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-api-server-kube-apiserver\"><strong>API Server (kube-apiserver)<\/strong><\/h3>\n\n\n\n<p>\u0110\u00e2y l\u00e0 c\u1ed5ng giao ti\u1ebfp ch\u00ednh c\u1ee7a cluster: m\u1ecdi t\u01b0\u01a1ng t\u00e1c t\u1eeb ng\u01b0\u1eddi d\u00f9ng, t\u1eeb CLI kubectl ho\u1eb7c t\u1eeb c\u00e1c node kh\u00e1c \u0111\u1ec1u \u0111i qua API server tr\u01b0\u1edbc khi \u0111\u01b0\u1ee3c x\u1eed l\u00fd. API Server cung c\u1ea5p RESTful API v\u00e0 th\u1ef1c hi\u1ec7n c\u00e1c b\u01b0\u1edbc x\u00e1c th\u1ef1c, ph\u00e2n quy\u1ec1n (RBAC), ki\u1ec3m tra admission control, \u0111\u1ed3ng th\u1eddi x\u00e1c minh d\u1eef li\u1ec7u tr\u01b0\u1edbc khi l\u01b0u tr\u1eef \u0111\u1ed1i t\u01b0\u1ee3ng v\u00e0o etcd.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-etcd\"><strong>etcd<\/strong><\/h3>\n\n\n\n<p>L\u00e0 kho d\u1eef li\u1ec7u key-value ph\u00e2n t\u00e1n c\u00f3 t\u00ednh nh\u1ea5t qu\u00e1n cao (strongly consistent), n\u01a1i l\u01b0u tr\u1eef to\u00e0n b\u1ed9 tr\u1ea1ng th\u00e1i v\u00e0 c\u1ea5u h\u00ecnh c\u1ee7a cluster. M\u1ed9t trong c\u00e1c kubernetes component quan tr\u1ecdng \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh nh\u1ea5t qu\u00e1n v\u00e0 kh\u1ea3 n\u0103ng kh\u00f4i ph\u1ee5c c\u1ee7a h\u1ec7 th\u1ed1ng. etcd s\u1eed d\u1ee5ng thu\u1eadt to\u00e1n Raft consensus \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh nh\u1ea5t qu\u00e1n d\u1eef li\u1ec7u gi\u1eefa c\u00e1c node trong cluster etcd.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-scheduler-kube-scheduler\"><strong>Scheduler (kube-scheduler)<\/strong><\/h3>\n\n\n\n<p>Khi c\u00f3 Pod m\u1edbi ho\u1eb7c workload c\u1ea7n \u0111\u01b0\u1ee3c th\u1ef1c thi, scheduler ch\u1ecbu tr\u00e1ch nhi\u1ec7m l\u1ef1a ch\u1ecdn node th\u00edch h\u1ee3p d\u1ef1a tr\u00ean c\u00e1c y\u1ebfu t\u1ed1 nh\u01b0 y\u00eau c\u1ea7u t\u00e0i nguy\u00ean, quy t\u1eafc affinity\/anti-affinity, taints v\u00e0 tolerations, t\u00ednh c\u1ee5c b\u1ed9 d\u1eef li\u1ec7u, c\u00f9ng nh\u1eefng r\u00e0ng bu\u1ed9c li\u00ean quan kh\u00e1c ti\u00eau ch\u00ed v\u00e0 t\u00e0i nguy\u00ean s\u1eb5n c\u00f3.<\/p>\n\n\n\n<p>\u0110\u00e2y l\u00e0 m\u1ed9t th\u00e0nh ph\u1ea7n control plane thi\u1ebft y\u1ebfu ho\u1ea1t \u0111\u1ed9ng theo c\u01a1 ch\u1ebf watch-list v\u1edbi API server.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-controller-manager-kube-controller-manager\"><strong>Controller Manager (kube-controller-manager)<\/strong><\/h3>\n\n\n\n<p>Th\u00e0nh ph\u1ea7n n\u00e0y ch\u1ea1y nhi\u1ec1u controller \u2013 c\u00e1c v\u00f2ng l\u1eb7p control loops t\u1ef1 \u0111\u1ed9ng theo d\u00f5i tr\u1ea1ng th\u00e1i v\u00e0 \u0111\u1ea3m b\u1ea3o h\u1ec7 th\u1ed1ng v\u1eadn h\u00e0nh theo \u0111\u00fang c\u1ea5u h\u00ecnh mong mu\u1ed1n. Bao g\u1ed3m c\u00e1c controller nh\u01b0: Node Controller, ReplicaSet Controller, Deployment Controller, Service Account Controller, Endpoint Controller, v\u00e0 nhi\u1ec1u controller kh\u00e1c. M\u1ed9t trong c\u00e1c kubernetes component quy\u1ebft \u0111\u1ecbnh reconciliation gi\u1eefa tr\u1ea1ng th\u00e1i mong mu\u1ed1n (desired state) v\u00e0 th\u1ef1c t\u1ebf (current state) c\u1ee7a cluster.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cloud-controller-manager-cloud-controller-manager\"><strong>Cloud Controller Manager (cloud-controller-manager)<\/strong><\/h3>\n\n\n\n<p>Khi Kubernetes \u0111\u01b0\u1ee3c tri\u1ec3n khai tr\u00ean m\u00f4i tr\u01b0\u1eddng \u0111\u00e1m m\u00e2y ho\u1eb7c t\u00edch h\u1ee3p v\u1edbi nh\u00e0 cung c\u1ea5p cloud, th\u00e0nh ph\u1ea7n n\u00e0y gi\u00fap li\u00ean k\u1ebft cluster v\u1edbi c\u00e1c API c\u1ee7a cloud provider \u2014 m\u1ed9t ph\u1ea7n m\u1edf r\u1ed9ng c\u1ee7a nh\u00f3m control plane. Component n\u00e0y ch\u1ea1y c\u00e1c controller ri\u00eang cho cloud nh\u01b0: Node Controller (ki\u1ec3m tra node v\u1edbi cloud provider), Route Controller (thi\u1ebft l\u1eadp routes), Service Controller (qu\u1ea3n l\u00fd cloud load balancers), v\u00e0 Volume Controller (qu\u1ea3n l\u00fd storage volumes).<\/p>\n\n\n\n<p><strong>L\u01b0u \u00fd:<\/strong> T\u1eeb Kubernetes 1.26+, cloud-controller-manager \u0111\u01b0\u1ee3c t\u00e1ch ri\u00eang kh\u1ecfi kube-controller-manager \u0111\u1ec3 t\u0103ng t\u00ednh modular<\/p>\n\n\n\n<p>Khi b\u1ea1n n\u1eafm \u0111\u01b0\u1ee3c c\u00e1c Kubernetes component thu\u1ed9c control plane, b\u1ea1n s\u1ebd d\u1ec5 d\u00e0ng:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Hi\u1ec3u \u0111\u01b0\u1ee3c c\u00e1ch cluster ra quy\u1ebft \u0111\u1ecbnh v\u00e0 ph\u00e2n b\u1ed5 t\u00e0i nguy\u00ean th\u00f4ng qua admission webhooks, quota t\u00e0i nguy\u00ean v\u00e0 c\u00e1c l\u1edbp \u01b0u ti\u00ean (priority classes).<\/li>\n\n\n\n<li>Ch\u1ea9n \u0111o\u00e1n s\u1ef1 c\u1ed1 khi Pod kh\u00f4ng \u0111\u01b0\u1ee3c t\u1ea1o ho\u1eb7c node kh\u00f4ng \u0111\u01b0\u1ee3c ch\u1ecdn \u0111\u00fang b\u1eb1ng c\u00e1ch ki\u1ec3m tra logs c\u1ee7a c\u00e1c component, events, v\u00e0 s\u1eed d\u1ee5ng kubectl describe.<\/li>\n\n\n\n<li>Tri\u1ec3n khai v\u00e0 c\u1ea5u h\u00ecnh cluster m\u1ed9t c\u00e1ch an to\u00e0n, v\u00ed d\u1ee5 nh\u01b0 ch\u1ea1y nhi\u1ec1u b\u1ea3n sao (HA) c\u1ee7a API Server ho\u1eb7c etcd \u0111\u1ec3 tr\u00e1nh \u0111i\u1ec3m th\u1ea5t b\u1ea1i \u0111\u01a1n.<\/li>\n\n\n\n<li>N\u00e2ng cao kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng v\u00e0 t\u1ef1 ph\u1ee5c h\u1ed3i c\u1ee7a h\u1ec7 th\u1ed1ng b\u1eb1ng thi\u1ebft k\u1ebf control plane ph\u00f9 h\u1ee3p.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-node-components-trong-kubernetes\"><span class=\"ez-toc-section\" id=\"Node_Components_trong_Kubernetes\"><\/span><strong>Node Components trong Kubernetes<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Node Components l\u00e0 nh\u00f3m kubernetes component ch\u1ecbu tr\u00e1ch nhi\u1ec7m ch\u1ea1y c\u00e1c workload th\u1ef1c t\u1ebf tr\u00ean t\u1eebng node trong cluster. M\u1ed7i node, d\u00f9 l\u00e0 m\u00e1y \u1ea3o hay m\u00e1y v\u1eadt l\u00fd \u0111\u1ec1u c\u00f3 b\u1ed9 th\u00e0nh ph\u1ea7n ri\u00eang gi\u00fap \u0111\u1ea3m b\u1ea3o container v\u1eadn h\u00e0nh \u0111\u00fang c\u00e1ch v\u00e0 lu\u00f4n trong tr\u1ea1ng th\u00e1i mong mu\u1ed1n.&nbsp;<\/p>\n\n\n\n<p>D\u01b0\u1edbi \u0111\u00e2y l\u00e0 ba th\u00e0nh ph\u1ea7n ch\u00ednh c\u1ee7a Node Components:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-kubelet\"><strong>kubelet<\/strong><\/h3>\n\n\n\n<p>kubelet l\u00e0 m\u1ed9t component quan tr\u1ecdng ch\u1ea1y tr\u00ean m\u1ed7i node nh\u01b0 m\u1ed9t system daemon. Nhi\u1ec7m v\u1ee5 c\u1ee7a n\u00f3 l\u00e0 \u0111\u1ea3m b\u1ea3o c\u00e1c container \u0111\u01b0\u1ee3c kh\u1edfi t\u1ea1o v\u00e0 v\u1eadn h\u00e0nh \u0111\u00fang v\u1edbi c\u1ea5u h\u00ecnh do Control Plane g\u1eedi \u0111\u1ebfn (PodSpec).&nbsp;<\/p>\n\n\n\n<p>kubelet kh\u00f4ng qu\u1ea3n l\u00fd c\u00e1c container kh\u00f4ng \u0111\u01b0\u1ee3c Kubernetes t\u1ea1o ra, v\u00e0 n\u00f3 ho\u1ea1t \u0111\u1ed9ng theo c\u01a1 ch\u1ebf pull model &#8211; li\u00ean t\u1ee5c watch API server \u0111\u1ec3 nh\u1eadn PodSpec m\u1edbi ho\u1eb7c c\u1eadp nh\u1eadt. kubelet c\u0169ng th\u01b0\u1eddng xuy\u00ean g\u1eedi b\u00e1o c\u00e1o v\u1ec1 tr\u1ea1ng th\u00e1i node v\u00e0 c\u00e1c pod \u0111ang ch\u1ea1y \u0111\u1ec3 Control Plane n\u1eafm b\u1eaft t\u00ecnh h\u00ecnh to\u00e0n cluster.&nbsp;<\/p>\n\n\n\n<p>Ngo\u00e0i ra, kubelet c\u00f2n x\u1eed l\u00fd vi\u1ec7c g\u1eafn volume, \u0111\u01b0a secret\/configMap v\u00e0o container, th\u1ef1c hi\u1ec7n c\u00e1c ki\u1ec3m tra s\u1ee9c kh\u1ecfe (liveness, readiness, startup probes) v\u00e0 \u0111\u1ea3m b\u1ea3o gi\u1edbi h\u1ea1n t\u00e0i nguy\u00ean \u0111\u01b0\u1ee3c \u00e1p d\u1ee5ng \u0111\u00fang.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-kube-proxy\"><strong>kube-proxy<\/strong><\/h3>\n\n\n\n<p>kube-proxy l\u00e0component \u0111\u1ea3m nh\u1eadn vi\u1ec7c qu\u1ea3n l\u00fd l\u01b0u l\u01b0\u1ee3ng m\u1ea1ng \u1edf layer 4 (TCP\/UDP) b\u00ean trong node. N\u00f3 duy tr\u00ec k\u1ebft n\u1ed1i gi\u1eefa c\u00e1c pod v\u00e0 service b\u1eb1ng c\u00e1ch \u0111\u1ecbnh tuy\u1ebfn v\u00e0 c\u00e2n b\u1eb1ng t\u1ea3i l\u01b0u l\u01b0\u1ee3ng th\u00f4ng qua vi\u1ec7c c\u1ea5u h\u00ecnh iptables, IPVS (IP Virtual Server) ho\u1eb7c ch\u1ebf \u0111\u1ed9 proxy ch\u1ea1y \u1edf userspace.&nbsp;<\/p>\n\n\n\n<p>Nh\u1edd kube-proxy, c\u00e1c \u1ee9ng d\u1ee5ng trong cluster c\u00f3 th\u1ec3 giao ti\u1ebfp m\u01b0\u1ee3t m\u00e0, b\u1ea5t k\u1ec3 ch\u00fang ch\u1ea1y \u1edf node n\u00e0o. kube-proxy watch c\u00e1c Service v\u00e0 Endpoint objects t\u1eeb API server v\u00e0 t\u1ef1 \u0111\u1ed9ng c\u1eadp nh\u1eadt rules khi c\u00f3 thay \u0111\u1ed5i. T\u1eeb Kubernetes 1.29+, IPVS mode \u0111\u01b0\u1ee3c khuy\u1ebfn ngh\u1ecb cho performance t\u1ed1t h\u01a1n v\u1edbi large-scale clusters.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-container-runtime\"><strong>Container Runtime<\/strong><\/h3>\n\n\n\n<p>Container runtime l\u00e0 l\u1edbp n\u1ec1n gi\u00fap Kubernetes th\u1ef1c thi c\u00e1c container. \u0110\u00e2y l\u00e0 component ch\u1ecbu tr\u00e1ch nhi\u1ec7m kh\u1edfi ch\u1ea1y, d\u1eebng v\u00e0 qu\u1ea3n l\u00fd v\u00f2ng \u0111\u1eddi c\u1ee7a container. Runtime ph\u1ea3i tu\u00e2n theo \u0111\u1eb7c t\u1ea3 CRI (Container Runtime Interface). M\u1ed9t s\u1ed1 runtime ph\u1ed5 bi\u1ebfn l\u00e0 containerd, CRI-O ho\u1eb7c Docker.<\/p>\n\n\n\n<p>Hi\u1ec3u r\u00f5 c\u00e1ch ho\u1ea1t \u0111\u1ed9ng c\u1ee7a c\u00e1c Node Components l\u00e0 n\u1ec1n t\u1ea3ng \u0111\u1ec3 qu\u1ea3n tr\u1ecb v\u00e0 t\u1ed1i \u01b0u h\u00f3a h\u1ec7 th\u1ed1ng Kubernetes hi\u1ec7u qu\u1ea3. Khi n\u1eafm v\u1eefng t\u1eebng component trong node, b\u1ea1n c\u00f3 th\u1ec3:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ph\u00e1t hi\u1ec7n v\u00e0 kh\u1eafc ph\u1ee5c l\u1ed7i nhanh h\u01a1n khi container g\u1eb7p s\u1ef1 c\u1ed1.<\/li>\n\n\n\n<li>T\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t t\u00e0i nguy\u00ean gi\u1eefa c\u00e1c node trong cluster.<\/li>\n\n\n\n<li>C\u1ea3i thi\u1ec7n kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng v\u00e0 t\u00ednh s\u1eb5n s\u00e0ng c\u1ee7a h\u1ec7 th\u1ed1ng.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-add-ons-va-cac-thanh-ph\u1ea7n-m\u1edf-r\u1ed9ng-trong-kubernetes\"><span class=\"ez-toc-section\" id=\"Add-ons_va_cac_thanh_phan_mo_rong_trong_Kubernetes\"><\/span><strong>Add-ons v\u00e0 c\u00e1c th\u00e0nh ph\u1ea7n m\u1edf r\u1ed9ng trong Kubernetes<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>B\u00ean c\u1ea1nh Control Plane v\u00e0 Node Components, Kubernetes c\u00f2n h\u1ed7 tr\u1ee3 nhi\u1ec1u add-on v\u00e0 c\u00e1c th\u00e0nh ph\u1ea7n m\u1edf r\u1ed9ng \u0111\u1ec3 b\u1ed5 sung t\u00ednh n\u0103ng cho cluster. \u0110\u00e2y l\u00e0 nh\u00f3m Kubernetes component kh\u00f4ng b\u1eaft bu\u1ed9c, nh\u01b0ng g\u1ea7n nh\u01b0 lu\u00f4n \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong m\u00f4i tr\u01b0\u1eddng th\u1ef1c t\u1ebf \u0111\u1ec3 t\u0103ng c\u01b0\u1eddng kh\u1ea3 n\u0103ng quan s\u00e1t, b\u1ea3o m\u1eadt, l\u01b0u tr\u1eef v\u00e0 m\u1edf r\u1ed9ng d\u1ecbch v\u1ee5.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-add-on-trong-kubernetes\"><strong>Add-on trong Kubernetes<\/strong><\/h3>\n\n\n\n<p>Add-on l\u00e0 nh\u1eefng Kubernetes component \u0111\u01b0\u1ee3c c\u00e0i th\u00eam v\u00e0o cluster \u0111\u1ec3 cung c\u1ea5p ch\u1ee9c n\u0103ng b\u1ed5 tr\u1ee3, ch\u1eb3ng h\u1ea1n UI qu\u1ea3n l\u00fd, h\u1ec7 th\u1ed1ng DNS n\u1ed9i b\u1ed9, gi\u00e1m s\u00e1t log, hay metric server.&nbsp;<\/p>\n\n\n\n<p>M\u1ed9t s\u1ed1 lo\u1ea1i add-on ph\u1ed5 bi\u1ebfn g\u1ed3m:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DNS add-on:<\/strong> CoreDNS (m\u1eb7c \u0111\u1ecbnh t\u1eeb Kubernetes 1.11+, thay th\u1ebf kube-dns) cho ph\u00e9p c\u00e1c service v\u00e0 pod giao ti\u1ebfp b\u1eb1ng t\u00ean thay v\u00ec IP. \u0110\u00e2y l\u00e0 add-on \u0111\u01b0\u1ee3c b\u1eaft bu\u1ed9c v\u00e0 t\u1ef1 \u0111\u1ed9ng c\u00e0i \u0111\u1eb7t trong m\u1ecdi cluster. CoreDNS cung c\u1ea5p service discovery th\u00f4ng qua DNS records cho Services v\u00e0 Pods v\u1edbi format: <code>&lt;service-name>.&lt;namespace>.svc.cluster.local<\/code><\/li>\n\n\n\n<li><strong>Web UI (Dashboard):<\/strong> Giao di\u1ec7n tr\u1ef1c quan gi\u00fap ng\u01b0\u1eddi d\u00f9ng qu\u1ea3n l\u00fd t\u00e0i nguy\u00ean, xem tr\u1ea1ng th\u00e1i pod, node v\u00e0 deployment m\u00e0 kh\u00f4ng c\u1ea7n d\u00f9ng d\u00f2ng l\u1ec7nh. L\u01b0u \u00fd: Kubernetes Dashboard c\u1ea7n \u0111\u01b0\u1ee3c c\u1ea5u h\u00ecnh x\u00e1c th\u1ef1c v\u00e0 ph\u00e2n quy\u1ec1n ch\u1eb7t ch\u1ebd \u0111\u1ec3 tr\u00e1nh r\u1ee7i ro b\u1ea3o m\u1eadt, \u0111\u1eb7c bi\u1ec7t sau nh\u1eefng s\u1ef1 c\u1ed1 nh\u01b0 v\u1ee5 crypto-jacking t\u1ea1i Tesla.<\/li>\n\n\n\n<li><strong>Monitoring &amp; logging add-on<\/strong>: C\u00e1c gi\u1ea3i ph\u00e1p nh\u01b0 Prometheus k\u1ebft h\u1ee3p <code>kube-state-metrics<\/code> v\u00e0 <code>node-exporter<\/code>, Grafana, ho\u1eb7c c\u00e1c stack EFK\/PLG (Promtail\u2013Loki\u2013Grafana ng\u00e0y c\u00e0ng \u0111\u01b0\u1ee3c \u01b0a chu\u1ed9ng nh\u1edd nh\u1eb9 h\u01a1n) gi\u00fap theo d\u00f5i hi\u1ec7u n\u0103ng v\u00e0 ph\u00e2n t\u00edch log c\u1ee7a h\u1ec7 th\u1ed1ng. Metrics Server c\u0169ng l\u00e0 m\u1ed9t add-on quan tr\u1ecdng, cung c\u1ea5p s\u1ed1 li\u1ec7u t\u00e0i nguy\u00ean cho HPA v\u00e0 VPA.<\/li>\n\n\n\n<li><strong>Network add-on<\/strong>: C\u00e1c plugin CNI nh\u01b0 Calico, Flannel hay Cilium gi\u00fap thi\u1ebft l\u1eadp m\u1ea1ng gi\u1eefa c\u00e1c pod v\u00e0 th\u1ef1c thi ch\u00ednh s\u00e1ch b\u1ea3o m\u1eadt theo chu\u1ea9n Kubernetes. Trong giai \u0111o\u1ea1n 2024\u20132025, Cilium \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng ng\u00e0y c\u00e0ng r\u1ed9ng r\u00e3i nh\u1edd c\u00f4ng ngh\u1ec7 eBPF mang l\u1ea1i hi\u1ec7u n\u0103ng t\u1ed1t h\u01a1n v\u00e0 kh\u1ea3 n\u0103ng quan s\u00e1t h\u1ec7 th\u1ed1ng v\u01b0\u1ee3t tr\u1ed9i.<\/li>\n\n\n\n<li><strong>Ingress Controllers:<\/strong> C\u00e1c gi\u1ea3i ph\u00e1p nh\u01b0 NGINX Ingress, Traefik, HAProxy hay Istio Gateway gi\u00fap qu\u1ea3n l\u00fd l\u01b0u l\u01b0\u1ee3ng truy c\u1eadp t\u1eeb b\u00ean ngo\u00e0i v\u00e0o c\u00e1c service th\u00f4ng qua c\u01a1 ch\u1ebf \u0111\u1ecbnh tuy\u1ebfn HTTP\/HTTPS.<\/li>\n<\/ul>\n\n\n\n<p>Nh\u1edd c\u00e1c add-on n\u00e0y, cluster d\u1ec5 qu\u1ea3n l\u00fd h\u01a1n, quan s\u00e1t t\u1ed1t h\u01a1n v\u00e0 ph\u00f9 h\u1ee3p v\u1edbi m\u00f4i tr\u01b0\u1eddng production y\u00eau c\u1ea7u s\u1ef1 \u1ed5n \u0111\u1ecbnh l\u00e2u d\u00e0i.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-thanh-ph\u1ea7n-m\u1edf-r\u1ed9ng-trong-kubernetes\"><strong>Th\u00e0nh ph\u1ea7n m\u1edf r\u1ed9ng trong Kubernetes<\/strong><\/h3>\n\n\n\n<p>Kubernetes \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf theo ki\u1ebfn tr\u00fac m\u1edf, cho ph\u00e9p b\u1ed5 sung ho\u1eb7c thay \u0111\u1ed5i h\u00e0nh vi th\u00f4ng qua th\u00e0nh ph\u1ea7n m\u1edf r\u1ed9ng (extensions). \u0110\u00e2y l\u00e0 c\u00e1c kubernetes component cho ph\u00e9p n\u00e2ng c\u1ea5p h\u1ec7 th\u1ed1ng m\u00e0 kh\u00f4ng c\u1ea7n ch\u1ec9nh s\u1eeda l\u00f5i c\u1ee7a Kubernetes. M\u1ed9t s\u1ed1 h\u00ecnh th\u1ee9c m\u1edf r\u1ed9ng bao g\u1ed3m:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Custom Resource Definition (CRD): Cho ph\u00e9p t\u1ea1o ra t\u00e0i nguy\u00ean t\u00f9y ch\u1ec9nh, ho\u1ea1t \u0111\u1ed9ng gi\u1ed1ng nh\u01b0 c\u00e1c API m\u1eb7c \u0111\u1ecbnh c\u1ee7a Kubernetes. CRD k\u1ebft h\u1ee3p v\u1edbi c\u00e1c Custom Controller t\u1ea1o th\u00e0nh m\u00f4 h\u00ecnh Operator. V\u00ed d\u1ee5: Prometheus Operator, Elasticsearch Operator.<\/li>\n\n\n\n<li>Operators: T\u1ef1 \u0111\u1ed9ng h\u00f3a vi\u1ec7c v\u1eadn h\u00e0nh \u1ee9ng d\u1ee5ng ho\u1eb7c d\u1ecbch v\u1ee5 ph\u1ee9c t\u1ea1p b\u1eb1ng c\u00e1ch theo d\u00f5i tr\u1ea1ng th\u00e1i v\u00e0 t\u1ef1 \u0111\u01b0a ra h\u00e0nh \u0111\u1ed9ng ph\u00f9 h\u1ee3p. Operators tri\u1ec3n khai logic chuy\u00ean bi\u1ec7t cho t\u1eebng \u1ee9ng d\u1ee5ng v\u00e0 th\u01b0\u1eddng \u0111\u01b0\u1ee3c x\u00e2y d\u1ef1ng b\u1eb1ng c\u00e1c framework nh\u01b0 Operator SDK, Kubebuilder ho\u1eb7c KUDO.<\/li>\n\n\n\n<li>Admission Controllers: Can thi\u1ec7p v\u00e0o qu\u00e1 tr\u00ecnh t\u1ea1o ho\u1eb7c thay \u0111\u1ed5i t\u00e0i nguy\u00ean, m\u1ed9t s\u1ed1 d\u00f9ng \u0111\u1ec3 m\u00e3 h\u00f3a d\u1eef li\u1ec7u, gi\u1edbi h\u1ea1n c\u1ea5u h\u00ecnh ho\u1eb7c ki\u1ec3m tra b\u1ea3o m\u1eadt.<\/li>\n\n\n\n<li>Runtime extensions (CNI, CSI, CRI):\n<ul class=\"wp-block-list\">\n<li>CNI m\u1edf r\u1ed9ng m\u1ea1ng &#8211; cho ph\u00e9p t\u00edch h\u1ee3p c\u00e1c m\u1ea1ng l\u01b0\u1edbi gi\u1ea3i ph\u00e1p kh\u00e1c nhau<\/li>\n\n\n\n<li>CSI m\u1edf r\u1ed9ng h\u1ec7 th\u1ed1ng l\u01b0u tr\u1eef &#8211; chu\u1ea9n h\u00f3a c\u00e1ch c\u00e1c nh\u00e0 cung c\u1ea5p l\u01b0u tr\u1eef t\u00edch h\u1ee3p v\u1edbi Kubernetes. V\u00ed d\u1ee5: AWS EBS CSI, GCE PD CSI, Ceph CSI<\/li>\n\n\n\n<li>CRI m\u1edf r\u1ed9ng l\u1ef1a ch\u1ecdn container runtime &#8211; \u0111\u00e3 \u0111\u1ec1 c\u1eadp \u1edf ph\u1ea7n Node Components<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Nh\u1edd kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng n\u00e0y, Kubernetes c\u00f3 th\u1ec3 th\u00edch \u1ee9ng v\u1edbi nhi\u1ec1u ki\u1ebfn tr\u00fac kh\u00e1c nhau &#8211; t\u1eeb h\u1ec7 th\u1ed1ng nh\u1ecf \u0111\u1ebfn h\u1ea1 t\u1ea7ng enterprise l\u1edbn.<\/p>\n\n\n\n<p>Hi\u1ec3u r\u00f5 c\u00e1c add-on v\u00e0 th\u00e0nh ph\u1ea7n m\u1edf r\u1ed9ng gi\u00fap b\u1ea1n l\u1ef1a ch\u1ecdn \u0111\u00fang Kubernetes component khi tri\u1ec3n khai th\u1ef1c t\u1ebf. Ch\u00fang \u0111\u00f3ng vai tr\u00f2 quan tr\u1ecdng trong:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>T\u0103ng hi\u1ec7u qu\u1ea3 quan s\u00e1t v\u00e0 qu\u1ea3n l\u00fd cluster th\u00f4ng qua logging t\u1eadp trung, theo d\u00f5i ph\u00e2n t\u00e1n (distributed tracing) v\u00e0 t\u1ed5ng h\u1ee3p metrics<\/li>\n\n\n\n<li>C\u1ea3i thi\u1ec7n b\u1ea3o m\u1eadt, hi\u1ec7u su\u1ea5t m\u1ea1ng v\u00e0 kh\u1ea3 n\u0103ng l\u01b0u tr\u1eef \u0111\u01b0\u1ee3c b\u1ea3o v\u1ec7 v\u1edbi m\u1ea1ng Zero Trust, m\u00e3 h\u00f3a d\u1eef li\u1ec7u khi truy\u1ec1n (encryption in transit) v\u00e0 persistent volumes c\u00f3 m\u00e3 h\u00f3a khi l\u01b0u tr\u1eef (encryption at rest)<\/li>\n\n\n\n<li>T\u1ef1 \u0111\u1ed9ng h\u00f3a quy tr\u00ecnh v\u1eadn h\u00e0nh, gi\u1ea3m thi\u1ec3u l\u1ed7i th\u1ee7 c\u00f4ng nh\u1edd c\u00e1c workflow GitOps, vi\u1ec7c th\u1ef1c thi ch\u00ednh s\u00e1ch (policy enforcement) v\u00e0 c\u01a1 ch\u1ebf t\u1ef1 ph\u1ee5c h\u1ed3i (self-healing)<\/li>\n\n\n\n<li>Bi\u1ebfn Kubernetes t\u1eeb n\u1ec1n t\u1ea3ng c\u01a1 b\u1ea3n th\u00e0nh h\u1ec7 th\u1ed1ng linh ho\u1ea1t, m\u1ea1nh m\u1ebd v\u00e0 s\u1eb5n s\u00e0ng cho m\u00f4i tr\u01b0\u1eddng production v\u1edbi c\u00e1c t\u00ednh n\u0103ng \u0111\u1ea1t chu\u1ea9n enterprise<\/li>\n<\/ul>\n\n\n\n<p>B\u1ea3ng t\u00f3m t\u1eaft c\u00e1c nh\u00f3m th\u00e0nh ph\u1ea7n trong Kubernetes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Nh\u00f3m th\u00e0nh ph\u1ea7n<\/strong><\/td><td><strong>Vai tr\u00f2 ch\u00ednh<\/strong><\/td><td><strong>Th\u00e0nh ph\u1ea7n ti\u00eau bi\u1ec3u<\/strong><\/td><td><strong>M\u1ee5c \u0111\u00edch s\u1eed d\u1ee5ng<\/strong><\/td><\/tr><tr><td>Control Plane components<\/td><td>\u0110i\u1ec1u ph\u1ed1i to\u00e0n b\u1ed9 cluster, quy\u1ebft \u0111\u1ecbnh tr\u1ea1ng th\u00e1i mong mu\u1ed1n c\u1ee7a h\u1ec7 th\u1ed1ng<\/td><td>kube-apiserver, kube-scheduler, controller-manager, etcd, cloud-controller-manager<\/td><td>Qu\u1ea3n l\u00fd t\u00e0i nguy\u00ean, nh\u1eadn y\u00eau c\u1ea7u t\u1eeb ng\u01b0\u1eddi d\u00f9ng, l\u1eadp l\u1ecbch pod, l\u01b0u tr\u1eef c\u1ea5u h\u00ecnh, t\u1ef1 \u0111\u1ed9ng kh\u00f4i ph\u1ee5c<\/td><\/tr><tr><td>Node components<\/td><td>Ch\u1ea1y workload th\u1ef1c t\u1ebf, v\u1eadn h\u00e0nh container tr\u00ean t\u1eebng node<\/td><td>Kubelet, kube-proxy, container runtime (CRI-compliant)<\/td><td>Gi\u00e1m s\u00e1t pod, \u0111\u1ea3m b\u1ea3o container ch\u1ea1y \u0111\u00fang c\u1ea5u h\u00ecnh, \u0111\u1ecbnh tuy\u1ebfn m\u1ea1ng trong cluster<\/td><\/tr><tr><td>Add-on v\u00e0 th\u00e0nh ph\u1ea7n m\u1edf r\u1ed9ng<\/td><td>Cung c\u1ea5p t\u00ednh n\u0103ng b\u1ed5 sung, m\u1edf r\u1ed9ng kh\u1ea3 n\u0103ng c\u1ee7a Kubernetes<\/td><td>CoreDNS, Dashboard, Metrics Server, Prometheus\/Grafana, CNI, CSI, CRD, Operators, Ingress Controllers<\/td><td>Qu\u1ea3n l\u00fd UI, gi\u00e1m s\u00e1t v\u00e0 log, m\u1edf r\u1ed9ng m\u1ea1ng, m\u1edf r\u1ed9ng l\u01b0u tr\u1eef, t\u1ea1o API t\u00f9y ch\u1ec9nh, t\u1ef1 \u0111\u1ed9ng h\u00f3a v\u1eadn h\u00e0nh, \u0111\u1ecbnh tuy\u1ebfn l\u01b0u l\u01b0\u1ee3ng truy c\u1eadp b\u00ean ngo\u00e0i<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc chi ti\u1ebft: <strong><a href=\"https:\/\/itviec.com\/blog\/kubernetes-tutorial\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kubernetes tutorial: Chi ti\u1ebft c\u00e1ch d\u00f9ng Kubernetes cho ng\u01b0\u1eddi m\u1edbi<\/a><\/strong><\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cach-kubernetes-components-ph\u1ed1i-h\u1ee3p-v\u1edbi-nhau-nbsp\"><span class=\"ez-toc-section\" id=\"Cach_Kubernetes_Components_phoi_hop_voi_nhau\"><\/span><strong>C\u00e1ch Kubernetes Components ph\u1ed1i h\u1ee3p v\u1edbi nhau&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>M\u1ed9t trong nh\u1eefng \u01b0u \u0111i\u1ec3m l\u1edbn nh\u1ea5t c\u1ee7a Kubernetes n\u1eb1m \u1edf c\u00e1ch c\u00e1c Kubernetes component ph\u1ed1i h\u1ee3p nh\u1ecbp nh\u00e0ng \u0111\u1ec3 duy tr\u00ec tr\u1ea1ng th\u00e1i mong mu\u1ed1n c\u1ee7a h\u1ec7 th\u1ed1ng. D\u00f9 m\u1ed7i th\u00e0nh ph\u1ea7n c\u00f3 vai tr\u00f2 ri\u00eang, nh\u01b0ng t\u1ea5t c\u1ea3 ho\u1ea1t \u0111\u1ed9ng theo m\u1ed9t quy tr\u00ecnh t\u1ef1 \u0111\u1ed9ng v\u00e0 th\u1ed1ng nh\u1ea5t, gi\u00fap cluster v\u1eadn h\u00e0nh \u1ed5n \u0111\u1ecbnh v\u00e0 c\u00f3 kh\u1ea3 n\u0103ng t\u1ef1 ph\u1ee5c h\u1ed3i.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-control-plane-d\u01b0a-ra-tr\u1ea1ng-thai-mong-mu\u1ed1n\"><strong>Control Plane \u0111\u01b0a ra \u201ctr\u1ea1ng th\u00e1i mong mu\u1ed1n\u201d<\/strong><\/h3>\n\n\n\n<p>Control Plane l\u00e0 n\u01a1i ti\u1ebfp nh\u1eadn y\u00eau c\u1ea7u t\u1eeb ng\u01b0\u1eddi d\u00f9ng, c\u00f4ng c\u1ee5 CI\/CD ho\u1eb7c API. Khi b\u1ea1n t\u1ea1o m\u1ed9t Deployment, Scale Pod, hay c\u1eadp nh\u1eadt c\u1ea5u h\u00ecnh m\u1edbi, Control Plane ghi l\u1ea1i tr\u1ea1ng th\u00e1i mong mu\u1ed1n v\u00e0o etcd, sau \u0111\u00f3 chuy\u1ec3n nhi\u1ec7m v\u1ee5 cho Scheduler v\u00e0 Controller Manager x\u1eed l\u00fd.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-scheduler-gan-pod-vao-node-phu-h\u1ee3p\"><strong>Scheduler g\u00e1n Pod v\u00e0o node ph\u00f9 h\u1ee3p<\/strong><\/h3>\n\n\n\n<p>Scheduler xem x\u00e9t t\u00e0i nguy\u00ean node, t\u00ecnh tr\u1ea1ng t\u1ea3i v\u00e0 r\u00e0ng bu\u1ed9c c\u1ea5u h\u00ecnh \u0111\u1ec3 quy\u1ebft \u0111\u1ecbnh pod s\u1ebd ch\u1ea1y \u1edf \u0111\u00e2u. \u0110\u00e2y l\u00e0 b\u01b0\u1edbc k\u1ebft n\u1ed1i gi\u1eefa y\u00eau c\u1ea7u t\u1eeb Control Plane v\u00e0 c\u00e1c node th\u1ef1c t\u1ebf trong cluster.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-node-component-tri\u1ec3n-khai-workload\"><strong>Node Component tri\u1ec3n khai workload<\/strong><\/h3>\n\n\n\n<p>Sau khi Scheduler ch\u1ecdn \u0111\u01b0\u1ee3c node:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>kubelet tr\u00ean node watch (theo d\u00f5i) nh\u1eadp PodSpec t\u1eeb API Server<\/li>\n\n\n\n<li>container runtime t\u1ea1o container<\/li>\n\n\n\n<li>kube-proxy thi\u1ebft l\u1eadp m\u1ea1ng \u0111\u1ec3 pod c\u00f3 th\u1ec3 giao ti\u1ebfp v\u1edbi c\u00e1c Service kh\u00e1c<\/li>\n<\/ul>\n\n\n\n<p>C\u00e1c Kubernetes component n\u00e0y l\u00e0m vi\u1ec7c li\u00ean t\u1ee5c \u0111\u1ec3 pod \u0111\u01b0\u1ee3c kh\u1edfi ch\u1ea1y \u0111\u00fang y\u00eau c\u1ea7u.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-lien-t\u1ee5c-giam-sat-va-t\u1ef1-ph\u1ee5c-h\u1ed3i\"><strong>Li\u00ean t\u1ee5c gi\u00e1m s\u00e1t v\u00e0 t\u1ef1 ph\u1ee5c h\u1ed3i<\/strong><\/h3>\n\n\n\n<p>N\u1ebfu m\u1ed9t pod b\u1ecb l\u1ed7i, node g\u1eb7p s\u1ef1 c\u1ed1, ho\u1eb7c container d\u1eebng b\u1ea5t ng\u1edd:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>kubelet b\u00e1o tr\u1ea1ng th\u00e1i v\u1ec1 Control Plane<\/li>\n\n\n\n<li>Controller Manager ph\u00e1t hi\u1ec7n s\u1ef1 ch\u00eanh l\u1ec7ch<\/li>\n\n\n\n<li>C\u00e1c controller c\u1ee5 th\u1ec3 (nh\u01b0 ReplicaSet Controller) s\u1ebd t\u1ea1o l\u1ea1i Pod, v\u00e0 Scheduler c\u00f3 th\u1ec3 ch\u1ecdn node m\u1edbi \u0111\u1ec3 g\u00e1n pod n\u00e0y<\/li>\n<\/ul>\n\n\n\n<p>Nh\u1edd c\u01a1 ch\u1ebf n\u00e0y, Kubernetes \u0111\u1ea3m b\u1ea3o \u1ee9ng d\u1ee5ng lu\u00f4n ch\u1ea1y \u0111\u00fang v\u1edbi tr\u1ea1ng th\u00e1i mong mu\u1ed1n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-add-on-va-thanh-ph\u1ea7n-m\u1edf-r\u1ed9ng-nang-cao-kh\u1ea3-nang-qu\u1ea3n-ly\"><strong>Add-on v\u00e0 th\u00e0nh ph\u1ea7n m\u1edf r\u1ed9ng n\u00e2ng cao kh\u1ea3 n\u0103ng qu\u1ea3n l\u00fd<\/strong><\/h3>\n\n\n\n<p>C\u00e1c add-on nh\u01b0 DNS, Dashboard, hay h\u1ec7 th\u1ed1ng gi\u00e1m s\u00e1t gi\u00fap ng\u01b0\u1eddi v\u1eadn h\u00e0nh quan s\u00e1t, tra c\u1ee9u log, theo d\u00f5i hi\u1ec7u n\u0103ng. Trong khi \u0111\u00f3, c\u00e1c extension nh\u01b0 CRD hay Operators gi\u00fap m\u1edf r\u1ed9ng kh\u1ea3 n\u0103ng c\u1ee7a Kubernetes m\u00e0 kh\u00f4ng ph\u1ea3i ch\u1ec9nh s\u1eeda l\u00f5i h\u1ec7 th\u1ed1ng.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>L\u01b0u \u00fd cho phi\u00ean b\u1ea3n 2025:<\/strong> C\u1ea5u tr\u00fac c\u1ed1t l\u00f5i c\u1ee7a c\u00e1c components n\u00e0y kh\u00f4ng thay \u0111\u1ed5i so v\u1edbi c\u00e1c phi\u00ean b\u1ea3n tr\u01b0\u1edbc (v\u00ed d\u1ee5: Kubernetes 1.31), nh\u01b0ng c\u00f3 c\u00e1c c\u1ea3i ti\u1ebfn nh\u1ecf v\u1ec1 hi\u1ec7u su\u1ea5t v\u00e0 t\u00edch h\u1ee3p cloud-native, theo t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cac-cau-h\u1ecfi-th\u01b0\u1eddng-g\u1eb7p-v\u1ec1-kubernetes-component\"><span class=\"ez-toc-section\" id=\"Cac_cau_hoi_thuong_gap_ve_Kubernetes_Component\"><\/span><strong>C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 Kubernetes Component<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-control-plane-va-node-khac-nhau-\u1edf-di\u1ec3m-nao\"><strong>Control Plane v\u00e0 Node kh\u00e1c nhau \u1edf \u0111i\u1ec3m n\u00e0o?<\/strong><\/h3>\n\n\n\n<p>Control Plane v\u00e0 Node kh\u00e1c nhau \u1edf vai tr\u00f2 v\u00e0 v\u1ecb tr\u00ed trong ki\u1ebfn tr\u00fac Kubernetes. Control Plane g\u1ed3m c\u00e1c Kubernetes component qu\u1ea3n l\u00fd tr\u1ea1ng th\u00e1i to\u00e0n cluster, x\u1eed l\u00fd y\u00eau c\u1ea7u v\u00e0 ra quy\u1ebft \u0111\u1ecbnh v\u1ec1 l\u1ecbch tr\u00ecnh c\u1ee7a pod.<\/p>\n\n\n\n<p>Trong khi \u0111\u00f3, Node l\u00e0 n\u01a1i c\u00e1c container th\u1ef1c t\u1ebf \u0111\u01b0\u1ee3c ch\u1ea1y, v\u1edbi nh\u1eefng kubernetes component nh\u01b0 <code>kubelet<\/code>, <code>kube-proxy<\/code> v\u00e0 <code>container runtime<\/code> ch\u1ecbu tr\u00e1ch nhi\u1ec7m v\u1eadn h\u00e0nh workload.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-co-th\u1ec3-cai-d\u1eb7t-cac-kubernetes-component-rieng-l\u1ebb-khong\"><strong>C\u00f3 th\u1ec3 c\u00e0i \u0111\u1eb7t c\u00e1c Kubernetes component ri\u00eang l\u1ebb kh\u00f4ng?<\/strong><\/h3>\n\n\n\n<p>C\u00f3 th\u1ec3 c\u00e0i \u0111\u1eb7t c\u00e1c Kubernetes component ri\u00eang l\u1ebb, nh\u01b0ng \u0111i\u1ec1u n\u00e0y th\u01b0\u1eddng ch\u1ec9 \u00e1p d\u1ee5ng cho m\u1ee5c \u0111\u00edch h\u1ecdc t\u1eadp ho\u1eb7c c\u1ea5u h\u00ecnh \u0111\u1eb7c bi\u1ec7t. Trong m\u00f4i tr\u01b0\u1eddng production, Kubernetes \u0111\u01b0\u1ee3c tri\u1ec3n khai theo b\u1ed9 \u0111\u1ea7y \u0111\u1ee7 \u0111\u1ec3 c\u00e1c Kubernetes component ph\u1ed1i h\u1ee3p nh\u1ecbp nh\u00e0ng v\u00e0 \u0111\u1ea3m b\u1ea3o t\u00ednh \u1ed5n \u0111\u1ecbnh. Vi\u1ec7c t\u00e1ch r\u1eddi qu\u00e1 nhi\u1ec1u th\u00e0nh ph\u1ea7n c\u00f3 th\u1ec3 l\u00e0m t\u0103ng r\u1ee7i ro l\u1ed7i, kh\u00f3 b\u1ea3o tr\u00ec v\u00e0 gi\u1ea3m kh\u1ea3 n\u0103ng t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u1ee7a h\u1ec7 th\u1ed1ng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-lam-sao-d\u1ec3-ki\u1ec3m-tra-cac-kubernetes-component-dang-ho\u1ea1t-d\u1ed9ng\"><strong>L\u00e0m sao \u0111\u1ec3 ki\u1ec3m tra c\u00e1c Kubernetes component \u0111ang ho\u1ea1t \u0111\u1ed9ng?<\/strong><\/h3>\n\n\n\n<p>B\u1ea1n c\u00f3 th\u1ec3 ki\u1ec3m tra c\u00e1c Kubernetes component \u0111ang ho\u1ea1t \u0111\u1ed9ng b\u1eb1ng l\u1ec7nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get pods -n kube-system&nbsp;<\/code><\/pre>\n\n\n\n<p>(L\u01b0u \u00fd: L\u1ec7nh <code>kubectl get componentstatuses<\/code> \u0111\u00e3 b\u1ecb l\u1ed7i th\u1eddi t\u1eeb Kubernetes 1.20 v\u00e0 kh\u00f4ng n\u00ean s\u1eed d\u1ee5ng n\u1eefa).\u00a0<\/p>\n\n\n\n<p>V\u1edbi t\u1eebng Node, l\u1ec7nh <code>systemctl status kubelet<\/code> ho\u1eb7c <code>journalctl<\/code> gi\u00fap ki\u1ec3m tra tr\u1ea1ng th\u00e1i chi ti\u1ebft c\u1ee7a c\u00e1c d\u1ecbch v\u1ee5 li\u00ean quan.\u00a0<\/p>\n\n\n\n<p>Vi\u1ec7c th\u01b0\u1eddng xuy\u00ean theo d\u00f5i c\u00e1c Kubernetes component gi\u00fap ph\u00e1t hi\u1ec7n l\u1ed7i s\u1edbm v\u00e0 \u0111\u1ea3m b\u1ea3o cluster v\u1eadn h\u00e0nh \u1ed5n \u0111\u1ecbnh.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-co-b\u1eaft-bu\u1ed9c-ph\u1ea3i-cai-add-on-khong\"><strong>C\u00f3 b\u1eaft bu\u1ed9c ph\u1ea3i c\u00e0i add-on kh\u00f4ng?<\/strong><\/h3>\n\n\n\n<p>Add-on kh\u00f4ng b\u1eaft bu\u1ed9c ph\u1ea3i c\u00e0i, b\u1edfi Kubernetes v\u1eabn c\u00f3 th\u1ec3 ho\u1ea1t \u0111\u1ed9ng v\u1edbi c\u00e1c Kubernetes component c\u01a1 b\u1ea3n c\u1ee7a Control Plane v\u00e0 Node. Tuy nhi\u00ean, h\u1ea7u h\u1ebft m\u00f4i tr\u01b0\u1eddng th\u1ef1c t\u1ebf \u0111\u1ec1u s\u1eed d\u1ee5ng add-on \u0111\u1ec3 b\u1ed5 sung c\u00e1c t\u00ednh n\u0103ng c\u1ea7n thi\u1ebft nh\u01b0 DNS, gi\u00e1m s\u00e1t hay giao di\u1ec7n qu\u1ea3n l\u00fd. Nh\u1edd c\u00e1c add-on, h\u1ec7 th\u1ed1ng tr\u1edf n\u00ean d\u1ec5 v\u1eadn h\u00e0nh, quan s\u00e1t r\u00f5 r\u00e0ng h\u01a1n v\u00e0 ph\u00f9 h\u1ee3p h\u01a1n v\u1edbi production.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>L\u01b0u \u00fd cho phi\u00ean b\u1ea3n 2025:<\/strong> Kh\u00f4ng c\u00f3 thay \u0111\u1ed5i l\u1edbn v\u1ec1 c\u1ea5u tr\u00fac FAQ n\u00e0y so v\u1edbi Kubernetes 1.31\/1.32, nh\u01b0ng khuy\u1ebfn ngh\u1ecb s\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 gi\u00e1m s\u00e1t nh\u01b0 Prometheus cho vi\u1ec7c ki\u1ec3m tra component t\u1ef1 \u0111\u1ed9ng h\u00f3a h\u01a1n.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-t\u1ed5ng-k\u1ebft\"><span class=\"ez-toc-section\" id=\"Tong_ket\"><\/span><strong>T\u1ed5ng k\u1ebft<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Hi\u1ec3u r\u00f5 c\u00e1ch c\u00e1c Kubernetes component ho\u1ea1t \u0111\u1ed9ng l\u00e0 b\u01b0\u1edbc quan tr\u1ecdng \u0111\u1ec3 qu\u1ea3n tr\u1ecb v\u00e0 t\u1ed1i \u01b0u h\u1ea1 t\u1ea7ng container hi\u1ec7n \u0111\u1ea1i. Khi n\u1eafm v\u1eefng ki\u1ebfn tr\u00fac, b\u1ea1n c\u00f3 th\u1ec3 tri\u1ec3n khai \u1ee9ng d\u1ee5ng linh ho\u1ea1t, t\u1ef1 \u0111\u1ed9ng h\u00f3a v\u1eadn h\u00e0nh v\u00e0 gi\u1eef h\u1ec7 th\u1ed1ng ho\u1ea1t \u0111\u1ed9ng \u1ed5n \u0111\u1ecbnh ngay c\u1ea3 \u1edf quy m\u00f4 l\u1edbn. D\u00f9 s\u1eed d\u1ee5ng Kubernetes cho d\u1ef1 \u00e1n nh\u1ecf hay m\u00f4i tr\u01b0\u1eddng production, vi\u1ec7c \u0111\u1ea7u t\u01b0 th\u1eddi gian t\u00ecm hi\u1ec3u t\u1eebng th\u00e0nh ph\u1ea7n s\u1ebd mang l\u1ea1i l\u1ee3i \u00edch l\u00e2u d\u00e0i trong kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng, b\u1ea3o m\u1eadt v\u00e0 hi\u1ec7u su\u1ea5t.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>R\u1ea5t nhi\u1ec1u ng\u01b0\u1eddi d\u00f9ng Kubernetes h\u1eb1ng ng\u00e0y nh\u01b0ng l\u1ea1i kh\u00f4ng th\u1eadt s\u1ef1 n\u1eafm r\u00f5 c\u00e1c Kubernetes component \u0111ang v\u1eadn h\u00e0nh b\u00ean d\u01b0\u1edbi. Ch\u00ednh nh\u1eefng \u201cm\u1ea3nh gh\u00e9p\u201d n\u00e0y quy\u1ebft \u0111\u1ecbnh \u0111\u1ed9 \u1ed5n \u0111\u1ecbnh, t\u1ed1c \u0111\u1ed9 v\u00e0 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng c\u1ee7a h\u1ec7 th\u1ed1ng. Khi hi\u1ec3u \u0111\u01b0\u1ee3c ch\u00fang, b\u1ea1n s\u1ebd th\u1ea5y vi\u1ec7c qu\u1ea3n l\u00fd cluster tr\u1edf n\u00ean [&hellip;]<\/p>\n","protected":false},"author":214,"featured_media":93323,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109],"tags":[],"class_list":["post-93320","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v27.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Kubernetes component: Hi\u1ec3u r\u00f5 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ea5u th\u00e0nh cluster - ITviec Blog<\/title>\n<meta name=\"description\" content=\"T\u00ecm hi\u1ec3u c\u00e1c Kubernetes component gi\u00fap h\u1ec7 th\u1ed1ng ch\u1ea1y \u1ed5n \u0111\u1ecbnh, nhanh, m\u1edf r\u1ed9ng v\u00e0 vi\u1ec7c qu\u1ea3n l\u00fd cluster tr\u1edf n\u00ean d\u1ec5 d\u00e0ng h\u01a1n r\u1ea5t nhi\u1ec1u.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kubernetes component: Hi\u1ec3u r\u00f5 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ea5u th\u00e0nh cluster\" \/>\n<meta property=\"og:description\" content=\"R\u1ea5t nhi\u1ec1u ng\u01b0\u1eddi d\u00f9ng Kubernetes h\u1eb1ng ng\u00e0y nh\u01b0ng l\u1ea1i kh\u00f4ng th\u1eadt s\u1ef1 n\u1eafm r\u00f5 c\u00e1c Kubernetes component \u0111ang v\u1eadn h\u00e0nh b\u00ean d\u01b0\u1edbi. Ch\u00ednh nh\u1eefng \u201cm\u1ea3nh gh\u00e9p\u201d n\u00e0y\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-28T15:24:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-28T15:24:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/kubernetes-component-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"421\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Hi\u1ebfu Phan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hi\u1ebfu Phan\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kubernetes component: Hi\u1ec3u r\u00f5 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ea5u th\u00e0nh cluster - ITviec Blog","description":"T\u00ecm hi\u1ec3u c\u00e1c Kubernetes component gi\u00fap h\u1ec7 th\u1ed1ng ch\u1ea1y \u1ed5n \u0111\u1ecbnh, nhanh, m\u1edf r\u1ed9ng v\u00e0 vi\u1ec7c qu\u1ea3n l\u00fd cluster tr\u1edf n\u00ean d\u1ec5 d\u00e0ng h\u01a1n r\u1ea5t nhi\u1ec1u.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/","og_locale":"vi_VN","og_type":"article","og_title":"Kubernetes component: Hi\u1ec3u r\u00f5 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ea5u th\u00e0nh cluster","og_description":"R\u1ea5t nhi\u1ec1u ng\u01b0\u1eddi d\u00f9ng Kubernetes h\u1eb1ng ng\u00e0y nh\u01b0ng l\u1ea1i kh\u00f4ng th\u1eadt s\u1ef1 n\u1eafm r\u00f5 c\u00e1c Kubernetes component \u0111ang v\u1eadn h\u00e0nh b\u00ean d\u01b0\u1edbi. Ch\u00ednh nh\u1eefng \u201cm\u1ea3nh gh\u00e9p\u201d n\u00e0y","og_url":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2025-11-28T15:24:24+00:00","article_modified_time":"2025-11-28T15:24:27+00:00","og_image":[{"width":800,"height":421,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/kubernetes-component-scaled.png","type":"image\/png"}],"author":"Hi\u1ebfu Phan","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Hi\u1ebfu Phan","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"18 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/"},"author":{"name":"Hi\u1ebfu Phan","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/d9f4dfc3237d95eb1549e5adb2ede904"},"headline":"Kubernetes component: Hi\u1ec3u r\u00f5 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ea5u th\u00e0nh cluster","datePublished":"2025-11-28T15:24:24+00:00","dateModified":"2025-11-28T15:24:27+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/"},"wordCount":4914,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/kubernetes-component-scaled.png","articleSection":["Chuy\u00ean m\u00f4n IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/","url":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/","name":"Kubernetes component: Hi\u1ec3u r\u00f5 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ea5u th\u00e0nh cluster - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/kubernetes-component-scaled.png","datePublished":"2025-11-28T15:24:24+00:00","dateModified":"2025-11-28T15:24:27+00:00","description":"T\u00ecm hi\u1ec3u c\u00e1c Kubernetes component gi\u00fap h\u1ec7 th\u1ed1ng ch\u1ea1y \u1ed5n \u0111\u1ecbnh, nhanh, m\u1edf r\u1ed9ng v\u00e0 vi\u1ec7c qu\u1ea3n l\u00fd cluster tr\u1edf n\u00ean d\u1ec5 d\u00e0ng h\u01a1n r\u1ea5t nhi\u1ec1u.","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/kubernetes-component-scaled.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/11\/kubernetes-component-scaled.png","width":800,"height":421,"caption":"Kubernetes component - itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/kubernetes-component-la-gi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Chuy\u00ean m\u00f4n IT","item":"https:\/\/itviec.com\/blog\/chuyen-mon-it\/"},{"@type":"ListItem","position":2,"name":"Kubernetes component: Hi\u1ec3u r\u00f5 c\u00e1c th\u00e0nh ph\u1ea7n c\u1ea5u th\u00e0nh cluster"}]},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/d9f4dfc3237d95eb1549e5adb2ede904","name":"Hi\u1ebfu Phan","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/phan-trung-hieu-author-e1709881921227-100x100.jpg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/phan-trung-hieu-author-e1709881921227-100x100.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/phan-trung-hieu-author-e1709881921227-100x100.jpg","caption":"Hi\u1ebfu Phan"},"url":"https:\/\/itviec.com\/blog\/author\/hieu-phan\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/214"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=93320"}],"version-history":[{"count":2,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93320\/revisions"}],"predecessor-version":[{"id":93324,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/93320\/revisions\/93324"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/93323"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=93320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=93320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=93320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}