{"id":11014,"date":"2023-03-16T09:40:06","date_gmt":"2023-03-16T02:40:06","guid":{"rendered":"https:\/\/gcloudvn.com\/?p=11014"},"modified":"2024-01-29T10:02:00","modified_gmt":"2024-01-29T03:02:00","slug":"5-gke-features-to-help-you-optimize-your-clusters","status":"publish","type":"post","link":"https:\/\/gcloudvn.com\/en\/kienthuc\/5-gke-features-to-help-you-optimize-your-clusters\/","title":{"rendered":"5 GKE features to help you optimize your clusters"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">In this post, Google will be discussing 5 features in GKE you can use to optimize your clusters today. To get started with testing these in GKE, check out our interactive tutorials for getting started with <\/span><span style=\"font-weight: 400;\">standard<\/span><span style=\"font-weight: 400;\"> and <\/span><span style=\"font-weight: 400;\">autopilot<\/span><span style=\"font-weight: 400;\"> clusters.\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">If you find value from running workloads on Kubernetes clusters in your organization, chances are your footprint will grow - be it through larger clusters or more clusters.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Whichever your approach, one thing is certain: you'll have more resources that you pay for. And you know what they say - more resources, more problems. The more resources you have across clusters, the more critical it becomes to make sure you're using them efficiently.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\"><a href=\"https:\/\/gcloudvn.com\/en\/google-kubernetes-engine-gke\/\">Google Kubernetes Engine<\/a> There are many built-in features that you as a cluster administrator can use to optimize your resource usage in GKE.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Let's review five of them you can get started with today.<\/span><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-10857\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/02\/Screenshot_63.png\" alt=\"Automate administration, expand data structures with Google Dataplex - BigLake 2 integration\" width=\"600\" height=\"375\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/02\/Screenshot_63.png 600w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/02\/Screenshot_63-300x188.png 300w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/02\/Screenshot_63-18x12.png 18w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_80 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\">Table of contents<\/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\/5-gke-features-to-help-you-optimize-your-clusters\/#1_%E2%80%93_Xem_che_do_cost_optimization_cua_cluster_ngay_trong_console\" >#1 - Cluster view cost optimization in the console<\/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\/5-gke-features-to-help-you-optimize-your-clusters\/#2_%E2%80%93_Phan_bo_chi_phi_GKE\" >#2 - GKE cost allocation<\/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\/5-gke-features-to-help-you-optimize-your-clusters\/#3_%E2%80%93_Toi_uu_hoa_chi_phi_workloads_tai_console\" ># 3 - Workload view cost optimization in the console<\/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\/5-gke-features-to-help-you-optimize-your-clusters\/#4_%E2%80%93_De_xuat_dieu_chinh_theo_workload_requests\" ># 4 - Recommendations for adjusting workload requests<\/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\/5-gke-features-to-help-you-optimize-your-clusters\/#_5_%E2%80%93_Du_toan_chi_phi_va_huong_dan_setup_tao_cluster\" >\u00a0# 5 - Cost estimation and cluster creation setup guides<\/a><\/li><\/ul><\/nav><\/div>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"1_%E2%80%93_Xem_che_do_cost_optimization_cua_cluster_ngay_trong_console\"><\/span><span style=\"font-size: 16px;\"><b>#1 - Cluster view cost optimization in the console<\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">If you don't know where to start with optimizing your clusters, the best place to start is looking for a big problem that stands out.  That's probably most visible by looking at a view that spans all of your clusters.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">In GKE, Google has a cluster-level cost optimization tab built into the console, rich with information that may be cumbersome to gather on your own otherwise.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">You can find this as seen in the following image:<\/span><\/p>\n<figure id=\"attachment_11016\" aria-describedby=\"caption-attachment-11016\" style=\"width: 900px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-11016 size-full\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-1.png\" alt=\"Figure 1 - Navigate to the cost optimization tab in the cloud console.\" width=\"900\" height=\"221\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-1.png 900w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-1-300x74.png 300w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-1-768x189.png 768w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-1-18x4.png 18w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><figcaption id=\"caption-attachment-11016\" class=\"wp-caption-text\">Fig. 1 - Navigating to the cost optimization tab in the cloud console<\/figcaption><\/figure>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Once you navigate to this tab, you're greeted with a time series visualization.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">For GKE standard clusters, this visualization is a time series representation that shows 3 key dimensions for CPU and Memory across all of your clusters in a project:<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Total CPU\/Memory allocatable - # of CPU or GB of memory that can be allocated to user workloads<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Total CPU\/Memory request - # of CPU or GB of memory that has been requested by user workloads<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Total CPU\/Memory usage - actual usage by # of CPU or GB of memory by user workloads<\/span><\/li>\n<\/ul>\n<figure id=\"attachment_11058\" aria-describedby=\"caption-attachment-11058\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-11058\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-2.png\" alt=\"Figure 2 - Allocatable, requested, and usage time series data on CPU or memory in all standard GKE clusters on a specified window.\" width=\"600\" height=\"279\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-2.png 512w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-2-300x139.png 300w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-2-18x8.png 18w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption id=\"caption-attachment-11058\" class=\"wp-caption-text\">Fig. 2 - Allocatable, requested, and usage time series data across CPU or memory in all standard GKE clusters over a specified window<\/figcaption><\/figure>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Analyzing these in relationship to one another can help identify answers to important optimization questions such as:<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Does Google have too much allocatable CPU and memory idle across our GKE standard clusters? If so, can Google do things like re-evaluate the machine types Google uses in node pools? This can help us bin pack the cluster, by having a higher percentage of allocatable resources allocated to Pod requests.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Are workloads running in Google's GKE standard clusters requesting too much CPU and memory that goes unused? If so, can Google do things like work with workload owners to adjust requests? This can help Google workload right-size, by setting requests to more closely reflect expected usage.<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">If you're using GKE Autopilot, this time series visualization will look slightly different, as seen in the following image:<\/span><\/p>\n<figure id=\"attachment_11059\" aria-describedby=\"caption-attachment-11059\" style=\"width: 599px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-11059\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-1-1.png\" alt=\"Figure 3 - Time series data requested and used on CPU or memory in all GKE Autopilot clusters\" width=\"599\" height=\"254\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-1-1.png 512w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-1-1-300x127.png 300w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-1-1-18x8.png 18w\" sizes=\"auto, (max-width: 599px) 100vw, 599px\" \/><figcaption id=\"caption-attachment-11059\" class=\"wp-caption-text\">Fig. 3 - Requested and usage time series data across CPU or memory in all GKE Autopilot clusters<\/figcaption><\/figure>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">In the case of GKE Autopilot clusters, Google is only able to view the Total CPU\/Memory request and the Total CPU\/Memory usage data. But nothing here is actually missing!<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">In Autopilot clusters, you only pay per Pod based on its requests; Autopilot automatically handles provisioning the infrastructure that gives us our allocatable resources based on whatever you set Pod requests to. When we trade in that ownership of node provisioning, we also trade in the control to optimize at that layer.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">For a cluster administrator, this information can be a spark to spur actions such as diving into individual clusters or meeting with workload teams to work through their requests and limits that they set for workloads. In our research, this is perhaps the most impactful area many teams optimize. We'll dive into how GKE can enable this exercise a bit further in this blog.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">When going down those paths, it helps to have financial data to quantify the impact of the optimization to the business. Gathering this info on your own can require a bit of work (for some, a lot of spreadsheets as well!), but luckily GKE has another native feature to help make this easily accessible to you.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"2_%E2%80%93_Phan_bo_chi_phi_GKE\"><\/span><span style=\"font-size: 16px;\"><b>#2 - GKE cost allocation<\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">GKE cost allocation is a native GKE feature that integrates workload usage with Cloud Billing and its reports, allowing you to see and alert on billing not only on a per-cluster level, but on a per-Kubernetes namespace or per-Kubernetes label level.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">It must be enabled on your cluster in order for it to function, so if you're working with an existing GKE cluster and want to enable it, use the following gcloud command once you have set your appropriate zone or region:<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">$ gcloud beta container clusters create $CLUSTER_NAME \\ \u2013enable-cost-allocation<\/span><\/p>\n<figure id=\"attachment_11060\" aria-describedby=\"caption-attachment-11060\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-11060\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-3.png\" alt=\"Figure 4 - Cloud Billing report for namespaces in a GKE cluster with cost allocation enabled\" width=\"600\" height=\"295\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-3.png 512w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-3-300x148.png 300w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-3-18x9.png 18w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption id=\"caption-attachment-11060\" class=\"wp-caption-text\">Fig. 4 - Cloud Billing reports on namespaces in GKE clusters with cost allocation enabled<\/figcaption><\/figure>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Without GKE cost allocation, the financial impact of a cluster and all of the different workloads it might run were a bit obfuscated. With the cluster as the deepest level of detail in billing, finding areas to optimize or even performing showback and chargeback was a challenge.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">With Namespaces and Labels bubbling up into billing reports, you can now understand the cost of the CPU\/Memory requests that workloads define in Kubernetes. A caveat - this works best when you are using Namespaces and Labels to logically define and organize teams and their workloads.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">This integration also gives the bigger picture of optimization - in that GKE does not typically live on an island! In theory, workloads in a team's namespace could be using external backing services like Cloud Memorystore that are also a key part of its usage.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Because Cloud Payments data has all the services <a href=\"https:\/\/gcloudvn.com\/en\/google-cloud-platform\/\">GCP<\/a> so Google can now filter and query across Namespaces and their respective backup services.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"3_%E2%80%93_Toi_uu_hoa_chi_phi_workloads_tai_console\"><\/span><span style=\"font-size: 16px;\"><b># 3 - Workload view cost optimization in the console<\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Once you have teams identified that you may want to work with, GKE provides a cost optimization tab at the workload level, where you can then begin to drill down and identify specific workloads that could be optimized through an exercise called \"workload right-sizing\". This is the act of making sure that Pod requests more closely reflect their expected usage.<\/span><\/p>\n<figure id=\"attachment_11061\" aria-describedby=\"caption-attachment-11061\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-11061\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-4.png\" alt=\"Figure 5 - Individual workload bar chart in the GKE cost optimization tab\" width=\"600\" height=\"216\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-4.png 512w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-4-300x108.png 300w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-4-18x6.png 18w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption id=\"caption-attachment-11061\" class=\"wp-caption-text\">Fig. 5 - Individual workload bar charts under the GKE cost optimization tab<\/figcaption><\/figure>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">As you can see here, we're given bar charts to represent the relationship of usage, requests, and limits to one another.<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Dark green: CPU\/Memory usage<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Light green: CPU\/Memory requests<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Grey: CPU\/Memory Limits<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Yellow: Scenarios in which CPU\/Memory usage exceeds requests<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">You can also hover over each individual workload bar chart to reveal a small on-screen report of this data. Similar to the cluster view cost optimization tab, you can filter down to a custom time window; we recommend viewing this data in a window greater than an hour (IE a day, week, month) to potentially uncover diurnal or weekly patterns that would otherwise be obfuscated.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">In the preceding screenshot of these charts, we can call out a few patterns that might stand out to you:<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">If we have too much light green stacked above dark green in a bar, we may have workloads that are over provisioned.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">If we have a yellow bar, we have a workload where requests are not set high enough, which can be a stability\/reliability risk - consuming additional resources on its node and potentially being throttled or OOMKilled if it hits its limits.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">If we have a bar that is all dark green, this means that we don't have requests set for a workload - which is not best practice! Set those requests.<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">With this information, it becomes easier to quickly identify workloads that need requests and limits tuned for either cost optimization or stability and reliability.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"4_%E2%80%93_De_xuat_dieu_chinh_theo_workload_requests\"><\/span><span style=\"font-size: 16px;\"><b># 4 - Recommendations for adjusting workload requests<\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">In scenarios where we need to increase or reduce CPU\/Memory requests, it is easier to know that it needs to be done than to know how it needs to be done. What should we set the requests to?<\/span><\/p>\n<figure id=\"attachment_11062\" aria-describedby=\"caption-attachment-11062\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-11062\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-5.png\" alt=\"Figure 6 - Vertical Pod Autoscaler recommendation for CPU and memory for workload\u00a0\" width=\"600\" height=\"272\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-5.png 512w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-5-300x136.png 300w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-5-18x8.png 18w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption id=\"caption-attachment-11062\" class=\"wp-caption-text\">Fig. 6 - Vertical Pod Autoscaler recommendations for CPU and Memory for a workload<\/figcaption><\/figure>\n<p style=\"text-align: justify;\"><i><span style=\"font-weight: 400;\">Fig. 6 - Vertical Pod Autoscaler recommendations for CPU and Memory for a workload\u00a0<\/span><\/i><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">GKE integrates recommendations from the Kubernetes Vertical Pod Autoscaler (VPA) directly into its workload console, currently for all deployments in your clusters. You can find this by navigating to the Actions &gt; Scale &gt; Scale compute resources menu when viewing the page for a specific workload.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">It's important to remember that these recommendations are just that - recommendations. They're based on historical usage data, so when viewing these values, it's important to work with workload owners to see if these suggestions make sense to incorporate into their respective Kubernetes manifests.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><span class=\"ez-toc-section\" id=\"_5_%E2%80%93_Du_toan_chi_phi_va_huong_dan_setup_tao_cluster\"><\/span><span style=\"font-size: 16px;\"><b>\u00a0# 5 - Cost estimation and cluster creation setup guides<\/b><\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Finally, if you're just getting started with GKE and you want to get started on the right, optimized foot, we have tooling incorporated into the GKE cluster creation page.<\/span><\/p>\n<figure id=\"attachment_11063\" aria-describedby=\"caption-attachment-11063\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-11063\" src=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-6.png\" alt=\"Figure 7 - Instructions for setting up a cluster (1) and estimating the cost of creating a cluster (2)\" width=\"600\" height=\"322\" srcset=\"https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-6.png 512w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-6-300x161.png 300w, https:\/\/gcloudvn.com\/wp-content\/uploads\/2023\/03\/unnamed-6-18x10.png 18w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption id=\"caption-attachment-11063\" class=\"wp-caption-text\">Figure 7 \u2013 Instructions for setting up a cluster (1) and estimating the cost of creating a cluster (2)<\/figcaption><\/figure>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">First, we have a setup guide that will help you create an opinionated GKE standard cluster with some things we discussed here already enabled, such as GKE cost allocation and Vertical Pod Autoscaler.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Second, we also have a cost estimation panel that, depending on the configuration of your GKE standard cluster, will show you an estimated monthly cost. This even helps you get a range of potential costs if you expect your cluster to scale up and down!<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Cloud has been and is an inevitable trend in the technology development and optimization system of enterprises. Gimasys - Premier Partner of Google in Vietnam is the unit providing, consulting the structure, designing the optimal Cloud solution for you. For technical support, you can contact Gimasys - Premier Partner of Google in Vietnam at the following information:<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Hotline: <\/b><span style=\"font-weight: 400;\">0974 417 099 (HCM) | 0987 682 505 (HN)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Email: <\/b><a href=\"mailto:gcp@gimasys.com\"><span style=\"font-weight: 400;\">gcp@gimasys.com<\/span><\/a><\/li>\n<\/ul>\n<p style=\"text-align: right;\"><b>Source: Gimasys<\/b><\/p>","protected":false},"excerpt":{"rendered":"<p>In this post, Google will discuss 5 features in GKE that you can use to optimize clusters. To start testing these in GKE, check out these directions\u2026<\/p>","protected":false},"author":2,"featured_media":11064,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1,135],"tags":[],"class_list":["post-11014","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\/11014","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=11014"}],"version-history":[{"count":0,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/posts\/11014\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/media\/11064"}],"wp:attachment":[{"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/media?parent=11014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/categories?post=11014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gcloudvn.com\/en\/wp-json\/wp\/v2\/tags?post=11014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}