{"id":981,"date":"2022-10-07T12:19:41","date_gmt":"2022-10-07T05:19:41","guid":{"rendered":"https:\/\/longvan.net\/cong-dong\/?p=981"},"modified":"2022-10-07T12:19:41","modified_gmt":"2022-10-07T05:19:41","slug":"kubernetes-la-gi","status":"publish","type":"post","link":"https:\/\/longvan.net\/cong-dong\/kubernetes-la-gi\/","title":{"rendered":"Kubernetes l\u00e0 g\u00ec?"},"content":{"rendered":"<p><strong>I. Kubernetes l\u00e0 g\u00ec?<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><span class=\"VIiyi\" lang=\"vi\"><span class=\"JLqJ4b ChMk0b\" data-language-for-alternatives=\"vi\" data-language-to-translate-into=\"de\" data-phrase-index=\"0\" data-number-of-phrases=\"6\"><span class=\"Q4iAWc\">Kubernetes, hay g\u1ecdi t\u1eaft l\u00e0 k8s, l\u00e0 m\u1ed9t b\u1ed9 \u0111i\u1ec1u ph\u1ed1i v\u00f9ng ch\u1ee9a (container) m\u00e3 ngu\u1ed3n m\u1edf.<\/span><\/span> <span class=\"JLqJ4b ChMk0b\" data-language-for-alternatives=\"vi\" data-language-to-translate-into=\"de\" data-phrase-index=\"1\" data-number-of-phrases=\"6\"><span class=\"Q4iAWc\">Ban \u0111\u1ea7u \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi c\u00e1c k\u1ef9 s\u01b0 t\u1ea1i Google, Kubernetes gi\u1ea3i quy\u1ebft nhi\u1ec1u v\u1ea5n \u0111\u1ec1 li\u00ean quan \u0111\u1ebfn vi\u1ec7c tri\u1ec3n khai \u1ee9ng d\u1ee5ng theo ki\u1ebfn tr\u00fac microservice.<\/span><\/span> <span class=\"JLqJ4b ChMk0b\" data-language-for-alternatives=\"vi\" data-language-to-translate-into=\"de\" data-phrase-index=\"2\" data-number-of-phrases=\"6\"><span class=\"Q4iAWc\">Kubernetes t\u1ef1 \u0111\u1ed9ng x\u1eed l\u00fd vi\u1ec7c m\u1edf r\u1ed9ng quy m\u00f4, t\u1ef1 ph\u1ee5c h\u1ed3i, c\u00e2n b\u1eb1ng t\u1ea3i, c\u1eadp nh\u1eadt li\u00ean t\u1ee5c v\u00e0 c\u00e1c t\u00e1c v\u1ee5 kh\u00e1c m\u00e0 tr\u01b0\u1edbc \u0111\u00e2y v\u1eabn qu\u1ea3n l\u00fd v\u00e0 th\u1ef1c hi\u1ec7n m\u1ed9t c\u00e1ch th\u1ee7 c\u00f4ng.<\/span><\/span> <\/span><\/p>\n<p style=\"padding-left: 40px;\"><span class=\"VIiyi\" lang=\"vi\"><span class=\"JLqJ4b ChMk0b\" data-language-for-alternatives=\"vi\" data-language-to-translate-into=\"de\" data-phrase-index=\"4\" data-number-of-phrases=\"6\"><span class=\"Q4iAWc\">K\u1ec3 t\u1eeb khi Kubernetes tr\u1edf th\u00e0nh m\u1ed9t d\u1ef1 \u00e1n m\u00e3 ngu\u1ed3n m\u1edf v\u00e0 \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd b\u1edfi Cloud Native Computing Foundation v\u00e0o n\u0103m 2014, c\u1ed9ng \u0111\u1ed3ng ph\u00e1t tri\u1ec3n \u0111\u00e3 ch\u1ea5p nh\u1eadn nh\u1eefng l\u1ee3i \u00edch c\u1ee7a n\u00f3 mang l\u1ea1i trong vi\u1ec7c \u0111i\u1ec1u ph\u1ed1i c\u00e1c h\u1ec7 th\u1ed1ng tr\u00ean n\u1ec1n t\u1ea3ng container.<\/span><\/span>\u00a0<\/span><\/p>\n<p><strong>II. Kubernetes l\u00e0m \u0111\u01b0\u1ee3c g\u00ec?<\/strong><\/p>\n<p>Kubernetes c\u00f3 nhi\u1ec1u t\u00ednh n\u0103ng gi\u00fap s\u1eafp x\u1ebfp c\u00e1c container tr\u00ean nhi\u1ec1u m\u00e1y ch\u1ee7, t\u1ef1 \u0111\u1ed9ng h\u00f3a vi\u1ec7c qu\u1ea3n l\u00fd\u00a0 v\u00e0 t\u1ed1i \u0111a h\u00f3a vi\u1ec7c s\u1eed d\u1ee5ng t\u00e0i nguy\u00ean qua \u0111\u00f3 t\u0103ng hi\u1ec7u qu\u1ea3 s\u1eed d\u1ee5ng c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng. C\u00e1c t\u00ednh n\u0103ng quan tr\u1ecdng bao g\u1ed3m:<\/p>\n<ul>\n<li><b>Auto-scaling :<\/b> T\u1ef1 \u0111\u1ed9ng chia t\u1ef7 l\u1ec7 c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u01b0\u1ee3c ch\u1ee9a trong v\u00f9ng ch\u1ee9a v\u00e0 t\u00e0i nguy\u00ean c\u1ee7a ch\u00fang l\u00ean ho\u1eb7c xu\u1ed1ng d\u1ef1a tr\u00ean m\u1ee9c s\u1eed d\u1ee5ng<\/li>\n<li><strong>Qu\u1ea3n l\u00fd v\u00f2ng \u0111\u1eddi:<\/strong> T\u1ef1 \u0111\u1ed9ng h\u00f3a vi\u1ec7c tri\u1ec3n khai v\u00e0 c\u1eadp nh\u1eadt v\u1edbi kh\u1ea3 n\u0103ng:\n<ul>\n<li>Quay l\u1ea1i c\u00e1c phi\u00ean b\u1ea3n tr\u01b0\u1edbc<\/li>\n<li>T\u1ea1m d\u1eebng v\u00e0 ti\u1ebfp t\u1ee5c tri\u1ec3n khai<\/li>\n<\/ul>\n<\/li>\n<li><strong>M\u00f4 h\u00ecnh khai b\u00e1o<\/strong> <strong>(Declarative model)<\/strong>. Khai b\u00e1o m\u00f4t tr\u1ea1ng th\u00e1i mong mu\u1ed1n, sau \u0111o\u0301 Kukernetes se\u0303 duy tri\u0300 tra\u0323ng tha\u0301i \u0111o\u0301 \u01a1\u0309 ch\u00ea\u0301 \u0111\u00f4\u0323 n\u00ea\u0300n. Co\u0301 th\u00ea\u0309 kh\u00f4i phu\u0323c la\u0323i tra\u0323ng tha\u0301i tr\u00ean khi g\u0103\u0323p b\u1ea5t k\u1ef3 l\u1ed7i n\u00e0o.<\/li>\n<li><strong>Kh\u1ea3 n\u0103ng ph\u1ee5c h\u1ed3i v\u00e0 t\u1ef1 ph\u1ee5c h\u1ed3i: <\/strong>t\u01b0\u0323 \u0111\u00f4\u0323ng s\u0103\u0301p x\u00ea\u0301p, t\u1ef1 \u0111\u1ed9ng kh\u1edfi \u0111\u1ed9ng l\u1ea1i, t\u1ef1 \u0111\u1ed9ng sao ch\u00e9p v\u00e0 t\u1ef1 \u0111\u1ed9ng m\u1edf r\u1ed9ng quy m\u00f4 cung c\u1ea5p kh\u1ea3 n\u0103ng t\u1ef1 ph\u1ee5c h\u1ed3i c\u1ee7a \u1ee9ng d\u1ee5ng<\/li>\n<li><strong>L\u01b0u tr\u1eef li\u00ean t\u1ee5c<\/strong>: Kh\u1ea3 n\u0103ng g\u1eafn k\u1ebft v\u00e0 th\u00eam storage t\u01b0\u0323 \u0111\u00f4\u0323ng.<\/li>\n<li><strong>C\u00e2n b\u1eb1ng t\u1ea3i<\/strong>: Kubernetes h\u1ed7 tr\u1ee3 nhi\u1ec1u t\u00f9y ch\u1ecdn c\u00e2n b\u1eb1ng t\u1ea3i co\u0301 th\u00ea\u0309 gia\u0309i quy\u00ea\u0301t mo\u0323i y\u00eau c\u00e2\u0300u tri\u00ea\u0309n khai \u0111a da\u0323ng.<\/li>\n<li><strong>H\u1ed7 tr\u1ee3 DevSecOps:<\/strong> DevSecOps l\u00e0 m\u1ed9t ph\u01b0\u01a1ng ph\u00e1p b\u1ea3o m\u1eadt n\u00e2ng cao gi\u00fap \u0111\u01a1n gi\u1ea3n v\u00e0 t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00e1c ho\u1ea1t \u0111\u1ed9ng container tr\u00ean cloud, t\u00edch h\u1ee3p b\u1ea3o m\u1eadt trong su\u1ed1t v\u00f2ng \u0111\u1eddi c\u1ee7a container v\u00e0 cho ph\u00e9p cung c\u1ea5p ca\u0301c ph\u00e2\u0300n ph\u1ea7n m\u1ec1m an to\u00e0n, ch\u1ea5t l\u01b0\u1ee3ng cao nhanh ch\u00f3ng h\u01a1n.<\/li>\n<\/ul>\n<p>III. <strong>Ki\u1ebfn tr\u00fac Kubernetes<\/strong><\/p>\n<p>Ca\u0301c container \u0111o\u0301ng go\u0301i m\u00f4t \u01b0\u0301ng du\u0323ng \u01a1\u0309 da\u0323ng di \u0111\u00f4\u0323ng va\u0300 d\u00ea\u0309 da\u0300ng tri\u00ea\u0309n khai. Ki\u00ea\u0301n tru\u0301c cu\u0309a Kubernetes \u0111\u01b0\u01a1\u0323c thi\u00ea\u0301t k\u00ea\u0301 \u0111\u00ea\u0309 cha\u0323y ca\u0301c \u01b0\u0301ng du\u0323ng \u0111\u01b0\u01a1\u0323c container ho\u0301a. M\u00f4\u0323t cu\u0323m Kubernetes bao g\u00f4\u0300m i\u0301t nh\u00e2\u0301t m\u00f4\u0323t control plane va\u0300 i\u0301t nh\u00e2\u0301t m\u00f4\u0323t node worker (th\u01b0\u01a1\u0300ng la\u0300 m\u00f4\u0323t ma\u0301y chu\u0309 v\u00e2\u0323t ly\u0301 ho\u0103\u0323c m\u00f4\u0323t server a\u0309o ho\u0301a).<\/p>\n<p>\u0110\u01a1n vi\u0323 nho\u0309 nh\u00e2\u0301t cho m\u00f4\u0323t \u01b0\u0301ng du\u0323ng cha\u0323y trong Kubernetes la\u0300 Pod, bao g\u00f4\u0300m m\u00f4\u0323t ho\u0103\u0323c nhi\u00ea\u0300u container. Ca\u0301c Pod cha\u0323y tr\u00ean node worker.<\/p>\n<p>Ca\u0301c tha\u0300nh ph\u00e2\u0300n trong Kubernetes cu\u0323 th\u00ea\u0309 nh\u01b0 sau:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1259\" src=\"https:\/\/longvan.net\/cong-dong\/wp-content\/uploads\/2022\/10\/K8S-Components-e1664876009129.png\" alt=\"\" width=\"950\" height=\"470\" srcset=\"https:\/\/longvan.net\/cong-dong\/wp-content\/uploads\/2022\/10\/K8S-Components-e1664876009129.png 1148w, https:\/\/longvan.net\/cong-dong\/wp-content\/uploads\/2022\/10\/K8S-Components-e1664876009129-300x148.png 300w, https:\/\/longvan.net\/cong-dong\/wp-content\/uploads\/2022\/10\/K8S-Components-e1664876009129-1024x507.png 1024w, https:\/\/longvan.net\/cong-dong\/wp-content\/uploads\/2022\/10\/K8S-Components-e1664876009129-768x380.png 768w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/p>\n<ol>\n<li><strong>Control Plane<\/strong><br \/>\u0110\u00e2y la\u0300 tha\u0300nh ph\u00e2\u0300n gia\u0301m sa\u0301t, qua\u0309n ly\u0301 toa\u0300n cu\u0323m Kubernetes va\u0300 pha\u0309n h\u00f4\u0300i ca\u0301c s\u01b0\u0323 ki\u00ea\u0323n cu\u0309a cu\u0323m. Chu\u0301ng co\u0301 th\u00ea\u0309 th\u01b0\u0323c hi\u00ea\u0323n vi\u00ea\u0323c l\u00e2\u0323p li\u0323ch, m\u01a1\u0309 r\u00f4\u0323ng quy m\u00f4 ho\u0103\u0323c kh\u01a1\u0309i \u0111\u00f4\u0323ng la\u0323i m\u00f4\u0323t pod bi\u0323 l\u00f4\u0303i. Ca\u0301c tha\u0300nh ph\u00e2\u0300n trong Control Plane bao g\u00f4\u0300m:\n<ul>\n<li><strong>kube-apiserver<\/strong>: \u0111a\u0309m nh\u00e2\u0323n c\u00f4ng vi\u00ea\u0323c cu\u0309a Kubernetes API, \u0111o\u0301ng vai tro\u0300 font-end cho Kubernetes control plane<br \/>kube-apiserver \u0111\u01b0\u01a1\u0323c thi\u00ea\u0301t k\u00ea\u0301 \u0111\u00ea\u0309 thay \u0111\u00f4\u0309i quy m\u00f4 theo chi\u00eau ngang, t\u01b0\u0301c la\u0300 co\u0301 th\u00ea\u0309 tri\u00ea\u0309n khai nhi\u00ea\u0300u kube-apiserver va\u0300 cha\u0323y c\u00e2n b\u0103\u0300ng ta\u0309i.<\/li>\n<li><strong>etcd<\/strong>: m\u00f4\u0323t loa\u0323i c\u01a1 s\u01a1\u0309 d\u01b0\u0303 li\u00ea\u0323u da\u0323ng key-value co\u0301 ti\u0301nh s\u0103\u0309n sa\u0300ng cao \u0111\u01b0\u01a1\u0323c s\u01b0\u0309 du\u0323ng \u0111\u00ea\u0309 l\u01b0u d\u01b0\u0303 li\u00ea\u0323u cu\u0309a cu\u0323m Kubernetes.<\/li>\n<li><strong>kube-scheduler<\/strong>: \u0111a\u0309m nh\u00e2\u0323n c\u00f4ng vi\u00ea\u0323c theo do\u0303i ca\u0301c Pod m\u01a1\u0301i \u0111\u01b0\u01a1\u0323c ta\u0323o. D\u01b0\u0323a va\u0300o y\u00eau c\u00e2\u0300u v\u00ea\u0300 ta\u0300i nguy\u00ean, ra\u0300ng bu\u00f4\u0323c v\u00ea\u0300 ph\u00e2\u0300n c\u01b0\u0301ng, quan h\u00ea\u0323, vi\u0323 tri\u0301 d\u01b0\u0303 li\u00ea\u0323u,&#8230; kube-scheduler se\u0303 chi\u0309 \u0111i\u0323nh Node ma\u0300 Pod se\u0303 \u0111\u01b0\u01a1\u0323c tri\u00ea\u0309n khai l\u00ean.<\/li>\n<li><strong>kube-controller-manager<\/strong>: tha\u0300nh ph\u00e2\u0300n se\u0303 cha\u0323y ca\u0301c ti\u00ea\u0301n tri\u0300nh \u0111i\u00ea\u0300u khi\u00ea\u0309n. V\u00ea\u0300 m\u0103\u0323t logic, m\u00f4\u0303i b\u00f4\u0323 \u0111i\u00ea\u0300u khi\u00ea\u0309n (controller) la\u0300 m\u00f4\u0323t quy tri\u0300nh ri\u00eang bi\u00ea\u0323t, nh\u01b0ng \u0111\u00ea\u0309 gia\u0309m \u0111\u00f4\u0323 ph\u01b0\u0301c ta\u0323p, t\u00e2\u0301t ca\u0309 chu\u0301ng \u0111\u00ea\u0300u \u0111\u01b0\u01a1\u0323c bi\u00ean di\u0323ch tha\u0300nh m\u00f4\u0323t te\u0323p nhi\u0323 ph\u00e2n va\u0300 cha\u0323y trong m\u00f4\u0323t quy tri\u0300nh duy nh\u00e2\u0301t. M\u00f4\u0323t s\u00f4\u0301 loa\u0323i b\u00f4\u0323 \u0111i\u00ea\u0300u khi\u00ea\u0309n:\n<ul>\n<li><strong>Node controller<\/strong>: chi\u0323u tra\u0301ch nhi\u00ea\u0323m th\u00f4ng ba\u0301o va\u0300 pha\u0309n h\u00f4\u0300i khi ca\u0301c Node g\u0103\u0323p s\u01b0\u0323 c\u00f4\u0301.<\/li>\n<li><strong>Job controller<\/strong>: Theo d\u00f5i c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng la\u0300 ca\u0301c t\u00e1c v\u1ee5 cha\u0323y m\u1ed9t l\u1ea7n, sau \u0111\u00f3 t\u1ea1o Pod \u0111\u1ec3 ch\u1ea1y c\u00e1c t\u00e1c v\u1ee5 \u0111\u00f3 \u0111\u1ebfn khi ho\u00e0n th\u00e0nh.<\/li>\n<li><strong>Endpoints controller<\/strong>: tham gia va\u0300o \u0111\u00f4\u0301i t\u01b0\u01a1\u0323ng Endpoint (k\u00ea\u0301t n\u00f4\u0301i Service va\u0300 Pod)<\/li>\n<li><strong>Service Account &amp; Token controller<\/strong>: ta\u0323o ta\u0300i khoa\u0309n m\u0103\u0323c \u0111i\u0323nh, ca\u0301c token access API cho ca\u0301c namespace m\u01a1\u0301i.<\/li>\n<\/ul>\n<\/li>\n<li><strong>cloud-controller-manager<\/strong>: tri\u0300nh qua\u0309n ly\u0301 b\u00f4\u0323 \u0111i\u00ea\u0300u khi\u00ea\u0309n da\u0300nh ri\u00eang cho cloud. Cho phe\u0301p ba\u0323n co\u0301 th\u00ea\u0309 li\u00ean k\u00ea\u0301t cu\u0323m Kubernetes cu\u0309a mi\u0300nh v\u01a1\u0301i API cu\u0309a ca\u0301c nha\u0300 cung c\u00e2\u0301p di\u0323ch vu\u0323 Cloud.<br \/>B\u00f4\u0323 \u0111i\u00ea\u0300u khi\u00ea\u0309n co\u0301 ca\u0301c tha\u0300nh ph\u00e2\u0300n phu\u0323 thu\u00f4\u0323c nha\u0300 cung c\u00e2\u0301p di\u0323ch vu\u0323 Cloud:\n<ul>\n<li><strong>Node controller<\/strong>: \u0110\u1ec3 ki\u1ec3m tra nh\u00e0 cung c\u1ea5p \u0111\u00e1m m\u00e2y \u0111\u00ea\u0309 xa\u0301c \u0111i\u0323nh m\u00f4\u0323t Node bi\u0323 xo\u0301a sau khi kh\u00f4ng pha\u0309n h\u00f4\u0300i<\/li>\n<li><strong>Route controller<\/strong>: \u0110\u1ec3 thi\u1ebft l\u1eadp \u0111i\u0323nh tuy\u00ea\u0301n trong ha\u0323 t\u00e2\u0300ng Cloud<\/li>\n<li><strong>Service controller<\/strong>: \u0110\u1ec3 t\u1ea1o, c\u1eadp nh\u1eadt v\u00e0 x\u00f3a b\u1ed9 c\u00e2n b\u1eb1ng t\u1ea3i c\u1ee7a cu\u0309a di\u0323ch vu\u0323 Cloud.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>Node<\/strong>:<br \/>Node cha\u0323y tr\u00ean mo\u0323i node, no\u0301 cung c\u00e2\u0301p m\u00f4i tr\u01b0\u01a1\u0300ng va\u0300 duy tri\u0300 ca\u0301c pod \u0111ang cha\u0323y.\n<ul>\n<li><strong>kubelet<\/strong>: no\u0301 la\u0300 m\u00f4\u0323t agent cha\u0323y tr\u00ean mo\u0323i node trong cluster. No\u0301 \u0111a\u0309m ba\u0309o ca\u0301c container \u0111ang cha\u0323y va\u0300 hoa\u0323t \u0111\u00f4\u0323ng t\u00f4\u0301t trong Pod.<\/li>\n<li><strong>kube-proxy<\/strong>: \u0111\u00e2y la\u0300 m\u00f4\u0323t proxy cha\u0323y tr\u00ean m\u00f4\u0303i Node trong cluster.<br \/>kube-proxy duy tri\u0300 ca\u0301c quy t\u0103\u0301c ma\u0323ng tr\u00ean ca\u0301c node, ca\u0301c quy t\u0103\u0301c na\u0300y cho phe\u0301p giao ti\u00ea\u0301p \u0111\u00ea\u0301n ca\u0301c Pod t\u01b0\u0300 ma\u0323ng b\u00ean trong ho\u0103\u0323c b\u00ean ngoa\u0300i cluster Kubernetes.<\/li>\n<li><strong>container runtime<\/strong>: la\u0300m ph\u00e2\u0300n m\u00ea\u0300m chi\u0323u tra\u0301ch nhi\u00ea\u0323m cha\u0323y ca\u0301c container.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Ca\u0301c tha\u0300nh ph\u00e2\u0300n h\u00f4\u0303 tr\u01a1\u0323 kha\u0301c<\/strong>: ca\u0301c thanh ph\u00e2\u0300n na\u0300y s\u01b0\u0309 du\u0323ng ta\u0300i nguy\u00ean Kubernetes (DaemonSet, Deployment, v.v.) \u0111\u1ec3 tri\u1ec3n khai c\u00e1c t\u00ednh n\u0103ng h\u00f4\u0303 tr\u01a1\u0323 cho cu\u0323m, m\u00f4\u0323t s\u00f4\u0301 tha\u0300nh ph\u00e2\u0300n ti\u00eau bi\u00ea\u0309u bao g\u00f4\u0300m:\n<ul>\n<li><strong>DNS<\/strong>: t\u00e2\u0301t ca\u0309 ca\u0301c cluster Kubernetes \u0111\u00ea\u0300u pha\u0309i co\u0301 cu\u0323m DNS, cu\u0300ng v\u01a1\u0301i ca\u0301c ma\u0301y chu\u0309 DNS kha\u0301c trong s\u01b0\u0309 du\u0323ng trong ha\u0323 t\u00e2\u0300ng, no\u0301 se\u0303 phu\u0323c vu\u0323 ca\u0301c ba\u0309n ghi DNS cho ca\u0301c di\u0323ch vu\u0323 cha\u0323y tr\u00ean Kubernetes.<\/li>\n<li><strong>Web UI (Dashboard)<\/strong>: <span class=\"JLqJ4b ChMk0b\"><span class=\"Q4iAWc\">m\u00f4\u0323t ba\u0309ng \u0111i\u00ea\u0300u khi\u00ea\u0309n tr\u00ean n\u00ea\u0300n web h\u00f4\u0303 tr\u01a1\u0323 ng\u01b0\u01a1\u0300i du\u0300ng qua\u0309n ly\u0301 va\u0300 kh\u0103\u0301c phu\u0323c s\u01b0\u0309 c\u00f4\u0301 tr\u00ean cluster Kubernetes.<\/span><\/span><\/li>\n<li><strong>Container Resource Monitoring<\/strong>: ghi lai s\u00f4\u0301 li\u00ea\u0323u gia\u0301m sa\u0301t ca\u0301c container theo chu\u00f4\u0303i th\u01a1\u0300i gian va\u0300o c\u01a1 s\u01a1\u0309 d\u01b0\u0303 li\u00ea\u0323u trung t\u00e2m, \u0111\u00f4\u0300ng th\u01a1\u0300i cung c\u00e2\u0301p giao di\u00ea\u0323n ng\u01b0\u01a1\u0300i du\u0300ng \u0111\u00ea\u0309 xem d\u01b0\u0303 li\u00ea\u0323u \u0111o\u0301.<\/li>\n<li><strong>Cluster-lever loggging<\/strong>: chi\u0323u tra\u0301ch nhi\u00ea\u0323m l\u01b0u log cu\u0309a container va\u0300o kho log trung t\u00e2m ke\u0300m v\u01a1\u0301i giao di\u00ea\u0323n ti\u0300m ki\u00ea\u0301m va\u0300 duy\u00ea\u0323t log.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>T\u00e0i li\u1ec7u tham kh\u1ea3o:<br \/>https:\/\/kubernetes.io\/docs\/concepts\/overview\/components\/<br \/>https:\/\/www.vmware.com\/topics\/glossary\/content\/kubernetes.html<\/p>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I. Kubernetes l\u00e0 g\u00ec? Kubernetes, hay g\u1ecdi t\u1eaft l\u00e0 k8s, l\u00e0 m\u1ed9t b\u1ed9 \u0111i\u1ec1u ph\u1ed1i v\u00f9ng ch\u1ee9a (container) m\u00e3 ngu\u1ed3n m\u1edf. Ban \u0111\u1ea7u \u0111\u01b0\u1ee3c ph\u00e1t tri\u1ec3n b\u1edfi c\u00e1c k\u1ef9 s\u01b0 t\u1ea1i Google, Kubernetes gi\u1ea3i quy\u1ebft nhi\u1ec1u v\u1ea5n \u0111\u1ec1 li\u00ean quan \u0111\u1ebfn vi\u1ec7c tri\u1ec3n khai \u1ee9ng d\u1ee5ng theo ki\u1ebfn tr\u00fac microservice. Kubernetes t\u1ef1 \u0111\u1ed9ng x\u1eed l\u00fd [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_oasis_is_in_workflow":0,"_oasis_original":0,"footnotes":""},"categories":[4],"tags":[123,105,124,125,100,121,122],"class_list":["post-981","post","type-post","status-publish","format-standard","hentry","category-linux","tag-control-plane","tag-k8s","tag-k8s-etcd","tag-kube-controller","tag-kubernetes","tag-kubernetes-components","tag-node"],"_links":{"self":[{"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/posts\/981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/comments?post=981"}],"version-history":[{"count":8,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/posts\/981\/revisions"}],"predecessor-version":[{"id":1270,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/posts\/981\/revisions\/1270"}],"wp:attachment":[{"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/media?parent=981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/categories?post=981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/longvan.net\/cong-dong\/wp-json\/wp\/v2\/tags?post=981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}