{"id":75007,"date":"2020-03-22T19:42:31","date_gmt":"2020-03-22T17:42:31","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/sravnenie-stoimosti-na-managed-kubernetes-2020"},"modified":"2020-03-22T19:42:31","modified_gmt":"2020-03-22T17:42:31","slug":"sravnenie-stoimosti-na-managed-kubernetes-2020","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/sravnenie-stoimosti-na-managed-kubernetes-2020","title":{"rendered":"Cost comparison for Managed Kubernetes (2020)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Note: translation.<\/b>: American DevOps engineer Sid Palas, utilizing <noindex><a rel=\"nofollow\" href=\"https:\/\/www.reddit.com\/r\/kubernetes\/comments\/fdgblk\/google_gke_to_introduce_management_fees_by_june\/\">a recent announcement from Google Cloud<\/a><\/noindex> as a point of reference, conducted a cost comparison of Managed Kubernetes services (in various configurations) from leading global cloud providers. An additional benefit of his work was the publication of a corresponding Jupyter Notebook, allowing users (with minimal Python knowledge) to adjust the calculations to their needs.<\/i><\/p>\n<p><b>TL;DR<\/b>: Azure and Digital Ocean do not charge for the compute resources used for the control plane, making them suitable choices for deploying multiple small clusters. For launching a small number of large clusters, GKE is the best fit. Furthermore, significant savings can be achieved by using spot\/preemptible\/low-priority nodes or by 'committing' to long-term use of the same nodes (this applies to all platforms).<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><img decoding=\"async\" alt=\"Cost comparison for Managed Kubernetes (2020)\" src=\"\/wp-content\/uploads\/2020\/03\/6c67dad749abb484670a9c81402e29cf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Cluster Size (number of workers)<\/i><\/p>\n<h2>General information<\/h2>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/news.ycombinator.com\/item?id=22485625\">The recent announcement from Google Cloud<\/a><\/noindex> about the introduction of a charge of 10 cents per hour for each cluster in GKE prompted me to analyze the prices of key offerings in managed Kubernetes.<\/p>\n<p><img decoding=\"async\" alt=\"Cost comparison for Managed Kubernetes (2020)\" src=\"\/wp-content\/uploads\/2020\/03\/f29c0186fa345bbee7c2105a70845a51.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>This announcement upset some...<\/i><\/p>\n<p>The main subjects of the article are:<\/p>\n<ul>\n<li> Google Kubernetes Engine (GCP) \u2013 <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/products\/calculator\">pricing calculator<\/a><\/noindex>;<\/li>\n<li> Elastic Kubernetes Service (AWS) \u2013 <noindex><a rel=\"nofollow\" href=\"https:\/\/calculator.s3.amazonaws.com\/index.html\">pricing calculator<\/a><\/noindex>;<\/li>\n<li> Azure Kubernetes Service (Azure) \u2013 <noindex><a rel=\"nofollow\" href=\"https:\/\/azure.microsoft.com\/en-us\/pricing\/calculator\/\">pricing calculator<\/a><\/noindex>;<\/li>\n<li> Kubernetes on Digital Ocean \u2013 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.digitalocean.com\/pricing\/\">pricing page<\/a><\/noindex>.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Cost breakdown<\/h2>\n<p>\nThe total costs of using Kubernetes on each of these platforms consist of the following components:<\/p>\n<ul>\n<li> Management fee for the cluster;<\/li>\n<li> Load balancing (for Ingress);<\/li>\n<li> Computational resources (vCPU and memory) of the workers;<\/li>\n<li> Egress traffic;<\/li>\n<li> Persistent storage;<\/li>\n<li> Data processing by the load balancer.<\/li>\n<\/ul>\n<p>\nAdditionally, cloud providers offer significant discounts if a client is willing\/can use preemptible, <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/ec2\/spot\/\">spot<\/a><\/noindex> or low-priority nodes OR commits to using the same nodes for 1-3 years.<\/p>\n<p>It is important to emphasize that while cost is a good basis for comparing and assessing service providers, other factors should also be considered:<\/p>\n<ul>\n<li> Uptime (Service Level Agreement);<\/li>\n<li> The surrounding cloud ecosystem;<\/li>\n<li> Available K8s versions;<\/li>\n<li> Quality of documentation\/tools.<\/li>\n<\/ul>\n<p>\nHowever, these factors are beyond the scope of this article\/study. In <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stackrox.com\/post\/2020\/02\/eks-vs-gke-vs-aks\/\">the February blog note from StackRox<\/a><\/noindex> non-price factors for EKS, AKS, and GKE are examined in detail.<\/p>\n<h2>Jupyter Notebook<\/h2>\n<p>\nTo simplify the search for the most cost-effective solution, I developed <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Project_Jupyter#Jupyter_Notebook\">Jupyter Notebook<\/a><\/noindex>, incorporating plotly + ipywidgets. It allows comparing provider offers for different cluster sizes and service sets.<\/p>\n<p>You can practice with the live version of the notebook at Binder:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/mybinder.org\/v2\/gh\/sidpalas\/managed-kubernetes-pricing\/master?filepath=%2Fmanaged-kubernetes-price-exploration.ipynb\"><img decoding=\"async\" alt=\"Cost comparison for Managed Kubernetes (2020)\" src=\"\/wp-content\/uploads\/2020\/03\/4554a23c44b0d6c8c235308a172f66e3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i><noindex><a rel=\"nofollow\" href=\"https:\/\/mybinder.org\/v2\/gh\/sidpalas\/managed-kubernetes-pricing\/master?filepath=%2Fmanaged-kubernetes-price-exploration.ipynb\">managed-kubernetes-price-exploration.ipynb on mybinder.org<\/a><\/noindex><\/i><\/p>\n<p>Let me know if the calculations or initial estimates are incorrect (this can be done via an issue or pull request on GitHub \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/sidpalas\/managed-kubernetes-pricing\/\">here is the repository<\/a><\/noindex>).<\/p>\n<h2>Conclusions<\/h2>\n<p>\nUnfortunately, there are too many nuances to provide more specific recommendations than those included in the TL;DR paragraph at the very beginning. However, some conclusions can still be drawn:<\/p>\n<ul>\n<li> Unlike GKE and EKS, AKS and Digital Ocean do not charge for the resources of the control plane. AKS and DO are more advantageous if the architecture includes many small clusters (e.g., one cluster per <i>developer<\/i> or <i>client<\/i>).<\/li>\n<li> The slightly less expensive computing resources of GKE make it more advantageous as cluster sizes increase*.<\/li>\n<li> Using spot nodes or long-term commitments to nodes can reduce costs by more than 50%. <i>Note: Digital Ocean does not offer such discounts.<\/i><\/li>\n<li> The cost of outbound traffic in Google is higher; however, the determining factor in calculations is the cost of computing resources (unless your cluster is a source of significant outbound data).<\/li>\n<li> Selecting machine types according to CPU and memory workload needs can help avoid unnecessary charges for unutilized resources.<\/li>\n<li> Digital Ocean charges less for vCPU and more for memory compared to other platforms \u2014 this can be a decisive factor for some types of computing workloads.<\/li>\n<\/ul>\n<p>\n<i>* Note: the analysis uses data for general-purpose compute nodes <i>(general-purpose)<\/i>. These are n1 GCP Compute Engine instances, m5 AWS EC2, D2v3 Azure virtual machines, and DO droplets with dedicated CPUs. Additionally, research among other types of virtual machines (burstable, entry-level) can be conducted. At first glance, the cost of virtual machines appears to be linearly dependent on the number of vCPUs and memory size; however, I am not sure that this assumption will hold true for highly unconventional memory\/CPU ratios.<\/i><\/p>\n<p>In this article <noindex><a rel=\"nofollow\" href=\"https:\/\/www.replex.io\/blog\/the-ultimate-kubernetes-cost-guide-aws-vs-gce-vs-azure-vs-digital-ocean\">The Ultimate Kubernetes Cost Guide: AWS vs GCP vs Azure vs Digital Ocean<\/a><\/noindex>, published in 2018, a benchmark cluster with 100 vCPU cores and 400 GB of memory was used. For comparison, based on my calculations, a similar cluster on each of these platforms (for on-demand instances) would cost the following amount:<\/p>\n<ul>\n<li> AKS: 51465 USD\/year<\/li>\n<li> EKS: 43138 USD\/year<\/li>\n<li> GKE: 30870 USD\/year<\/li>\n<li> DO: 36131 USD\/year<\/li>\n<\/ul>\n<p>\nI hope this article, along with the notebook, helps you evaluate the main offerings of managed Kubernetes and\/or save on cloud infrastructure by taking advantage of discounts and other opportunities.<\/p>\n<h2>P.S. from the translator<\/h2>\n<p>\nAlso read in our blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/466659\/\">Kubecost Review for Kubernetes Cost Savings in the Cloud<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/490356\/\">Introducing Kubernetes CCM (Cloud Controller Manager) for Yandex.Cloud<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/455543\/\">Is setting up a Kubernetes cluster easy and convenient? Announcing the addon-operator<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/341760\/\">Kubernetes infrastructure as an accessible service<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/492226\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440 Sid Palas, \u043f\u043e\u043b\u044c\u0437\u0443\u044f\u0441\u044c \u043d\u0435\u0434\u0430\u0432\u043d\u0438\u043c \u0430\u043d\u043e\u043d\u0441\u043e\u043c Google Cloud \u043a\u0430\u043a \u0438\u043d\u0444\u043e\u043f\u043e\u0432\u043e\u0434\u043e\u043c, \u043f\u0440\u043e\u0432\u0451\u043b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u0443\u0441\u043b\u0443\u0433\u0438 Managed Kubernetes (\u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445) \u043e\u0442 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 \u043c\u0438\u0440\u043e\u0432\u044b\u0445 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u043b\u044e\u0441\u043e\u043c \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0442\u0430\u043b\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e Jupyter Notebook, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e (\u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u043d\u0438\u0439 Python) \u043f\u043e\u0434\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u0435 \u0440\u0430\u0441\u0447\u0451\u0442\u044b \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u043d\u0443\u0436\u0434\u044b. TL;DR: Azure \u0438 Digital Ocean \u043d\u0435 \u0432\u0437\u0438\u043c\u0430\u044e\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":75008,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-75007","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/sravnenie-stoimosti-na-managed-kubernetes-2020\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0430 Managed Kubernetes (2020) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/sravnenie-stoimosti-na-managed-kubernetes-2020\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-22T17:42:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-22T17:42:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Cost Comparison of Managed Kubernetes (2020) | ProHoster","description":"Example.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/sravnenie-stoimosti-na-managed-kubernetes-2020","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0430 Managed Kubernetes (2020) | ProHoster","og:description":"\u041f\u0440\u0438\u043c.","og:url":"https:\/\/prohoster.info\/en\/blog\/administrirovanie\/sravnenie-stoimosti-na-managed-kubernetes-2020","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-22T17:42:31+00:00","article:modified_time":"2020-03-22T17:42:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"75007","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:03:28","updated":"2022-10-01 00:21:44","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/75007","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=75007"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/75007\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/75008"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=75007"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=75007"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=75007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}