{"id":9548,"date":"2022-09-30T14:28:20","date_gmt":"2022-09-30T07:28:20","guid":{"rendered":"https:\/\/gcloudvn.com\/?p=9548"},"modified":"2023-07-12T14:18:18","modified_gmt":"2023-07-12T07:18:18","slug":"introducing-kubernetes-control-plane-metrics-in-gke","status":"publish","type":"post","link":"https:\/\/gcloudvn.com\/en\/kienthuc\/introducing-kubernetes-control-plane-metrics-in-gke\/","title":{"rendered":"Introducing Kubernetes Control Plane metrics in GKE"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">M\u1ed9t kh\u00eda c\u1ea1nh thi\u1ebft y\u1ebfu c\u1ee7a vi\u1ec7c v\u1eadn h\u00e0nh b\u1ea5t k\u1ef3 \u1ee9ng d\u1ee5ng n\u00e0o l\u00e0 kh\u1ea3 n\u0103ng quan s\u00e1t t\u00ecnh tr\u1ea1ng v\u00e0 hi\u1ec7u su\u1ea5t c\u1ee7a \u1ee9ng d\u1ee5ng \u0111\u00f3 c\u0169ng nh\u01b0 c\u1ee7a c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng b\u00ean d\u01b0\u1edbi \u0111\u1ec3 nhanh ch\u00f3ng gi\u1ea3i quy\u1ebft c\u00e1c v\u1ea5n \u0111\u1ec1 khi ch\u00fang ph\u00e1t sinh. <a href=\"https:\/\/gcloudvn.com\/google-kubernetes-engine-gke\/\">Google Kubernetes Engine<\/a> (GKE) \u0111\u00e3 cung c\u1ea5p audit logs, operations logs v\u00e0 ch\u1ec9 s\u1ed1 c\u00f9ng v\u1edbi dashboards c\u00f3 s\u1eb5n v\u00e0 b\u00e1o c\u00e1o l\u1ed7i t\u1ef1 \u0111\u1ed9ng \u0111\u1ec3 t\u1ea1o \u0111i\u1ec1u ki\u1ec7n ch\u1ea1y c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u00e1ng tin c\u1eady tr\u00ean quy m\u00f4 l\u1edbn. S\u1eed d\u1ee5ng c\u00e1c nh\u1eadt k\u00fd v\u00e0 ch\u1ec9 s\u1ed1 n\u00e0y, Ho\u1ea1t \u0111\u1ed9ng tr\u00ean n\u1ec1n t\u1ea3ng \u0111\u00e1m m\u00e2y cung c\u1ea5p c\u00e1c c\u1ea3nh b\u00e1o, trang t\u1ed5ng quan gi\u00e1m s\u00e1t v\u00e0 Tr\u00ecnh kh\u00e1m ph\u00e1 nh\u1eadt k\u00fd \u0111\u1ec3 nhanh ch\u00f3ng ph\u00e1t hi\u1ec7n, kh\u1eafc ph\u1ee5c s\u1ef1 c\u1ed1 v\u00e0 gi\u1ea3i quy\u1ebft c\u00e1c v\u1ea5n \u0111\u1ec1.<\/span><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 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\">M\u1ee5c L\u1ee5c<\/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:\/\/gcloudvn.com\/en\/kienthuc\/introducing-kubernetes-control-plane-metrics-in-gke\/#Gioi_thieu_so_lieu_Control_Plane_Kubernetes_va_ly_do_chung_quan_trong\" >Gi\u1edbi thi\u1ec7u s\u1ed1 li\u1ec7u Control Plane Kubernetes v\u00e0 l\u00fd do ch\u00fang quan tr\u1ecdng<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/introducing-kubernetes-control-plane-metrics-in-gke\/#Hien_thi\" >Hi\u1ec3n th\u1ecb<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/introducing-kubernetes-control-plane-metrics-in-gke\/#PromQL_compatible\" >PromQL compatible<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/introducing-kubernetes-control-plane-metrics-in-gke\/#Ho_tro_cua_ben_thu_ba\" >H\u1ed7 tr\u1ee3 c\u1ee7a b\u00ean th\u1ee9 ba<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/gcloudvn.com\/en\/kienthuc\/introducing-kubernetes-control-plane-metrics-in-gke\/#Gia_ca\" >Gi\u00e1 c\u1ea3<\/a><\/li><\/ul><\/nav><\/div>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Gioi_thieu_so_lieu_Control_Plane_Kubernetes_va_ly_do_chung_quan_trong\"><\/span><b>Gi\u1edbi thi\u1ec7u s\u1ed1 li\u1ec7u Control Plane Kubernetes v\u00e0 l\u00fd do ch\u00fang quan tr\u1ecdng<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Ngo\u00e0i c\u00e1c ngu\u1ed3n d\u1eef li\u1ec7u \u0111o t\u1eeb xa hi\u1ec7n c\u00f3 n\u00e0y, Google vui m\u1eebng th\u00f4ng b\u00e1o r\u1eb1ng ch\u00fang t\u00f4i hi\u1ec7n \u0111ang c\u00f4ng b\u1ed1 c\u00e1c s\u1ed1 li\u1ec7u Kubernetes control plane, hi\u1ec7n \u0111\u00e3 c\u00f3 s\u1eb5n. V\u1edbi GKE, Google qu\u1ea3n l\u00fd ho\u00e0n to\u00e0n\u00a0 Kubernetes control plane; tuy nhi\u00ean, khi kh\u1eafc ph\u1ee5c s\u1ef1 c\u1ed1, c\u00f3 th\u1ec3 h\u1eefu \u00edch n\u1ebfu c\u00f3 quy\u1ec1n truy c\u1eadp v\u00e0o m\u1ed9t s\u1ed1 metric nh\u1ea5t \u0111\u1ecbnh do Kubernetes control plane ph\u00e1t ra.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">L\u00e0 m\u1ed9t ph\u1ea7n trong t\u1ea7m nh\u00ecn c\u1ee7a Google nh\u1eb1m l\u00e0m cho Kubernetes d\u1ec5 s\u1eed d\u1ee5ng v\u00e0 d\u1ec5 v\u1eadn h\u00e0nh h\u01a1n, c\u00e1c ch\u1ec9 s\u1ed1 Control plane n\u00e0y \u0111\u01b0\u1ee3c t\u00edch h\u1ee3p tr\u1ef1c ti\u1ebfp v\u1edbi Cloud Monitoring, v\u00ec v\u1eady b\u1ea1n kh\u00f4ng c\u1ea7n qu\u1ea3n l\u00fd b\u1ea5t k\u1ef3 b\u1ed9 s\u01b0u t\u1eadp s\u1ed1 li\u1ec7u ho\u1eb7c c\u1ea5u h\u00ecnh thu th\u1eadp d\u1eef li\u1ec7u n\u00e0o.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: \u0110\u1ec3 hi\u1ec3u t\u00ecnh tr\u1ea1ng c\u1ee7a m\u00e1y ch\u1ee7 API, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c s\u1ed1 li\u1ec7u nh\u01b0 apiserver_request_total v\u00e0 apiserver_request_duration_seconds \u0111\u1ec3 theo d\u00f5i t\u1ea3i m\u00e0 API Server \u0111ang tr\u1ea3i qua, m\u1ed9t ph\u1ea7n nh\u1ecf c\u00e1c y\u00eau c\u1ea7u API Server tr\u1ea3 v\u1ec1 l\u1ed7i v\u00e0 \u0111\u1ed9 tr\u1ec5 ph\u1ea3n h\u1ed3i cho c\u00e1c y\u00eau c\u1ea7u nh\u1eadn \u0111\u01b0\u1ee3c b\u1edfi API Server. Ngo\u00e0i ra, apiserver_storage_objects c\u00f3 th\u1ec3 r\u1ea5t h\u1eefu \u00edch \u0111\u1ec3 theo d\u00f5i \u0111\u1ed9 b\u00e3o h\u00f2a c\u1ee7a API Server, \u0111\u1eb7c bi\u1ec7t n\u1ebfu b\u1ea1n \u0111ang s\u1eed d\u1ee5ng custom controller. Chia nh\u1ecf s\u1ed1 li\u1ec7u n\u00e0y theo nh\u00e3n t\u00e0i nguy\u00ean \u0111\u1ec3 t\u00ecm ra t\u00e0i nguy\u00ean ho\u1eb7c\u00a0 Kubernetes custom controller n\u00e0o c\u00f3 v\u1ea5n \u0111\u1ec1.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Khi m\u1ed9t Pod \u0111\u01b0\u1ee3c t\u1ea1o, ban \u0111\u1ea7u n\u00f3 s\u1ebd \u0111\u01b0\u1ee3c \u0111\u1eb7t \u1edf tr\u1ea1ng th\u00e1i &#8220;pending&#8221;, cho th\u1ea5y n\u00f3 ch\u01b0a \u0111\u01b0\u1ee3c l\u00ean l\u1ecbch tr\u00ean m\u1ed9t Node. Trong m\u1ed9t cluster l\u00e0nh m\u1ea1nh, c\u00e1c Pod \u0111ang ch\u1edd x\u1eed l\u00fd \u0111\u01b0\u1ee3c l\u00ean l\u1ecbch t\u01b0\u01a1ng \u0111\u1ed1i nhanh ch\u00f3ng tr\u00ean m\u1ed9t Node, cung c\u1ea5p cho kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c c\u00e1c t\u00e0i nguy\u00ean m\u00e0 n\u00f3 c\u1ea7n \u0111\u1ec3 ch\u1ea1y. Tuy nhi\u00ean, s\u1ef1 gia t\u0103ng li\u00ean t\u1ee5c v\u1ec1 s\u1ed1 l\u01b0\u1ee3ng c\u00e1c Pod \u0111ang ch\u1edd x\u1eed l\u00fd c\u00f3 th\u1ec3 cho th\u1ea5y s\u1ef1 c\u1ed1 khi Schedule c\u00e1c Pod \u0111\u00f3, nguy\u00ean nh\u00e2n c\u00f3 th\u1ec3 do kh\u00f4ng \u0111\u1ee7 resource ho\u1eb7c c\u1ea5u h\u00ecnh kh\u00f4ng ph\u00f9 h\u1ee3p. C\u00e1c ch\u1ec9 s\u1ed1 nh\u01b0 Scheduler_pend_pods, Scheduler_schedule_attempts_total, Scheduler_preemption_attempts_total, Scheduler_preemption_victims v\u00e0 Scheduler_scheduling_attempt_duration_seconds c\u00f3 th\u1ec3 c\u1ea3nh b\u00e1o cho b\u1ea1n v\u1ec1 c\u00e1c v\u1ea5n \u0111\u1ec1 l\u1eadp l\u1ecbch ti\u1ec1m \u1ea9n, v\u00ec v\u1eady b\u1ea1n c\u00f3 th\u1ec3 nhanh ch\u00f3ng h\u00e0nh \u0111\u1ed9ng \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o c\u00e1c nh\u00f3m c\u1ee7a m\u00ecnh lu\u00f4n s\u1eb5n s\u00e0ng. S\u1eed d\u1ee5ng k\u1ebft h\u1ee3p c\u00e1c ch\u1ec9 s\u1ed1 n\u00e0y s\u1ebd gi\u00fap b\u1ea1n hi\u1ec3u r\u00f5 h\u01a1n v\u1ec1 t\u00ecnh tr\u1ea1ng c\u1ee7a c\u1ee5m c\u1ee7a b\u1ea1n. V\u00ed d\u1ee5: n\u1ebfu Scheduler_preemption_attempts_total t\u0103ng l\u00ean, \u0111i\u1ec1u \u0111\u00f3 c\u00f3 ngh\u0129a l\u00e0 c\u00f3 c\u00e1c nh\u00f3m \u01b0u ti\u00ean cao h\u01a1n c\u00f3 s\u1eb5n \u0111\u1ec3 \u0111\u01b0\u1ee3c l\u00ean l\u1ecbch v\u00e0 Schedule \u0111ang \u01b0u ti\u00ean m\u1ed9t s\u1ed1 Pod \u0111ang ch\u1ea1y. Tuy nhi\u00ean, n\u1ebfu gi\u00e1 tr\u1ecb c\u1ee7a Scheduler_pend_pods c\u0169ng \u0111ang t\u0103ng l\u00ean, th\u00ec \u0111i\u1ec1u n\u00e0y c\u00f3 th\u1ec3 cho th\u1ea5y r\u1eb1ng b\u1ea1n kh\u00f4ng c\u00f3 \u0111\u1ee7 resource \u0111\u1ec3 ph\u00e2n b\u1ed5 c\u00e1c pod c\u00f3 m\u1ee9c \u0111\u1ed9 \u01b0u ti\u00ean cao h\u01a1n.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">N\u1ebfu Kubernetes schedule v\u1eabn kh\u00f4ng th\u1ec3 t\u00ecm th\u1ea5y m\u1ed9t node ph\u00f9 h\u1ee3p cho m\u1ed9t pod, th\u00ec pod \u0111\u00f3 cu\u1ed1i c\u00f9ng s\u1ebd \u0111\u01b0\u1ee3c \u0111\u00e1nh d\u1ea5u l\u00e0 kh\u00f4ng th\u1ec3 schedule. C\u00e1c ch\u1ec9 s\u1ed1 Kubernetes control plane cung c\u1ea5p cho b\u1ea1n kh\u1ea3 n\u0103ng hi\u1ec3n th\u1ecb v\u1ec1 c\u00e1c l\u1ed7i l\u1eadp l\u1ecbch pod v\u00e0 c\u00e1c pod kh\u00f4ng th\u1ec3 l\u1eadp l\u1ecbch. T\u0103ng \u0111\u1ed9t bi\u1ebfn m\u1ed9t trong hai ngh\u0129a l\u00e0\u00a0 Kubernetes schedule kh\u00f4ng th\u1ec3 t\u00ecm th\u1ea5y m\u1ed9t node th\u00edch h\u1ee3p \u0111\u1ec3 ch\u1ea1y nhi\u1ec1u nh\u00f3m c\u1ee7a b\u1ea1n, \u0111i\u1ec1u n\u00e0y cu\u1ed1i c\u00f9ng c\u00f3 th\u1ec3 l\u00e0m gi\u1ea3m hi\u1ec7u su\u1ea5t c\u1ee7a \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n. Trong nhi\u1ec1u tr\u01b0\u1eddng h\u1ee3p, t\u1ef7 l\u1ec7 cao c\u00e1c pod kh\u00f4ng th\u1ec3 schedule s\u1ebd kh\u00f4ng t\u1ef1 gi\u1ea3i quy\u1ebft cho \u0111\u1ebfn khi b\u1ea1n th\u1ef1c hi\u1ec7n m\u1ed9t s\u1ed1 h\u00e0nh \u0111\u1ed9ng \u0111\u1ec3 gi\u1ea3i quy\u1ebft nguy\u00ean nh\u00e2n c\u01a1 b\u1ea3n. M\u1ed9t n\u01a1i t\u1ed1t \u0111\u1ea7u ti\u00ean \u0111\u1ec3 b\u1eaft \u0111\u1ea7u kh\u1eafc ph\u1ee5c s\u1ef1 c\u1ed1 l\u00e0 t\u00ecm ki\u1ebfm c\u00e1c s\u1ef1 ki\u1ec7n L\u1eadp l\u1ecbch tr\u00ecnh kh\u00f4ng th\u00e0nh c\u00f4ng g\u1ea7n \u0111\u00e2y. (N\u1ebfu b\u1ea1n \u0111\u00e3 b\u1eadt nh\u1eadt k\u00fd h\u1ec7 th\u1ed1ng GKE, th\u00ec t\u1ea5t c\u1ea3 c\u00e1c s\u1ef1 ki\u1ec7n Kubernetes \u0111\u1ec1u c\u00f3 s\u1eb5n trong Ghi nh\u1eadt k\u00fd \u0111\u00e1m m\u00e2y.) C\u00e1c s\u1ef1 ki\u1ec7n Schedule kh\u00f4ng th\u00e0nh c\u00f4ng n\u00e0y bao g\u1ed3m m\u1ed9t th\u00f4ng b\u00e1o (v\u00ed d\u1ee5: &#8220;0\/6 node kh\u1ea3 d\u1ee5ng: 6 Kh\u00f4ng \u0111\u1ee7 cpu.&#8221;) M\u00f4 t\u1ea3 r\u1ea5t h\u1eefu \u00edch ch\u00ednh x\u00e1c l\u00fd do pod kh\u00f4ng th\u1ec3 \u0111\u01b0\u1ee3c l\u00ean l\u1ecbch tr\u00ean b\u1ea5t k\u1ef3 node n\u00e0o, cung c\u1ea5p cho b\u1ea1n h\u01b0\u1edbng d\u1eabn v\u1ec1 c\u00e1ch gi\u1ea3i quy\u1ebft v\u1ea5n \u0111\u1ec1.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">V\u00ed d\u1ee5 cu\u1ed1i c\u00f9ng: N\u1ebfu b\u1ea1n th\u1ea5y vi\u1ec7c schedule c\u00f4ng vi\u1ec7c r\u1ea5t ch\u1eadm, th\u00ec m\u1ed9t nguy\u00ean nh\u00e2n c\u00f3 th\u1ec3 l\u00e0 do webhook c\u1ee7a b\u00ean th\u1ee9 ba c\u00f3 th\u1ec3 \u0111ang t\u1ea1o ra \u0111\u1ed9 tr\u1ec5 \u0111\u00e1ng k\u1ec3, khi\u1ebfn API server m\u1ea5t nhi\u1ec1u th\u1eddi gian \u0111\u1ec3 schedule c\u00f4ng vi\u1ec7c. C\u00e1c ch\u1ec9 s\u1ed1 Kubernetes control plane nh\u01b0 apiserver_admission_webhook_admission_duration_seconds c\u00f3 th\u1ec3 hi\u1ec3n th\u1ecb \u0111\u1ed9 tr\u1ec5 webhook nh\u1eadp h\u1ecdc, gi\u00fap b\u1ea1n x\u00e1c \u0111\u1ecbnh nguy\u00ean nh\u00e2n g\u1ed1c r\u1ec5 c\u1ee7a vi\u1ec7c l\u00ean schedule c\u00f4ng vi\u1ec7c ch\u1eadm v\u00e0 gi\u1ea3m thi\u1ec3u s\u1ef1 c\u1ed1.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Hien_thi\"><\/span><b>Hi\u1ec3n th\u1ecb<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Kh\u00f4ng ch\u1ec9 cung c\u1ea5p c\u00e1c ch\u1ec9 s\u1ed1 Kubernetes control plane b\u1ed5 sung n\u00e0y, Google c\u00f2n vui m\u1eebng th\u00f4ng b\u00e1o r\u1eb1ng t\u1ea5t c\u1ea3 c\u00e1c metric n\u00e0y \u0111\u1ec1u \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb trong ph\u1ea7n Kubernetes Engine c\u1ee7a Cloud Console, gi\u00fap d\u1ec5 d\u00e0ng x\u00e1c \u0111\u1ecbnh v\u00e0 \u0111i\u1ec1u tra c\u00e1c v\u1ea5n \u0111\u1ec1 trong- ng\u1eef c\u1ea3nh khi b\u1ea1n \u0111ang qu\u1ea3n l\u00fd c\u00e1c GKE cluster c\u1ee7a m\u00ecnh.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">\u0110\u1ec3 xem c\u00e1c ch\u1ec9 s\u1ed1 control plane n\u00e0y, h\u00e3y chuy\u1ec3n \u0111\u1ebfn ph\u1ea7n c\u1ee5m Kubernetes c\u1ee7a Cloud Console, ch\u1ecdn tab &#8220;Observability&#8221; v\u00e0 ch\u1ecdn &#8220;Control plane&#8221;:<\/span><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9540\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2022\/09\/control_plane_metrics_screenshot.max-2200x2200-1-1024x499.png\" alt=\"C\u00e1c ch\u1ec9 s\u1ed1 Control Plane Kubernetes trong Google Kubernetes Engine (GKE) 1\" width=\"600\" height=\"292\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2022\/09\/control_plane_metrics_screenshot.max-2200x2200-1-1024x499.png 1024w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2022\/09\/control_plane_metrics_screenshot.max-2200x2200-1-300x146.png 300w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2022\/09\/control_plane_metrics_screenshot.max-2200x2200-1-768x374.png 768w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2022\/09\/control_plane_metrics_screenshot.max-2200x2200-1-1536x748.png 1536w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2022\/09\/control_plane_metrics_screenshot.max-2200x2200-1-2048x997.png 2048w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2022\/09\/control_plane_metrics_screenshot.max-2200x2200-1-18x9.png 18w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">V\u00ec t\u1ea5t c\u1ea3 c\u00e1c ch\u1ec9 s\u1ed1 Kubernetes Control plane \u0111\u1ec1u \u0111\u01b0\u1ee3c nh\u1eadp v\u00e0o Cloud Monitoring, b\u1ea1n c\u00f3 th\u1ec3 t\u1ea1o c\u00e1c ch\u00ednh s\u00e1ch c\u1ea3nh b\u00e1o trong Cloud Alerting \u0111\u1ec3 b\u1ea1n \u0111\u01b0\u1ee3c th\u00f4ng b\u00e1o ngay khi c\u00f3 \u0111i\u1ec1u g\u00ec \u0111\u00f3 c\u1ea7n b\u1ea1n ch\u00fa \u00fd.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"PromQL_compatible\"><\/span><b>PromQL compatible<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Khi b\u1ea1n b\u1eadt ch\u1ec9 s\u1ed1 Kubernetes Control Plane cho c\u00e1c c\u1ee5m GKE c\u1ee7a m\u00ecnh, t\u1ea5t c\u1ea3 c\u00e1c ch\u1ec9 s\u1ed1 \u0111\u01b0\u1ee3c thu th\u1eadp b\u1eb1ng Google Cloud Managed Service for Prometheus. \u0110i\u1ec1u n\u00e0y c\u00f3 ngh\u0129a l\u00e0 c\u00e1c ch\u1ec9 s\u1ed1 \u0111\u01b0\u1ee3c g\u1eedi \u0111\u1ebfn Cloud Monitoring trong c\u00f9ng m\u1ed9t d\u1ef1 \u00e1n GCP nh\u01b0 c\u1ee5m Kubernetes c\u1ee7a b\u1ea1n v\u00e0 c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c truy v\u1ea5n b\u1eb1ng PromQL th\u00f4ng qua API gi\u00e1m s\u00e1t \u0111\u00e1m m\u00e2y v\u00e0 tr\u00ecnh kh\u00e1m ph\u00e1 s\u1ed1 li\u1ec7u.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: B\u1ea1n c\u00f3 th\u1ec3 theo d\u00f5i b\u1ea5t k\u1ef3 m\u1ee9c t\u0103ng \u0111\u1ed9t bi\u1ebfn n\u00e0o v\u1ec1 \u0111\u1ed9 tr\u1ec5 ph\u1ea3n h\u1ed3i c\u1ee7a m\u00e1y ch\u1ee7 API ph\u00e2n v\u1ecb th\u1ee9 99 b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng truy v\u1ea5n PromQL n\u00e0y:<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">sum by (instance, verb) (histogram_quantile (0,99, rate (apiserver_request_duration_seconds_bucket {cluster = &#8220;cluster-name&#8221;} [5m])) )<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Ho_tro_cua_ben_thu_ba\"><\/span><b>H\u1ed7 tr\u1ee3 c\u1ee7a b\u00ean th\u1ee9 ba<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">N\u1ebfu b\u1ea1n gi\u00e1m s\u00e1t c\u1ee5m GKE c\u1ee7a m\u00ecnh b\u1eb1ng c\u00e1c c\u00f4ng c\u1ee5 kh\u1ea3 n\u0103ng quan s\u00e1t ph\u1ed5 bi\u1ebfn c\u1ee7a b\u00ean th\u1ee9 ba, th\u00ec b\u1ea5t k\u1ef3 c\u00f4ng c\u1ee5 quan s\u00e1t n\u00e0o c\u1ee7a b\u00ean th\u1ee9 ba \u0111\u1ec1u c\u00f3 th\u1ec3 nh\u1eadp c\u00e1c ch\u1ec9 s\u1ed1 m\u1eb7t ph\u1eb3ng \u0111i\u1ec1u khi\u1ec3n Kubernetes n\u00e0y b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng API gi\u00e1m s\u00e1t \u0111\u00e1m m\u00e2y.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: N\u1ebfu b\u1ea1n l\u00e0 kh\u00e1ch h\u00e0ng c\u1ee7a Datadog v\u00e0 b\u1ea1n \u0111\u00e3 b\u1eadt s\u1ed1 li\u1ec7u m\u1eb7t ph\u1eb3ng \u0111i\u1ec1u khi\u1ec3n Kubernetes cho c\u1ee5m GKE c\u1ee7a m\u00ecnh, th\u00ec Datadog cung c\u1ea5p h\u00ecnh \u1ea3nh tr\u1ef1c quan n\u00e2ng cao bao g\u1ed3m c\u00e1c s\u1ed1 li\u1ec7u Kubernetes Control plane t\u1eeb API server, schedule v\u00e0 controller manager.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"Gia_ca\"><\/span><b>Gi\u00e1 c\u1ea3<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">T\u1ea5t c\u1ea3 c\u00e1c ch\u1ec9 s\u1ed1 c\u1ee7a Kubernetes Control Plane \u0111\u01b0\u1ee3c t\u00ednh theo gi\u00e1 chu\u1ea9n cho c\u00e1c ch\u1ec9 s\u1ed1 \u0111\u01b0\u1ee3c nh\u1eadp t\u1eeb Google Cloud Managed Service for Prometheus.<\/span><\/p>\n<p style=\"text-align: justify;\">N\u1ebfu doanh nghi\u1ec7p c\u1ee7a b\u1ea1n \u0111ang quan t\u00e2m t\u1edbi n\u1ec1n t\u1ea3ng\u00a0<a href=\"https:\/\/gcloudvn.com\/google-cloud-platform\/\">Google Cloud<\/a>\u00a0th\u00ec c\u00f3 th\u1ec3 k\u1ebft n\u1ed1i v\u1edbi Gimasys \u2013 \u0111\u1ed1i t\u00e1c c\u1ea5p cao c\u1ee7a Google t\u1ea1i Vi\u1ec7t Nam \u0111\u1ec3 \u0111\u01b0\u1ee3c t\u01b0 v\u1ea5n gi\u1ea3i ph\u00e1p x\u00e2y d\u1ef1ng \u1ee9ng d\u1ee5ng theo nhu c\u1ea7u ri\u00eang c\u1ee7a doanh nghi\u1ec7p nh\u00e9.\u00a0Li\u00ean h\u1ec7 ngay:<\/p>\n<ul style=\"text-align: justify;\">\n<li aria-level=\"1\"><b>Gimasys \u2013 Google Cloud Premier Partner<\/b><\/li>\n<li aria-level=\"1\"><b>Hotline:\u00a0<\/b>H\u00e0 N\u1ed9i:\u00a00987 682 505\u00a0\u2013 H\u1ed3 Ch\u00ed Minh:\u00a00974 417 099<\/li>\n<li aria-level=\"1\"><b>Email:\u00a0<\/b>gcp@gimasys.com<\/li>\n<\/ul>\n<p style=\"text-align: right;\"><strong>Ngu\u1ed3n: <a href=\"https:\/\/gcloudvn.com\/\">Gimasys<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u1ed9t kh\u00eda c\u1ea1nh thi\u1ebft y\u1ebfu c\u1ee7a vi\u1ec7c v\u1eadn h\u00e0nh b\u1ea5t k\u1ef3 \u1ee9ng d\u1ee5ng n\u00e0o l\u00e0 kh\u1ea3 n\u0103ng quan s\u00e1t t\u00ecnh tr\u1ea1ng v\u00e0 hi\u1ec7u su\u1ea5t c\u1ee7a \u1ee9ng d\u1ee5ng \u0111\u00f3 c\u0169ng nh\u01b0 c\u1ee7a c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng b\u00ean d\u01b0\u1edbi \u0111\u1ec3 nhanh ch\u00f3ng&hellip;<\/p>","protected":false},"author":2,"featured_media":9544,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1,135],"tags":[],"class_list":["post-9548","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kienthuc","category-google-cloud-platform","entry","has-media"],"_links":{"self":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/posts\/9548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/comments?post=9548"}],"version-history":[{"count":0,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/posts\/9548\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/media\/9544"}],"wp:attachment":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/media?parent=9548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/categories?post=9548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/tags?post=9548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}