{"id":1330,"date":"2024-04-07T03:57:07","date_gmt":"2024-04-06T18:57:07","guid":{"rendered":"https:\/\/www.gyuroot.com\/wordpress\/?p=1330"},"modified":"2024-04-14T00:41:11","modified_gmt":"2024-04-13T15:41:11","slug":"05-eks-autoscaling","status":"publish","type":"post","link":"https:\/\/www.gyuroot.com\/wordpress\/?p=1330","title":{"rendered":"05-[AEWS]-EKS Autoscaling"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_63 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >\ubaa9\ucc28<\/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-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#HPAHorizontal_Pod_Autoscaler\" title=\"HPA(Horizontal Pod Autoscaler)\">HPA(Horizontal Pod Autoscaler)<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#HPA_%EC%A0%81%EC%9A%A9_%EB%B0%8F_%EC%8B%A4%EC%8A%B5\" title=\"HPA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5\">HPA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#KEDAKubernetes_based_Event_Driven_Autoscaler\" title=\"KEDA(Kubernetes based Event Driven Autoscaler)\">KEDA(Kubernetes based Event Driven Autoscaler)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#VPAVerical_Pod_Autoscaler\" title=\"VPA(Verical Pod Autoscaler)\">VPA(Verical Pod Autoscaler)<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#VPA_%EC%A0%81%EC%9A%A9_%EB%B0%8F_%EC%8B%A4%EC%8A%B5\" title=\"VPA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5\">VPA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#KRRprometheus-based_Kubernetes_Resource_Recommendations\" title=\"KRR(prometheus-based Kubernetes Resource Recommendations)\">KRR(prometheus-based Kubernetes Resource Recommendations)<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#VPA_vs_KRR\" title=\"VPA vs KRR\">VPA vs KRR<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#CACluster_Autoscaling\" title=\"CA(Cluster Autoscaling)\">CA(Cluster Autoscaling)<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#CA_%EC%A0%81%EC%9A%A9_%EB%B0%8F_%EC%8B%A4%EC%8A%B5\" title=\"CA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5\">CA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#CPACluster_Proportional_Autoscaler\" title=\"CPA(Cluster Proportional Autoscaler)\">CPA(Cluster Proportional Autoscaler)<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#CPA_%EC%A0%81%EC%9A%A9_%EB%B0%8F_%EC%8B%A4%EC%8A%B5\" title=\"CPA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5\">CPA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#KarpenterK8S_Native_AutoScaler\" title=\"Karpenter(K8S Native AutoScaler)\">Karpenter(K8S Native AutoScaler)<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#Karpenter_%EB%85%B8%EB%93%9C_%EC%83%9D%EC%84%B1_%EC%9B%90%EB%A6%AC\" title=\"Karpenter \ub178\ub4dc \uc0dd\uc131 \uc6d0\ub9ac\">Karpenter \ub178\ub4dc \uc0dd\uc131 \uc6d0\ub9ac<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#Karpenter_%EC%A0%81%EC%9A%A9_%EB%B0%8F_%EC%8B%A4%EC%8A%B5\" title=\"Karpenter \uc801\uc6a9 \ubc0f \uc2e4\uc2b5\">Karpenter \uc801\uc6a9 \ubc0f \uc2e4\uc2b5<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#Create_NodePool%EA%B5%AC_Provisioner\" title=\"Create NodePool(\uad6c Provisioner)\">Create NodePool(\uad6c Provisioner)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\/#Disruption_%EA%B5%AC_Consolidation\" title=\"Disruption (\uad6c Consolidation)\">Disruption (\uad6c Consolidation)<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n<pre class=\"wp-block-preformatted\">\uc624\ud1a0\uc2a4\ucf00\uc77c\ub9c1\uc740 \ud074\ub77c\uc6b0\ub4dc \ucef4\ud4e8\ud305\uc5d0\uc11c \uc790\ub3d9\uc73c\ub85c \uc11c\ubc84 \ub610\ub294 \ucef4\ud4e8\ud305 \ub9ac\uc18c\uc2a4\ub97c \ub298\ub9ac\uac70\ub098 \uc904\uc774\ub294 \uae30\uc220\uc785\ub2c8\ub2e4. \uc774 \uae30\uc220\uc740 \ud2b8\ub798\ud53d\uc774\ub098 \uc791\uc5c5 \ubd80\ud558\uac00 \uc99d\uac00 \ub610\ub294 \uac10\uc18c\ud560 \ub54c \uc790\uc6d0\uc744 \ub3d9\uc801\uc73c\ub85c \uc870\uc815\ud558\uc5ec \uc131\ub2a5\uc744 \ucd5c\uc801\ud654\ud558\uace0 \ube44\uc6a9\uc744 \uc808\uac10\ud569\ub2c8\ub2e4. \uc8fc\uc694 \ud074\ub77c\uc6b0\ub4dc \uc11c\ube44\uc2a4 \uc81c\uacf5\uc5c5\uccb4\ub4e4\uc740 \uc790\uccb4\uc801\uc778 \uc624\ud1a0\uc2a4\ucf00\uc77c\ub9c1 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, \ub2e4\uc591\ud55c \uc124\uc815\uc744 \ud1b5\ud574 \uc0ac\uc6a9\uc790\uac00 \uc870\uc808\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158, \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc544\ud0a4\ud14d\ucc98, \ub370\uc774\ud130 \ucc98\ub9ac \uc791\uc5c5 \ub4f1 \ub2e4\uc591\ud55c \ud658\uacbd\uc5d0\uc11c \uc720\uc6a9\ud558\uac8c \ud65c\uc6a9\ub429\ub2c8\ub2e4.<\/pre>\n\n\n\n<p>Amazon Elastic Kubernetes Service (EKS)\uc5d0\uc11c Autoscaling\uc744 \ud558\ub294 \uc774\uc720\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ol>\n<li><strong>\uc790\uc6d0 \ucd5c\uc801\ud654<\/strong>: Kubernetes \ud074\ub7ec\uc2a4\ud130\ub294 \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc694\uad6c\uc5d0 \ub530\ub77c \uc790\ub3d9\uc73c\ub85c \uc2a4\ucf00\uc77c\ub9c1\ub429\ub2c8\ub2e4. \uc694\uccad\uc774 \uc99d\uac00\ud558\uba74 \uc790\ub3d9\uc73c\ub85c \ud074\ub7ec\uc2a4\ud130\uc5d0 \ub354 \ub9ce\uc740 \uc778\uc2a4\ud134\uc2a4\ub97c \ubc30\ud3ec\ud558\uc5ec \uc131\ub2a5\uc744 \uc720\uc9c0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uc790\uc6d0\uc744 \ud6a8\uc728\uc801\uc73c\ub85c \uc0ac\uc6a9\ud558\uace0 \ube44\uc6a9\uc744 \uc808\uac10\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\ubd80\ud558 \uad00\ub9ac<\/strong>: Autoscaling\uc740 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ubd80\ud558\ub97c \uad00\ub9ac\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4. \ud2b8\ub798\ud53d\uc774 \uc99d\uac00\ud558\uba74 \ud074\ub7ec\uc2a4\ud130\ub294 \uc790\ub3d9\uc73c\ub85c \ud655\uc7a5\ud558\uc5ec \ucd94\uac00 \uc694\uccad\uc744 \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubc18\ub300\ub85c \ud2b8\ub798\ud53d\uc774 \uac10\uc18c\ud558\uba74 \uc790\uc6d0\uc744 \ucd95\uc18c\ud558\uc5ec \ube44\uc6a9\uc744 \uc808\uac10\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\uace0\uac00\uc6a9\uc131 \ubc0f \uc2e0\ub8b0\uc131<\/strong>: Autoscaling\uc740 \uace0\uac00\uc6a9\uc131 \ubc0f \uc2e0\ub8b0\uc131\uc744 \ud5a5\uc0c1\uc2dc\ud0b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \uc11c\ube44\uc2a4\uc5d0 \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud558\uba74 Autoscaling\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc601\ud5a5\uc744 \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c, \ud074\ub7ec\uc2a4\ud130\uc5d0 \uc7a5\uc560\uac00 \uc788\ub294 \uacbd\uc6b0 \uc790\ub3d9\uc73c\ub85c \uc0c8\ub85c\uc6b4 \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud558\uc5ec \uc2dc\uc2a4\ud15c\uc758 \uac00\uc6a9\uc131\uc744 \uc720\uc9c0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\uc218\ub3d9 \uac1c\uc785 \uac10\uc18c<\/strong>: Autoscaling\uc744 \uc0ac\uc6a9\ud558\uba74 \uc6b4\uc601\uc790\uac00 \uc218\ub3d9\uc73c\ub85c \uc778\uc2a4\ud134\uc2a4\ub97c \ucd94\uac00\ud558\uac70\ub098 \uc81c\uac70\ud560 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uad00\ub9ac \uc791\uc5c5\uc744 \uac10\uc18c\uc2dc\ud0a4\uace0 \uc2dc\uc2a4\ud15c\uc744 \uc790\ub3d9\ud654\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4.<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"HPAHorizontal_Pod_Autoscaler\"><\/span>HPA(Horizontal Pod Autoscaler)<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-3\">\n<div class=\"wp-block-column is-layout-flow\">\n<p>HPA(Horizontal Pod Autoscaler)\ub294 CPU \uc0ac\uc6a9\ub960\uc5d0 \ub530\ub77c \ub808\ud50c\ub9ac\ucf00\uc774\uc158 \ucee8\ud2b8\ub864\ub7ec, \ub514\ud50c\ub85c\uc774\uba3c\ud2b8, \ub808\ud50c\ub9ac\uce74\uc14b \ub610\ub294 \uc2a4\ud14c\uc774\ud2b8\ud480\uc14b \ub0b4\uc758 \ud30c\ub4dc \uc218\ub97c \uc99d\uac00 \ub610\ub294 \uac10\uc18c\uc2dc\ud0a4\ub294 \ud615\ud0dc\uc758 \uc790\ub3d9 \uc2a4\ucf00\uc77c\ub9c1\uc785\ub2c8\ub2e4. \uc2a4\ucf00\uc77c\ub9c1\uc740 \ub2e8\uc77c \ucee8\ud14c\uc774\ub108\uc5d0 \ud560\ub2f9\ub41c \ub9ac\uc18c\uc2a4\uac00 \uc544\ub2cc \uc778\uc2a4\ud134\uc2a4 \uc218\ub97c \ubcc0\uacbd\ud558\ubbc0\ub85c \uc218\ud3c9\uc801\uc778 \uc2a4\ucf00\uc77c\ub9c1\uc73c\ub85c \uac04\uc8fc\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p>HPA\ub294 \uc0ac\uc6a9\uc790 \uc815\uc758 \ub610\ub294 \uc678\ubd80\uc5d0\uc11c \uc81c\uacf5\ub41c \uba54\ud2b8\ub9ad\uc744 \uae30\ubc18\uc73c\ub85c \uc2a4\ucf00\uc77c\ub9c1 \uacb0\uc815\uc744 \ub0b4\ub9b4 \uc218 \uc788\uc73c\uba70, \ucd08\uae30 \uad6c\uc131 \uc774\ud6c4\uc5d0\ub294 \uc790\ub3d9\uc73c\ub85c \uc791\ub3d9\ud569\ub2c8\ub2e4. \ud544\uc694\ud55c \uac83\uc740 \ucd5c\uc18c \ubc0f \ucd5c\ub300 \ub808\ud50c\ub9ac\uce74 \uc218\ub97c \uc815\uc758\ud558\ub294 \uac83\ubfd0\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ud55c\ubc88 \uc124\uc815\ub41c \ud6c4\uc5d0\ub294, Horizontal Pod Autoscaler \ucee8\ud2b8\ub864\ub7ec\uac00 \uba54\ud2b8\ub9ad\uc744 \ud655\uc778\ud558\uace0 \ub808\ud50c\ub9ac\uce74\ub97c \uc801\uc808\ud558\uac8c \ud655\uc7a5 \ub610\ub294 \ucd95\uc18c\ud569\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c HPA\ub294 <strong>15\ucd08\ub9c8\ub2e4 \uba54\ud2b8\ub9ad\uc744 \ud655\uc778<\/strong>\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uba54\ud2b8\ub9ad\uc744 \ud655\uc778\ud558\uae30 \uc704\ud574\uc11c HPA\ub294 Metrics Server\ub77c\ub294 \ub2e4\ub978 <strong>Kubernetes \ub9ac\uc18c\uc2a4\uc5d0 \uc758\uc874<\/strong>\ud569\ub2c8\ub2e4. Metrics Server\ub294 \ub178\ub4dc \ubc0f \ud30c\ub4dc\uc5d0 \ub300\ud55c CPU \ubc0f \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uacfc \uac19\uc740 \ud45c\uc900 \ub9ac\uc18c\uc2a4 \uc0ac\uc6a9 \uce21\uc815 \ub370\uc774\ud130\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \ub610\ud55c \ud2b8\ub798\ud53d \uc591\uc744 \ub098\ud0c0\ub0b4\ub294 \ub85c\ub4dc \ubc38\ub7f0\uc11c\uc758 \ud65c\uc131 \uc138\uc158 \uc218\uc640 \uac19\uc740 \uc0ac\uc6a9\uc790 \uc815\uc758 \uba54\ud2b8\ub9ad(\uc678\ubd80 \uc18c\uc2a4\uc5d0\uc11c \uc218\uc9d1 \uac00\ub2a5)\uc5d0\ub3c4 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p><strong>\ub2e8\uc810<\/strong><\/p>\n\n\n\n<ul>\n<li>HPA\uc758 \uac00\uc7a5 \uc798 \uc54c\ub824\uc9c4 \uc81c\ud55c \uc0ac\ud56d \uc911 \ud558\ub098\ub294 HPA\uc640 \ud568\uaed8 \uc791\ub3d9\ud558\uc9c0 \uc54a\ub294\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4.<a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/controllers\/daemonset\/\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a>\ub370\ubaac\uc138\ud2b8.<\/li>\n\n\n\n<li>Pod\uc5d0 CPU \ubc0f \uba54\ubaa8\ub9ac \uc81c\ud55c\uc744 \ud6a8\uc728\uc801\uc73c\ub85c \uc124\uc815&nbsp;\ud558\uc9c0 \uc54a\uc73c\uba74&nbsp;Pod\uac00 \uc790\uc8fc \uc885\ub8cc\ub418\uac70\ub098 \ubc18\ub300\ub85c \ub9ac\uc18c\uc2a4\uac00 \ub0ad\ube44\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ud074\ub7ec\uc2a4\ud130\uc758 \uc6a9\ub7c9\uc774 \ubd80\uc871\ud558\uba74 \uc0c8 \ub178\ub4dc\uac00 \ud074\ub7ec\uc2a4\ud130\uc5d0 \ucd94\uac00\ub420 \ub54c\uae4c\uc9c0 HPA\ub97c \ud655\uc7a5\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.&nbsp;<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1686\" height=\"957\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/EKS_HPA-3.gif\" alt=\"\" class=\"wp-image-1373\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"HPA_%EC%A0%81%EC%9A%A9_%EB%B0%8F_%EC%8B%A4%EC%8A%B5\"><\/span>HPA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10\nkubectl describe hpa\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">kubectl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">autoscale<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">deployment<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">php-apache<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--cpu-percent=50<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--min=1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--max=10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">kubectl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">describe<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">hpa<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1836\" height=\"986\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/EKS_HPA_practice-1.gif\" alt=\"\" class=\"wp-image-1379\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"KEDAKubernetes_based_Event_Driven_Autoscaler\"><\/span>KEDA(Kubernetes based Event Driven Autoscaler)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">\uae30\uc874\uc758 <strong>HPA<\/strong>(Horizontal Pod Autoscaler)\ub294 \ub9ac\uc18c\uc2a4(CPU, Memory) \uba54\ud2b8\ub9ad\uc744 \uae30\ubc18\uc73c\ub85c \uc2a4\ucf00\uc77c \uc5ec\ubd80\ub97c \uacb0\uc815\ud558\uac8c \ub429\ub2c8\ub2e4.\n\ubc18\uba74\uc5d0 <strong>KEDA<\/strong>\ub294&nbsp;<strong>\ud2b9\uc815 \uc774\ubca4\ud2b8\ub97c \uae30\ubc18\uc73c\ub85c \uc2a4\ucf00\uc77c \uc5ec\ubd80\ub97c \uacb0\uc815<\/strong>\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\uc608\ub97c \ub4e4\uc5b4 airflow\ub294 metadb\ub97c \ud1b5\ud574 \ud604\uc7ac \uc2e4\ud589 \uc911\uc774\uac70\ub098 \ub300\uae30 \uc911\uc778 task\uac00 \uc5bc\ub9c8\ub098 \uc874\uc7ac\ud558\ub294\uc9c0 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n\uc774\ub7ec\ud55c \uc774\ubca4\ud2b8\ub97c \ud65c\uc6a9\ud558\uc5ec worker\uc758 scale\uc744 \uacb0\uc815\ud55c\ub2e4\uba74 queue\uc5d0 task\uac00 \ub9ce\uc774 \ucd94\uac00\ub418\ub294 \uc2dc\uc810\uc5d0 \ub354 \ube60\ub974\uac8c \ud655\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"VPAVerical_Pod_Autoscaler\"><\/span>VPA(Verical Pod Autoscaler)<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-6\">\n<div class=\"wp-block-column is-layout-flow\">\n<ol>\n<li>VPA Recommender\ub294 \uba54\ud2b8\ub9ad \uc11c\ubc84\uc5d0\uc11c VPA \uad6c\uc131 \ubc0f \ub9ac\uc18c\uc2a4 \uc0ac\uc6a9\ub960 \uba54\ud2b8\ub9ad\uc744 \uc77d\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA Recommender\ub294 pod \ub9ac\uc18c\uc2a4 \uad8c\uc7a5 \uc0ac\ud56d\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA Updater\ub294 pod \ub9ac\uc18c\uc2a4 \uad8c\uc7a5 \uc0ac\ud56d\uc744 \uc77d\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA Updater\uac00 pod \uc885\ub8cc\ub97c \uc2dc\uc791\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>Deployment\ub294 pod\uac00 \uc885\ub8cc\ub418\uc5c8\uc74c\uc744 \uc778\uc2dd\ud558\uace0 \ubcf5\uc81c\ubcf8 \uad6c\uc131\uacfc \uc77c\uce58\ud558\ub3c4\ub85d pod\ub97c \ub2e4\uc2dc \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>pod\uac00 \uc7ac\uc0dd\uc131 \ud504\ub85c\uc138\uc2a4\uc5d0 \uc788\uc744 \ub54c VPA \uc2b9\uc778 \ucee8\ud2b8\ub864\ub7ec\ub294 pod \ub9ac\uc18c\uc2a4 \uad8c\uc7a5 \uc0ac\ud56d\uc744 \ubc1b\uc2b5\ub2c8\ub2e4. Kubernetes\ub294 \uc2e4\ud589 \uc911\uc778 Pod\uc758 \ub9ac\uc18c\uc2a4 \uc81c\ud55c\uc744 \ub3d9\uc801\uc73c\ub85c \ubcc0\uacbd\ud558\ub294 \uac83\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc73c\ubbc0\ub85c VPA\ub294 \uae30\uc874 Pod\ub97c \uc0c8\ub85c\uc6b4 \uc81c\ud55c\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc624\ub798\ub41c \uc81c\ud55c\uc744 \uc0ac\uc6a9\ud558\ub294 Pod\ub97c \uc885\ub8cc\ud569\ub2c8\ub2e4. Pod\uc758 \ucee8\ud2b8\ub864\ub7ec\uac00 Kubernetes API \uc11c\ube44\uc2a4\uc5d0\uc11c \uad50\uccb4\ub97c \uc694\uccad\ud558\uba74 VPA Admission Cotroller\ub294 \uc5c5\ub370\uc774\ud2b8\ub41c \ub9ac\uc18c\uc2a4 \uc694\uccad\uacfc \uc81c\ud55c \uac12\uc744 \uc0c8 Pod\uc758 \uc0ac\uc591\uc5d0 \uc0bd\uc785\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ub9c8\uc9c0\ub9c9\uc73c\ub85c VPA Admission Controller\ub294 pod\uc5d0 \ub300\ud55c \uad8c\uc7a5 \uc0ac\ud56d\uc744 \ub36e\uc5b4\uc501\ub2c8\ub2e4. <\/li>\n<\/ol>\n\n\n\n<p><strong>\ub2e8\uc810<\/strong><\/p>\n\n\n\n<ul>\n<li>VPA\uc640 \ub3d9\uc77c\ud55c \ub9ac\uc18c\uc2a4 \uba54\ud2b8\ub9ad(\uc608: CPU \ubc0f \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9)\uc744 \uae30\ubc18\uc73c\ub85c \uc2a4\ucf00\uc77c\ub9c1\ud558\ub294 \uc218\ud3c9\uc801\uc778 \ud30c\ub4dc \uc624\ud1a0 \uc2a4\ucf00\uc77c\ub7ec(HPA)\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud560\uc218\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \uba54\ud2b8\ub9ad(CPU\/\uba54\ubaa8\ub9ac)\uc774 \uc815\uc758\ub41c \uc784\uacc4\uac12\uc5d0 \ub3c4\ub2ec\ud558\uba74 VPA\uc640 HPA \ubaa8\ub450\uc5d0\uc11c \ub3d9\uc2dc\uc5d0 \uc2a4\ucf00\uc77c\ub9c1 \uc774\ubca4\ud2b8\uac00 \ubc1c\uc0dd\ud558\uba70,  \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA\ub294 \ud074\ub7ec\uc2a4\ud130\uc5d0 \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ub9ac\uc18c\uc2a4\ubcf4\ub2e4 \ub354 \ub9ce\uc740 \ub9ac\uc18c\uc2a4\ub97c \uad8c\uc7a5\ud560 \uc218 \uc788\uc73c\uba70, \uc774\ub85c \uc778\ud574 \ud30c\ub4dc\uac00 \ub178\ub4dc\uc5d0 \ud560\ub2f9\ub418\uc9c0 \uc54a\uace0(\ub9ac\uc18c\uc2a4\uac00 \ubd80\uc871\ud558\uc5ec) \uc2e4\ud589\ub418\uc9c0 \uc54a\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc81c\ud55c\uc744 \uadf9\ubcf5\ud558\uae30 \uc704\ud574, \ucd5c\ub300 \uc0ac\uc6a9 \uac00\ub2a5\ud55c \ub9ac\uc18c\uc2a4\uc5d0 \ub300\ud55c LimitRange\ub97c \uc124\uc815\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c\ud558\uba74 \ud30c\ub4dc\uac00 LimitRange\uc5d0\uc11c \uc815\uc758\ud55c \ub9ac\uc18c\uc2a4\ubcf4\ub2e4 \ub9ce\uc740 \ub9ac\uc18c\uc2a4\ub97c \uc694\uccad\ud558\uc9c0 \uc54a\ub3c4\ub85d \ubcf4\uc7a5\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1686\" height=\"957\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/EKS_VPA-3.gif\" alt=\"\" class=\"wp-image-1376\"\/><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>Note:<\/p>\n<cite>Recommend mode\uc5d0\uc11c VPA\ub97c \uc2e4\ud589\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. VPA Recommand\ub294 \uc6cc\ud06c\ub85c\ub4dc\uc758 Vertical Pod Autoscaler \ub9ac\uc18c\uc2a4\uc758 \uc0c1\ud0dc \ud544\ub4dc\ub97c \uc81c\uc548\ub41c \uac12\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ud558\uc9c0\ub9cc Pod\ub97c \uc885\ub8cc\ud558\uac70\ub098 Pod API \uc694\uccad\uc744 \ubcc0\uacbd\ud558\uc9c0\ub294 \uc54a\uc2b5\ub2c8\ub2e4.<\/cite><\/blockquote>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"VPA_%EC%A0%81%EC%9A%A9_%EB%B0%8F_%EC%8B%A4%EC%8A%B5\"><\/span>VPA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# \ucf54\ub4dc \ub2e4\uc6b4\ub85c\ub4dc\ngit clone https:\/\/github.com\/kubernetes\/autoscaler.git\ncd ~\/autoscaler\/vertical-pod-autoscaler\/\nopenssl11 version #OpenSSL 1.1.1g FIPS  21 Apr 2020\n# \uc2a4\ud06c\ub9bd\ud2b8\ud30c\uc77c\ub0b4\uc5d0 openssl11 \uc218\uc815\nsed -i 's\/openssl\/openssl11\/g' ~\/autoscaler\/vertical-pod-autoscaler\/pkg\/admission-controller\/gencerts.sh\n# Deploy the Vertical Pod Autoscaler to your cluster with the following command.\nwatch -d kubectl get pod -n kube-system\ncat hack\/vpa-up.sh\n.\/hack\/vpa-up.sh\nkubectl apply -f examples\/hamster.yaml &amp;&amp; kubectl get vpa -w\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># \ucf54\ub4dc \ub2e4\uc6b4\ub85c\ub4dc<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">git<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">clone<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/github.com\/kubernetes\/autoscaler.git<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">cd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">~\/autoscaler\/vertical-pod-autoscaler\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">openssl11<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">version<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #616E88\">#OpenSSL 1.1.1g FIPS  21 Apr 2020<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \uc2a4\ud06c\ub9bd\ud2b8\ud30c\uc77c\ub0b4\uc5d0 openssl11 \uc218\uc815<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">sed<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-i<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">s\/openssl\/openssl11\/g<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">~\/autoscaler\/vertical-pod-autoscaler\/pkg\/admission-controller\/gencerts.sh<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># Deploy the Vertical Pod Autoscaler to your cluster with the following command.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">watch<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-d<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">kubectl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">get<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">pod<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-n<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">kube-system<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">cat<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">hack\/vpa-up.sh<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">.\/hack\/vpa-up.sh<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">kubectl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">apply<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-f<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">examples\/hamster.yaml<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">kubectl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">get<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">vpa<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-w<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1848\" height=\"993\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/EKS_VPA_practice-2.gif\" alt=\"\" class=\"wp-image-1382\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"KRRprometheus-based_Kubernetes_Resource_Recommendations\"><\/span>KRR(prometheus-based Kubernetes Resource Recommendations)<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p><br>KRR (Kubernetes Resource Recommender)\uc740 Kubernetes \ud074\ub7ec\uc2a4\ud130\uc758 \ub9ac\uc18c\uc2a4 \uc0ac\uc6a9\uc744 \ucd5c\uc801\ud654\ud558\uae30 \uc704\ud55c \ub3c4\uad6c\ub85c, \uc790\ub3d9\uc73c\ub85c CPU \ubc0f \uba54\ubaa8\ub9ac \uc694\uccad\uacfc \uc81c\ud55c\uc744 \ucd94\ucc9c\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<ol>\n<li>\uc124\uce58 \uc704\uce58:\n<ul>\n<li>KRR: \ud074\ub7ec\uc2a4\ud130 \uc678\ubd80\uc5d0\uc11c \uc2e4\ud589\ud560 \uc218 \uc788\uc73c\uba70, \ud074\ub7ec\uc2a4\ud130 \ub0b4\ubd80\uc5d0 \ubcc4\ub3c4\uc758 \uad6c\uc131\uc774 \ud544\uc694\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA: \ud074\ub7ec\uc2a4\ud130 \ub0b4\uc5d0 \uc124\uce58\ub418\uc5b4\uc57c \ud558\uba70, \uac01 \uc6cc\ud06c\ub85c\ub4dc\uc5d0 \ub300\ud574 VPA \uac1d\uccb4\ub97c \uad6c\uc131\ud574\uc57c \ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\uc6cc\ud06c\ub85c\ub4dc \uad6c\uc131:\n<ul>\n<li>KRR: \uac01 \uc6cc\ud06c\ub85c\ub4dc\uc5d0 \ub300\ud574 \ubcc4\ub3c4\uc758 VPA \uac1d\uccb4\ub97c \uad6c\uc131\ud560 \ud544\uc694\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA: \uac01 \uc6cc\ud06c\ub85c\ub4dc\uc5d0 \ub300\ud574 VPA \uac1d\uccb4\ub97c \uad6c\uc131\ud574\uc57c \ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\uc989\uac01\uc801\uc778 \uacb0\uacfc:\n<ul>\n<li>KRR: Prometheus\uac00 \uac00\ub3d9\ub418\uc5b4 \uc788\uc73c\uba74 \uc989\uc2dc \uacb0\uacfc\ub97c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA: \ub370\uc774\ud130 \uc218\uc9d1 \ubc0f \uad8c\uc7a5 \uc0ac\ud56d \uc81c\uacf5\uc5d0 \uc2dc\uac04\uc774 \uc18c\uc694\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\ubcf4\uace0\uc11c:\n<ul>\n<li>KRR: \uc0c1\uc138\ud55c CLI \ubcf4\uace0\uc11c\uc640 \uc6f9 UI\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA: \ubcf4\uace0\uc11c\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\ud655\uc7a5\uc131:\n<ul>\n<li>KRR: \uba87 \uc904\uc758 Python \ucf54\ub4dc\ub85c \uc0ac\uc6a9\uc790 \uc815\uc758 \uc804\ub7b5\uc744 \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA: \ud655\uc7a5\uc131\uc774 \uc81c\ud55c\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\uc0ac\uc6a9\uc790 \uc815\uc758 \uba54\ud2b8\ub9ad \ubc0f \ub9ac\uc18c\uc2a4:\n<ul>\n<li>KRR: \ud5a5\ud6c4 \ubc84\uc804\uc5d0\uc11c \uc9c0\uc6d0 \uc608\uc815\uc785\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA: \uc0ac\uc6a9\uc790 \uc815\uc758 \uba54\ud2b8\ub9ad \ubc0f \ub9ac\uc18c\uc2a4\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\uc124\uba85 \uac00\ub2a5\uc131:\n<ul>\n<li>KRR: \ud5a5\ud6c4 \ubc84\uc804\uc5d0\uc11c \uc9c0\uc6d0 \uc608\uc815\uc73c\ub85c, \ucd94\uac00 \uadf8\ub798\ud504\ub97c \uc81c\uacf5\ud560 \uc608\uc815\uc785\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA: \uc124\uba85 \uac00\ub2a5\uc131\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\uc624\ud1a0 \uc2a4\ucf00\uc77c\ub9c1:\n<ul>\n<li>KRR: \ud5a5\ud6c4 \ubc84\uc804\uc5d0\uc11c \uc9c0\uc6d0 \uc608\uc815\uc785\ub2c8\ub2e4.<\/li>\n\n\n\n<li>VPA: \uad8c\uc7a5 \uc0ac\ud56d\uc774 \uc790\ub3d9\uc73c\ub85c \uc801\uc6a9\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\uc694\uc57d\ud558\uba74, KRR\uc740 Kubernetes \ud074\ub7ec\uc2a4\ud130\uc758 \ub9ac\uc18c\uc2a4 \uc0ac\uc6a9\uc744 \ucd5c\uc801\ud654\ud558\uae30 \uc704\ud55c \uc678\ubd80 \ub3c4\uad6c\ub85c, \uc989\uc2dc \uacb0\uacfc\ub97c \uc81c\uacf5\ud558\uace0 \uc124\uce58 \ubc0f \uad6c\uc131\uc774 \uac04\ud3b8\ud558\uba70 \uc0ac\uc6a9\uc790 \uc815\uc758 \ubc0f \ud655\uc7a5\uc774 \uc6a9\uc774\ud569\ub2c8\ub2e4. \ubc18\uba74 VPA\ub294 \ud074\ub7ec\uc2a4\ud130 \ub0b4\ubd80\uc5d0 \uc124\uce58\ub418\uc5b4\uc57c \ud558\uba70, \uac01 \uc6cc\ud06c\ub85c\ub4dc\uc5d0 \ub300\ud55c \ubcc4\ub3c4\uc758 \uad6c\uc131\uc774 \ud544\uc694\ud558\uba70, \uc989\uac01\uc801\uc778 \uacb0\uacfc\ub97c \uc81c\uacf5\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"VPA_vs_KRR\"><\/span>VPA vs KRR<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\uae30\ub2a5<\/th><th>Robusta KRR<\/th><th>Kubernetes VPA<\/th><\/tr><\/thead><tbody><tr><td>\ub9ac\uc18c\uc2a4 \uad8c\uc7a5 \uc0ac\ud56d<\/td><td>CPU\/Memory \uc694\uccad \ubc0f \uc81c\ud55c<\/td><td>CPU\/Memory \uc694\uccad \ubc0f \uc81c\ud55c<\/td><\/tr><tr><td>\uc124\uce58 \uc704\uce58<\/td><td>\ud074\ub7ec\uc2a4\ud130 \ub0b4\uc5d0 \uc124\uce58 \ud544\uc694 X<\/td><td>\ud074\ub7ec\uc2a4\ud130 \ub0b4\uc5d0 \uc124\uce58 \ud544\uc694 O<\/td><\/tr><tr><td>\uc6cc\ud06c\ub85c\ub4dc \uad6c\uc131<\/td><td>\uac1c\ubcc4 \uc6cc\ud06c\ub85c\ub4dc\uc5d0 VPA \uac1d\uccb4 \uc124\uc815 \ubd88\ud544\uc694<\/td><td>\uac1c\ubcc4 \uc6cc\ud06c\ub85c\ub4dc\uc5d0 VPA \uac1d\uccb4 \uc124\uc815 \ud544\uc694<\/td><\/tr><tr><td>\uc989\uac01\uc801\uc778 \uacb0\uacfc<\/td><td>\uc989\uac01\uc801\uc778 \uacb0\uacfc (Prometheus \uac00\ub3d9\uc2dc)<\/td><td>\ub370\uc774\ud130 \uc218\uc9d1 \ubc0f \uad8c\uc7a5 \uc0ac\ud56d \uc81c\uacf5\uc5d0 \uc2dc\uac04 \uc18c\uc694<\/td><\/tr><tr><td>\ubcf4\uace0\uc11c<\/td><td>\uc0c1\uc138\ud55c CLI \ubcf4\uace0\uc11c, <a href=\"https:\/\/home.robusta.dev\/\">Robusta.dev<\/a> \uc6f9 UI \uc81c\uacf5<\/td><td>\uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc74c<\/td><\/tr><tr><td>\ud655\uc7a5\uc131<\/td><td>\uba87 \uc904\uc758 Python \ucf54\ub4dc\ub85c \uc0ac\uc6a9\uc790 \uc815\uc758 \uc804\ub7b5 \ucd94\uac00 \uac00\ub2a5<\/td><td>\ud655\uc7a5\uc131 \uc81c\ud55c\ub428<\/td><\/tr><tr><td>\uc0ac\uc6a9\uc790 \uc815\uc758 \uba54\ud2b8\ub9ad<\/td><td>\ud5a5\ud6c4 \ubc84\uc804\uc5d0\uc11c \uc9c0\uc6d0 \uc608\uc815<\/td><td>\uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc74c<\/td><\/tr><tr><td>\uc0ac\uc6a9\uc790 \uc815\uc758 \ub9ac\uc18c\uc2a4<\/td><td>\ud5a5\ud6c4 \ubc84\uc804\uc5d0\uc11c \uc9c0\uc6d0 \uc608\uc815 (\uc608: GPU)<\/td><td>\uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc74c<\/td><\/tr><tr><td>\uc124\uba85 \uac00\ub2a5\uc131<\/td><td>\ud5a5\ud6c4 \ubc84\uc804\uc5d0\uc11c \uc9c0\uc6d0 \uc608\uc815 (Robusta\ub294 \ucd94\uac00 \uadf8\ub798\ud504 \uc81c\uacf5)<\/td><td>\uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc74c<\/td><\/tr><tr><td>\uc624\ud1a0 \uc2a4\ucf00\uc77c\ub9c1<\/td><td>\ud5a5\ud6c4 \ubc84\uc804\uc5d0\uc11c \uc9c0\uc6d0 \uc608\uc815<\/td><td>\uad8c\uc7a5 \uc0ac\ud56d \uc790\ub3d9 \uc801\uc6a9<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"CACluster_Autoscaling\"><\/span>CA(Cluster Autoscaling)<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-9\">\n<div class=\"wp-block-column is-layout-flow\">\n<ol>\n<li>Cluster Autoscaler\uac00 \ud65c\uc131\ud654\ub418\uba74 \ubcf4\ub958 \uc911\uc778 Pod\ub97c \ud655\uc778\ud569\ub2c8\ub2e4. \uae30\ubcf8 \uac80\uc0c9 \uac04\uaca9\uc740 10\ucd08\uc774\uba70 &#8211;scan-interval \ud50c\ub798\uadf8\ub97c \uc0ac\uc6a9\ud558\uc5ec \uad6c\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ubcf4\ub958 \uc911\uc778 \ud3ec\ub4dc\uac00 \uc788\uace0 \ud074\ub7ec\uc2a4\ud130\uc5d0 \ub354 \ub9ce\uc740 \ub9ac\uc18c\uc2a4\uac00 \ud544\uc694\ud55c \uacbd\uc6b0 CA\ub294 \uad00\ub9ac\uc790\uac00 \uad6c\uc131\ud55c \uc81c\uc57d \uc870\uac74 \ub0b4\uc5d0 \uc788\ub294 \ud55c \uc0c8 \ub178\ub4dc\ub97c \uc2dc\uc791\ud558\uc5ec \ud074\ub7ec\uc2a4\ud130\ub97c \ud655\uc7a5\ud569\ub2c8\ub2e4(\uc774 \uc608\uc5d0\uc11c \uc790\uc138\ud788 \uc124\uba85). AWS, Azure, GCP\uc640 \uac19\uc740 \ud37c\ube14\ub9ad \ud074\ub77c\uc6b0\ub4dc \uc81c\uacf5\uc5c5\uccb4\ub3c4 Kubernetes Cluster Autoscaler \uae30\ub2a5\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, AWS EKS\ub294 AWS&nbsp;Auto Scaling \uadf8\ub8f9&nbsp;\uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uc5ec Kubernetes\uc5d0 \ud1b5\ud569\ub418\uc5b4 \ud074\ub7ec\uc2a4\ud130 \ub178\ub4dc \uc5ed\ud560\uc744 \ud558\ub294 EC2 \uac00\uc0c1 \uba38\uc2e0\uc744 \uc790\ub3d9\uc73c\ub85c \ucd94\uac00\ud558\uace0 \uc81c\uac70\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>Kubernetes\ub294 \uc0c8\ub85c \ud504\ub85c\ube44\uc800\ub2dd\ub41c \ub178\ub4dc\ub97c \uc81c\uc5b4 \ud50c\ub808\uc778\uc5d0 \ub4f1\ub85d\ud558\uc5ec Pod \ud560\ub2f9\uc744 \uc704\ud574 Kubernetes \uc2a4\ucf00\uc904\ub7ec\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ub9c8\uc9c0\ub9c9\uc73c\ub85c Kubernetes \uc2a4\ucf00\uc904\ub7ec\ub294 \ubcf4\ub958 \uc911\uc778 Pod\ub97c \uc0c8 \ub178\ub4dc\uc5d0 \ud560\ub2f9\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1647\" height=\"625\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/EKS_CA.gif\" alt=\"\" class=\"wp-image-1377\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p><strong>\ub2e8\uc810<\/strong><\/p>\n\n\n\n<ul>\n<li>CA\ub294 CPU \ub610\ub294 \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud655\uc7a5 \uacb0\uc815\uc744 \ub0b4\ub9ac\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. CPU \ubc0f \uba54\ubaa8\ub9ac \ub9ac\uc18c\uc2a4\uc5d0 \ub300\ud55c Pod\uc758 \uc694\uccad\uacfc \uc81c\ud55c\ub9cc \ud655\uc778\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc81c\ud55c\uc740 \uc0ac\uc6a9\uc790\uac00 \uc694\uccad\ud55c \ubbf8\uc0ac\uc6a9 \ucef4\ud4e8\ud305 \ub9ac\uc18c\uc2a4\ub97c CA\uc5d0\uc11c \uac10\uc9c0\ud558\uc9c0 \ubabb\ud558\uc5ec \ud074\ub7ec\uc2a4\ud130\uac00 \ub0ad\ube44\ub418\uace0 \ud65c\uc6a9 \ud6a8\uc728\uc131\uc774 \ub0ae\ub2e4\ub294 \uac83\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ud074\ub7ec\uc2a4\ud130 \ud655\uc7a5 \uc694\uccad\uc774 \uc788\uc744 \ub54c\ub9c8\ub2e4 \ud3f4\ub9c1 \ubc29\uc2dd\uc778 CA\ub294 30~60\ucd08 \ub0b4\uc5d0 \ud074\ub77c\uc6b0\ub4dc \uacf5\uae09\uc790\uc5d0\uac8c \ud655\uc7a5 \uc694\uccad\uc744 \ubcf4\ub0c5\ub2c8\ub2e4. \ud074\ub77c\uc6b0\ub4dc \uacf5\uae09\uc790\uac00 \ub178\ub4dc\ub97c \uc0dd\uc131\ud558\ub294 \ub370 \uac78\ub9ac\ub294 \uc2e4\uc81c \uc2dc\uac04\uc740 \uba87 \ubd84 \uc774\uc0c1\uc774 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc9c0\uc5f0\uc740 \ud655\uc7a5\ub41c \ud074\ub7ec\uc2a4\ud130 \uc6a9\ub7c9\uc744 \uae30\ub2e4\ub9ac\ub294 \ub3d9\uc548 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc131\ub2a5\uc774 \uc800\ud558\ub420 \uc218 \uc788\uc73c\uba70, \uc790\uc8fc \ud655\uc7a5 \uc5ec\ubd80\ub97c \ud655\uc778\ud558\uba74 API\uc81c\ud55c\uc5d0 \ub3c4\ub2ec\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>ASG\uc640 EKS\uc758 \uad00\ub9ac \uc815\ubcf4 \ub3d9\uae30\ud654 \ubb38\uc81c\ub85c, \ub178\ub4dc \uad00\ub9ac \ubc0f \uc2a4\ucf00\uc77c\ub9c1\uc774 \uc5b4\ub835\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>ASG\ub294 \ub178\ub4dc \uc0dd\uc131\/\uc0ad\uc81c\uc5d0 \uc9c1\uc811 \uad00\uc5ec\ud558\uc9c0 \uc54a\uace0, EKS\uc5d0\uc11c \ub178\ub4dc \uc0ad\uc81c\ud574\ub3c4 \uc778\uc2a4\ud134\uc2a4\ub294 \uc0ad\uc81c\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ud2b9\uc815 \ub178\ub4dc \uc0ad\uc81c\ud558\uba74\uc11c \ub3d9\uc2dc\uc5d0 \ub178\ub4dc \uac1c\uc218 \uc904\uc774\uae30 \uc5b4\ub824\uc6c0. <\/li>\n\n\n\n<li>Cluster Autoscaler\ub294 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud074\ub7ec\uc2a4\ud130 \uc624\ud1a0 \uc2a4\ucf00\uc77c\ub9c1\uc744 \ub2f4\ub2f9\ud558\uba70, Pending \uc0c1\ud0dc\uc758 \ud30c\ub4dc \ubc1c\uc0dd\uc2dc \ub3d9\uc791\ud568. \uc2a4\ucf00\uc77c\ub9c1\uc740 \uae30\ubcf8\uc801\uc73c\ub85c \ucd5c\uc18c \ub9ac\uc18c\uc2a4 \uc694\uccad \uae30\uc900\uc73c\ub85c \uc774\ub904\uc9c0\uba70, \uc2e4\uc81c \ub9ac\uc18c\uc2a4 \uc0ac\uc6a9\ub7c9 \uace0\ub824\ud558\uc9c0 \uc54a\uc74c. CPU \ubc0f \uba54\ubaa8\ub9ac \ub9ac\uc18c\uc2a4 \ud560\ub2f9 \uc608\uc2dc\ub85c \uc124\uba85\ub418\uc5c8\uc9c0\ub9cc, \uba54\ubaa8\ub9ac\uc758 \uacbd\uc6b0\ub3c4 \ub3d9\uc77c\ud55c \uc6d0\ub9ac\uac00 \uc801\uc6a9\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"CA_%EC%A0%81%EC%9A%A9_%EB%B0%8F_%EC%8B%A4%EC%8A%B5\"><\/span>CA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# \uc0ac\uc804 \ud655\uc778\naws ec2 describe-instances  --filters Name=tag:Name,Values=$CLUSTER_NAME-ng1-Node --query &quot;Reservations[*].Instances[*].Tags[*]&quot; --output yaml | yh\n...\n- Key: k8s.io\/cluster-autoscaler\/myeks\n      Value: owned\n- Key: k8s.io\/cluster-autoscaler\/enabled\n      Value: 'true'\n...\n(k8s@myeks:default) [root@myeks-bastion vertical-pod-autoscaler]# aws autoscaling describe-auto-scaling-groups \\\n&gt;     --query &quot;AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') &amp;&amp; Value=='myeks']].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]&quot; \\\n&gt;     --output table\n-----------------------------------------------------------------\n|                   DescribeAutoScalingGroups                   |\n+------------------------------------------------+----+----+----+\n|  eks-ng1-04c759c8-0fa3-9a6d-4cf4-c0feaf7db031  |  3 |  3 |  3 |\n+------------------------------------------------+----+----+----+\n(k8s@myeks:default) [root@myeks-bastion vertical-pod-autoscaler]# export ASG_NAME=$(aws autoscaling describe-auto-scaling-groups --query &quot;AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') &amp;&amp; Value=='myeks']].AutoScalingGroupName&quot; --output text)\n(k8s@myeks:default) [root@myeks-bastion vertical-pod-autoscaler]# aws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 3 --desired-capacity 3 --max-size 6\n(k8s@myeks:default) [root@myeks-bastion vertical-pod-autoscaler]# aws autoscaling describe-auto-scaling-groups --query &quot;AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') &amp;&amp; Value=='myeks']].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]&quot; --output table\n-----------------------------------------------------------------\n|                   DescribeAutoScalingGroups                   |\n+------------------------------------------------+----+----+----+\n|  eks-ng1-04c759c8-0fa3-9a6d-4cf4-c0feaf7db031  |  3 |  6 |  3 |\n+------------------------------------------------+----+----+----+  # MaxSize 6\uac1c\ub85c \uc218\uc815\n(k8s@myeks:default) [root@myeks-bastion vertical-pod-autoscaler]# curl -s -O https:\/\/raw.githubusercontent.com\/kubernetes\/autoscaler\/master\/cluster-autoscaler\/cloudprovider\/aws\/examples\/cluster-autoscaler-autodiscover.yaml\n(k8s@myeks:default) [root@myeks-bastion vertical-pod-autoscaler]# sed -i &quot;s\/&lt;YOUR CLUSTER NAME&gt;\/$CLUSTER_NAME\/g&quot; cluster-autoscaler-autodiscover.yaml\n(k8s@myeks:default) [root@myeks-bastion vertical-pod-autoscaler]# kubectl apply -f cluster-autoscaler-autodiscover.yaml\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># \uc0ac\uc804 \ud655\uc778<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">aws<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">ec2<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">describe-instances<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #A3BE8C\">--filters<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Name=tag:Name,Values=<\/span><span style=\"color: #D8DEE9\">$CLUSTER_NAME<\/span><span style=\"color: #A3BE8C\">-ng1-Node<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--query<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Reservations[*].Instances[*].Tags[*]<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--output<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">yaml<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">yh<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Key:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">k8s.io\/cluster-autoscaler\/myeks<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #88C0D0\">Value:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">owned<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Key:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">k8s.io\/cluster-autoscaler\/enabled<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #88C0D0\">Value:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">true<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">...<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">k8s@myeks:default<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\">root@myeks-bastion vertical-pod-autoscaler<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"># aws autoscaling describe-auto-scaling-groups \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\">     --query <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AutoScalingGroups[? Tags[? (Key==&#39;eks:cluster-name&#39;) &amp;&amp; Value==&#39;myeks&#39;]].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> \\<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\">     --output table<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-----------------------------------------------------------------<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">                   <\/span><span style=\"color: #88C0D0\">DescribeAutoScalingGroups<\/span><span style=\"color: #D8DEE9FF\">                   <\/span><span style=\"color: #81A1C1\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">+------------------------------------------------+----+----+----+<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">eks-ng1-04c759c8-0fa3-9a6d-4cf4-c0feaf7db031<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">3<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">3<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">3<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">+------------------------------------------------+----+----+----+<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">k8s@myeks:default<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\">root@myeks-bastion vertical-pod-autoscaler<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"># export ASG_NAME=<\/span><span style=\"color: #ECEFF4\">$(<\/span><span style=\"color: #88C0D0\">aws<\/span><span style=\"color: #A3BE8C\"> autoscaling describe-auto-scaling-groups --query <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AutoScalingGroups[? Tags[? (Key==&#39;eks:cluster-name&#39;) &amp;&amp; Value==&#39;myeks&#39;]].AutoScalingGroupName<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\"> --output text<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">k8s@myeks:default<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\">root@myeks-bastion vertical-pod-autoscaler<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"># aws autoscaling update-auto-scaling-group --auto-scaling-group-name <\/span><span style=\"color: #81A1C1\">${<\/span><span style=\"color: #D8DEE9\">ASG_NAME<\/span><span style=\"color: #81A1C1\">}<\/span><span style=\"color: #D8DEE9FF\"> --min-size 3 --desired-capacity 3 --max-size 6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">k8s@myeks:default<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\">root@myeks-bastion vertical-pod-autoscaler<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"># aws autoscaling describe-auto-scaling-groups --query <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AutoScalingGroups[? Tags[? (Key==&#39;eks:cluster-name&#39;) &amp;&amp; Value==&#39;myeks&#39;]].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> --output table<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-----------------------------------------------------------------<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">                   <\/span><span style=\"color: #88C0D0\">DescribeAutoScalingGroups<\/span><span style=\"color: #D8DEE9FF\">                   <\/span><span style=\"color: #81A1C1\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">+------------------------------------------------+----+----+----+<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">eks-ng1-04c759c8-0fa3-9a6d-4cf4-c0feaf7db031<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">3<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">6<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">3<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">+------------------------------------------------+----+----+----+<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># MaxSize 6\uac1c\ub85c \uc218\uc815<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">k8s@myeks:default<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\">root@myeks-bastion vertical-pod-autoscaler<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"># curl -s -O https:\/\/raw.githubusercontent.com\/kubernetes\/autoscaler\/master\/cluster-autoscaler\/cloudprovider\/aws\/examples\/cluster-autoscaler-autodiscover.yaml<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">k8s@myeks:default<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\">root@myeks-bastion vertical-pod-autoscaler<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"># sed -i <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">s\/&lt;YOUR CLUSTER NAME&gt;\/<\/span><span style=\"color: #D8DEE9\">$CLUSTER_NAME<\/span><span style=\"color: #A3BE8C\">\/g<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> cluster-autoscaler-autodiscover.yaml<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">k8s@myeks:default<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\">root@myeks-bastion vertical-pod-autoscaler<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"># kubectl apply -f cluster-autoscaler-autodiscover.yaml<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1848\" height=\"993\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/EKS_CA_practice.gif\" alt=\"\" class=\"wp-image-1383\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"CPACluster_Proportional_Autoscaler\"><\/span>CPA(Cluster Proportional Autoscaler)<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>HPA \ubc0f VPA\ub294 \ub9ac\uc18c\uc2a4 \uc0ac\uc6a9\ub7c9\uc744 \uad00\ub9ac\ud558\uace0 \ud604\uc7ac \uc218\uc694\ub97c \ucc98\ub9ac\ud558\uae30 \uc704\ud574 \uc218\ud3c9 \ubc0f \uc218\uc9c1 \uce21\uba74\uc744 \uae30\ubc18\uc73c\ub85c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc870\uc815\ud558\ub294 \uc77c\ubc18\uc801\uc778 \ubc29\ubc95\uc785\ub2c8\ub2e4.&nbsp;CPA\ub294&nbsp;\ud074\ub7ec\uc2a4\ud130 \uaddc\ubaa8\uc5d0 \ub530\ub77c \ud3ec\ub4dc \ubcf5\uc81c\ubcf8 \uc218\ub97c \uc218\ud3c9\uc801\uc73c\ub85c \ud655\uc7a5\ud558\ub294 \uac83\uc744 \ubaa9\ud45c\ub85c \ud569\ub2c8\ub2e4. \uc77c\ubc18\uc801\uc778 \uc608\ub85c\ub294 <strong>DNS<\/strong> \uc11c\ube44\uc2a4\uac00 \uc788\uc2b5\ub2c8\ub2e4. CPA\ub294 \ud604\uc7ac \ud074\ub7ec\uc2a4\ud130 \uaddc\ubaa8(\ub178\ub4dc \uc218 \ub610\ub294 \uc804\uccb4 CPU \uc6a9\ub7c9)\ub97c \uae30\ubc18\uc73c\ub85c DNS \uc778\uc2a4\ud134\uc2a4 \uc218\ub97c \ub3d9\uc801\uc73c\ub85c \uc870\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p><strong>\ud2b8\ub9ac\uac70 \uc870\uac74<\/strong><\/p>\n\n\n\n<p id=\"7f12\">\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc790\uccb4\uc758 \ub9ac\uc18c\uc2a4 \uc0ac\uc6a9\ub7c9\uc5d0 \ucd08\uc810\uc744 \ub9de\ucd98 HPA\/VPA\uc640 \ub2ec\ub9ac CPA\uc758 \ud2b8\ub9ac\uac70 \uc870\uc815\uc740 \ub178\ub4dc \uc790\uccb4 \uae30\ub2a5\uc744 \uae30\ubc18\uc73c\ub85c \ud569\ub2c8\ub2e4. \uc124\uc815\uc740 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uad00\uc810\uc5d0\uc11c \uc2dc\uc791\ud558\uc5ec \uac01 \ubcf5\uc81c\ubcf8\uc774 \ucc98\ub9ac\ud560 \uc218 \uc788\ub294 \ub178\ub4dc \uc778\uc2a4\ud134\uc2a4 \ub610\ub294 \ucd1d CPU \uc778\uc2a4\ud134\uc2a4 \uc218\ub97c \ud0d0\uc0c9\ud569\ub2c8\ub2e4. \uad00\ub828 \uc124\uc815\uc5d0\ub294&nbsp;<code>coresPerReplica<\/code>\ubc0f \uc774 \ud3ec\ud568\ub429\ub2c8\ub2e4&nbsp;<code>nodesPerReplica<\/code>. \ud604\uc7ac \uc801\ud569\ud55c \ud3ec\ub4dc \uc218\ub294 \ub2e4\uc74c \uacf5\uc2dd\uc744 \uc0ac\uc6a9\ud558\uc5ec \uacc4\uc0b0\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<p><em>replicas = max(ceil(cores * 1\/coresPerReplica), ceil(nodes * 1\/nodesPerReplica))<\/em><\/p>\n\n\n\n<p>CPA\ub294 \uad6c\uc131\ub41c&nbsp;<code>coresPerReplica<\/code>\ubc0f&nbsp;<code>nodesPerReplica<\/code>\ud604\uc7ac \ub178\ub4dc \uaddc\ubaa8\ub97c \uae30\ubc18\uc73c\ub85c \uc801\uc808\ud55c \uc218\ub97c \uacc4\uc0b0\ud569\ub2c8\ub2e4. \ub300\uc0c1 Pod \ubcf5\uc81c\ubcf8\uc744 \ub3d9\uc801\uc73c\ub85c \uc870\uc815\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-accordion-toggle-accordion-toggle\"><div class=\"eb-parent-wrapper eb-parent-eb-accordion-1v9a0 \"><div class=\"eb-accordion-container eb-accordion-1v9a0\" data-accordion-type=\"accordion\" data-tab-icon=\"fas fa-angle-right\" data-expanded-icon=\"fas fa-angle-down\" data-transition-duration=\"500\"><div class=\"eb-accordion-inner\">\n<div class=\"eb-accordion-item-a2vcm eb-accordion-wrapper\" data-clickable=\"false\"><div class=\"eb-accordion-title-wrapper\" tabindex=\"0\"><span class=\"eb-accordion-icon-wrapper\"><span class=\"fas fa-angle-right eb-accordion-icon\"><\/span><\/span><h2 class=\"eb-accordion-title\"><span class=\"ez-toc-section\" id=\"CPA_%EC%A0%81%EC%9A%A9_%EB%B0%8F_%EC%8B%A4%EC%8A%B5\"><\/span>CPA \uc801\uc6a9 \ubc0f \uc2e4\uc2b5<span class=\"ez-toc-section-end\"><\/span><\/h2><\/div><div class=\"eb-accordion-content-wrapper\"><div class=\"eb-accordion-content\">\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#\nhelm repo add cluster-proportional-autoscaler https:\/\/kubernetes-sigs.github.io\/cluster-proportional-autoscaler\n\n# CPA\uaddc\uce59\uc744 \uc124\uc815\ud558\uace0 helm\ucc28\ud2b8\ub97c \ub9b4\ub9ac\uc988 \ud544\uc694\nhelm upgrade --install cluster-proportional-autoscaler cluster-proportional-autoscaler\/cluster-proportional-autoscaler\n\n# nginx \ub514\ud50c\ub85c\uc774\uba3c\ud2b8 \ubc30\ud3ec\ncat &lt;&lt;EOT &gt; cpa-nginx.yaml\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: nginx-deployment\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: nginx\n  template:\n    metadata:\n      labels:\n        app: nginx\n    spec:\n      containers:\n      - name: nginx\n        image: nginx:latest\n        resources:\n          limits:\n            cpu: &quot;100m&quot;\n            memory: &quot;64Mi&quot;\n          requests:\n            cpu: &quot;100m&quot;\n            memory: &quot;64Mi&quot;\n        ports:\n        - containerPort: 80\nEOT\nkubectl apply -f cpa-nginx.yaml\n\n# CPA \uaddc\uce59 \uc124\uc815\ncat &lt;&lt;EOF &gt; cpa-values.yaml\nconfig:\n  ladder:\n    nodesToReplicas:\n      - [1, 1]\n      - [2, 2]\n      - [3, 3]\n      - [4, 3]\n      - [5, 5]\noptions:\n  namespace: default\n  target: &quot;deployment\/nginx-deployment&quot;\nEOF\nkubectl describe cm cluster-proportional-autoscaler\n\n# \ubaa8\ub2c8\ud130\ub9c1\nwatch -d kubectl get pod\n\n# helm \uc5c5\uadf8\ub808\uc774\ub4dc\nhelm upgrade --install cluster-proportional-autoscaler -f cpa-values.yaml cluster-proportional-autoscaler\/cluster-proportional-autoscaler\n\n# \ub178\ub4dc 5\uac1c\ub85c \uc99d\uac00\nexport ASG_NAME=$(aws autoscaling describe-auto-scaling-groups --query &quot;AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') &amp;&amp; Value=='myeks']].AutoScalingGroupName&quot; --output text)\naws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 5 --desired-capacity 5 --max-size 5\naws autoscaling describe-auto-scaling-groups --query &quot;AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') &amp;&amp; Value=='myeks']].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]&quot; --output table\n\n# \ub178\ub4dc 4\uac1c\ub85c \ucd95\uc18c\naws autoscaling update-auto-scaling-group --auto-scaling-group-name ${ASG_NAME} --min-size 4 --desired-capacity 4 --max-size 4\naws autoscaling describe-auto-scaling-groups --query &quot;AutoScalingGroups[? Tags[? (Key=='eks:cluster-name') &amp;&amp; Value=='myeks']].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]&quot; --output table\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">#<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">helm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">repo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">add<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">cluster-proportional-autoscaler<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/kubernetes-sigs.github.io\/cluster-proportional-autoscaler<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># CPA\uaddc\uce59\uc744 \uc124\uc815\ud558\uace0 helm\ucc28\ud2b8\ub97c \ub9b4\ub9ac\uc988 \ud544\uc694<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">helm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">upgrade<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">cluster-proportional-autoscaler<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">cluster-proportional-autoscaler\/cluster-proportional-autoscaler<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># nginx \ub514\ud50c\ub85c\uc774\uba3c\ud2b8 \ubc30\ud3ec<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">cat<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;&lt;<\/span><span style=\"color: #ECEFF4\">EOT<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> cpa-nginx.yaml<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">apiVersion: apps\/v1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">kind: Deployment<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">metadata:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">  name: nginx-deployment<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">spec:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">  replicas: 1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">  selector:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">    matchLabels:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">      app: nginx<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">  template:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">    metadata:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">      labels:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">        app: nginx<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">    spec:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">      containers:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">      - name: nginx<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">        image: nginx:latest<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">        resources:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">          limits:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">            cpu: &quot;100m&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">            memory: &quot;64Mi&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">          requests:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">            cpu: &quot;100m&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">            memory: &quot;64Mi&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">        ports:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">        - containerPort: 80<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">EOT<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">kubectl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">apply<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-f<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">cpa-nginx.yaml<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># CPA \uaddc\uce59 \uc124\uc815<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">cat<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;&lt;<\/span><span style=\"color: #ECEFF4\">EOF<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> cpa-values.yaml<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">config:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">  ladder:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">    nodesToReplicas:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">      - [1, 1]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">      - [2, 2]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">      - [3, 3]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">      - [4, 3]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">      - [5, 5]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">options:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">  namespace: default<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">  target: &quot;deployment\/nginx-deployment&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">EOF<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">kubectl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">describe<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">cm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">cluster-proportional-autoscaler<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \ubaa8\ub2c8\ud130\ub9c1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">watch<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-d<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">kubectl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">get<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">pod<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># helm \uc5c5\uadf8\ub808\uc774\ub4dc<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">helm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">upgrade<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">cluster-proportional-autoscaler<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-f<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">cpa-values.yaml<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">cluster-proportional-autoscaler\/cluster-proportional-autoscaler<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \ub178\ub4dc 5\uac1c\ub85c \uc99d\uac00<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">export<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ASG_NAME<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">$(<\/span><span style=\"color: #88C0D0\">aws<\/span><span style=\"color: #A3BE8C\"> autoscaling describe-auto-scaling-groups --query <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AutoScalingGroups[? Tags[? (Key==&#39;eks:cluster-name&#39;) &amp;&amp; Value==&#39;myeks&#39;]].AutoScalingGroupName<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\"> --output text<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">aws<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">autoscaling<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">update-auto-scaling-group<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--auto-scaling-group-name<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">${<\/span><span style=\"color: #D8DEE9\">ASG_NAME<\/span><span style=\"color: #81A1C1\">}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--min-size<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--desired-capacity<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--max-size<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">aws<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">autoscaling<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">describe-auto-scaling-groups<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--query<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AutoScalingGroups[? Tags[? (Key==&#39;eks:cluster-name&#39;) &amp;&amp; Value==&#39;myeks&#39;]].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--output<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">table<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \ub178\ub4dc 4\uac1c\ub85c \ucd95\uc18c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">aws<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">autoscaling<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">update-auto-scaling-group<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--auto-scaling-group-name<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">${<\/span><span style=\"color: #D8DEE9\">ASG_NAME<\/span><span style=\"color: #81A1C1\">}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--min-size<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--desired-capacity<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--max-size<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">aws<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">autoscaling<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">describe-auto-scaling-groups<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--query<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AutoScalingGroups[? Tags[? (Key==&#39;eks:cluster-name&#39;) &amp;&amp; Value==&#39;myeks&#39;]].[AutoScalingGroupName, MinSize, MaxSize,DesiredCapacity]<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--output<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">table<\/span><\/span><\/code><\/pre><\/div>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1848\" height=\"993\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/EKS_CPA_practice-1.gif\" alt=\"\" class=\"wp-image-1385\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"KarpenterK8S_Native_AutoScaler\"><\/span>Karpenter(K8S Native AutoScaler)<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p>\ucfe0\ubc84\ub124\ud2f0\uc2a4\uc5d0\uc11c \ud074\ub7ec\uc2a4\ud130\uc758 \uc624\ud1a0 \uc2a4\ucf00\uc77c\ub9c1\uacfc \uad00\ub828\ub41c \uc791\uc5c5\uc744 \uc790\ub3d9\ud654\ud558\ub294 \uc624\ud508 \uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\uc785\ub2c8\ub2e4. \uc774 \uc11c\ube44\uc2a4\ub294 AWS, GCP, Azure \ubc0f \uae30\ud0c0 \uc778\ud504\ub77c \ud50c\ub7ab\ud3fc\uacfc \ud638\ud658\ub418\uba70, \ub2e4\uc591\ud55c \ud074\ub77c\uc6b0\ub4dc \ud658\uacbd\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ul>\n<li>\uace0\uc131\ub2a5 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud074\ub7ec\uc2a4\ud130 \uc624\ud1a0 \uc2a4\ucf00\uc77c\ub7ec(Autoscaler)\n<ul>\n<li>\uae30\uc874 \uc624\ud1a0\uc2a4\ucf00\uc77c\ub7ec \ubcf4\ub2e4 \uc57d 10\ubc30\uc815\ub3c4 \ube60\ub984 (10\ubd84 -&gt; 1\ubd84)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\uc801\uc808\ud55c \ub178\ub4dc \uc0ac\uc591\uc744 \uacb0\uc815\ud558\uc5ec \ub178\ub4dc \uc0dd\uc131<\/li>\n\n\n\n<li>kube-scheduler \ub300\uc2e0 \uc9c1\uc811 pod\ub97c \uc2a4\ucf00\uc904\ub9c1<\/li>\n\n\n\n<li>EKS \uc544\ub2cc \ud658\uacbd\uc5d0\uc11c\ub3c4 \uc0ac\uc6a9 \uac00\ub2a5<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Karpenter_%EB%85%B8%EB%93%9C_%EC%83%9D%EC%84%B1_%EC%9B%90%EB%A6%AC\"><\/span>Karpenter \ub178\ub4dc \uc0dd\uc131 \uc6d0\ub9ac<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol>\n<li><strong>\uc790\uc6d0 \ubaa8\ub2c8\ud130\ub9c1<\/strong>: Karpenter\ub294 \ud074\ub7ec\uc2a4\ud130 \ub0b4\uc758 \uc790\uc6d0 \uc0c1\ud0dc\ub97c \ubaa8\ub2c8\ud130\ub9c1\ud569\ub2c8\ub2e4. \uc774\ub294 CPU, \uba54\ubaa8\ub9ac, \uc2a4\ud1a0\ub9ac\uc9c0 \ubc0f \ub124\ud2b8\uc6cc\ud06c \ub9ac\uc18c\uc2a4\uc640 \uac19\uc740 \ud074\ub7ec\uc2a4\ud130\uc758 \uc790\uc6d0 \uc0ac\uc6a9\ub7c9\uc744 \uc2e4\uc2dc\uac04\uc73c\ub85c \ucd94\uc801\ud558\ub294 \uac83\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\uc6cc\ud06c\ub85c\ub4dc \ubd84\uc11d<\/strong>: \ud074\ub7ec\uc2a4\ud130\uc5d0 \uc0c8\ub85c\uc6b4 Pod\uc774 \uc2a4\ucf00\uc904\ub9c1\ub420 \ub54c, Karpenter\ub294 \ud574\ub2f9 Pod\uc758 \uc694\uad6c \uc0ac\ud56d\uc744 \ubd84\uc11d\ud569\ub2c8\ub2e4. \uc774\ub294 Pod\uc758 CPU \ubc0f \uba54\ubaa8\ub9ac \uc694\uad6c \uc0ac\ud56d, \uac00\uc6a9 \uc601\uc5ed \ubc0f \ub9ac\uc804\uc5d0 \ub300\ud55c \uc81c\uc57d \uc0ac\ud56d \ub4f1\uc744 \uace0\ub824\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>EC2 <span class='tooltipsall tooltipsincontent classtoolTips6'>Fleet<\/span> \uc694\uccad<\/strong>: \ud544\uc694\ud55c \uacbd\uc6b0, Karpenter\ub294 EC2 <span class='tooltipsall tooltipsincontent classtoolTips6'>Fleet<\/span>\uc744 \ud504\ub85c\ube44\uc800\ub2dd\ud558\uae30 \uc704\ud574 AWS\uc5d0 \uc694\uccad\uc744 \ubcf4\ub0c5\ub2c8\ub2e4. \uc774 \uc694\uccad\uc740 \ud074\ub7ec\uc2a4\ud130\uc758 \uc6cc\ud06c\ub85c\ub4dc\uc5d0 \ud544\uc694\ud55c \uc801\uc808\ud55c \uc720\ud615 \ubc0f \ud06c\uae30\uc758 EC2 \uc778\uc2a4\ud134\uc2a4\ub97c \uc9c0\uc815\ud558\uace0, \ud574\ub2f9 \uc778\uc2a4\ud134\uc2a4\ub97c \ubc30\uce58\ud560 \ub9ac\uc804 \ubc0f \uac00\uc6a9 \uc601\uc5ed\uc744 \uc120\ud0dd\ud558\ub294 \uac83\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\uad6c\ub9e4 \uc635\uc158 \uc124\uc815<\/strong>: EC2 <span class='tooltipsall tooltipsincontent classtoolTips6'>Fleet<\/span>\uc744 \ud504\ub85c\ube44\uc800\ub2dd\ud560 \ub54c, Karpenter\ub294 \uc0ac\uc6a9\uc790\uac00 \uc9c0\uc815\ud55c \uad6c\ub9e4 \uc635\uc158\uc744 \uc124\uc815\ud569\ub2c8\ub2e4. \uc774\ub294 \uc778\uc2a4\ud134\uc2a4\uc758 \uad6c\ub9e4 \uc720\ud615(\uc608: \uc608\uc57d \uc778\uc2a4\ud134\uc2a4, \uc628\ub514\ub9e8\ub4dc, \uc2a4\ud31f \uc778\uc2a4\ud134\uc2a4) \ubc0f \uc778\uc2a4\ud134\uc2a4 \uc720\ud615 \ubc0f \ud06c\uae30\uc5d0 \ub530\ub77c \uacb0\uc815\ub429\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>EC2 <span class='tooltipsall tooltipsincontent classtoolTips6'>Fleet<\/span> \ud504\ub85c\ube44\uc800\ub2dd<\/strong>: \uc124\uc815\uc774 \uc644\ub8cc\ub418\uba74, Karpenter\ub294 AWS\uc5d0 EC2 <span class='tooltipsall tooltipsincontent classtoolTips6'>Fleet<\/span>\uc744 \ud504\ub85c\ube44\uc800\ub2dd\ud558\ub3c4\ub85d \uc694\uccad\ud569\ub2c8\ub2e4. \uc774 \uc694\uccad\uc740 AWS\uc758 EC2 <span class='tooltipsall tooltipsincontent classtoolTips6'>Fleet<\/span> API\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc790\ub3d9\ud654\ub418\uba70, \ud074\ub7ec\uc2a4\ud130\uc758 \uc6cc\ud06c\ub85c\ub4dc\uc5d0 \ud544\uc694\ud55c \uc778\uc2a4\ud134\uc2a4\ub97c \ud504\ub85c\ube44\uc800\ub2dd\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>\ub178\ub4dc \ud65c\uc131\ud654 \ubc0f Pod \uc2a4\ucf00\uc904\ub9c1<\/strong>: EC2 <span class='tooltipsall tooltipsincontent classtoolTips6'>Fleet<\/span>\uc774 \ud504\ub85c\ube44\uc800\ub2dd\ub418\uba74, Karpenter\ub294 \uc0c8\ub85c\uc6b4 \ub178\ub4dc\ub97c \ud074\ub7ec\uc2a4\ud130\uc5d0 \ucd94\uac00\ud558\uace0 \ud65c\uc131\ud654\ud569\ub2c8\ub2e4. \uc774\ud6c4 Kubernetes \uc2a4\ucf00\uc904\ub7ec\ub294 \uc0c8\ub85c\uc6b4 \ub178\ub4dc\uc5d0 Pod\uc744 \ubc30\uce58\ud558\uc5ec \ud074\ub7ec\uc2a4\ud130\uc758 \uc6cc\ud06c\ub85c\ub4dc\ub97c \uad00\ub9ac\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Karpenter_%EC%A0%81%EC%9A%A9_%EB%B0%8F_%EC%8B%A4%EC%8A%B5\"><\/span>Karpenter \uc801\uc6a9 \ubc0f \uc2e4\uc2b5<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-12\">\n<div class=\"wp-block-column is-layout-flow\">\n<ol>\n<li>Karpenter Controller \uc124\uce58<\/li>\n\n\n\n<li>Node \uc0ac\uc591 \uc815\uc758\ud558\ub294 CRD \uc815\uc758\n<ul>\n<li>v0.32 \uc774\uc0c1 : NodePool, NodeClass<\/li>\n\n\n\n<li>v0.31 \uc774\ud558 : provisioner, Nodetemplate<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\ucc38\uace0 \ub9c1\ud06c : <a href=\"https:\/\/karpenter.sh\/docs\/\">https:\/\/karpenter.sh\/docs\/<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"apiVersion: karpenter.sh\/v1beta1\nkind: NodePool\nmetadata:\n  name: default\nspec:\n  template:\n    spec:\n      nodeClassRef:\n        apiVersion: karpenter.k8s.aws\/v1beta1\n        kind: EC2NodeClass\n        name: default\n---\napiVersion: karpenter.k8s.aws\/v1beta1\nkind: EC2NodeClass\nmetadata:\n  name: default\nspec:\n  # Required, resolves a default ami and userdata\n  amiFamily: AL2\n\n  # Required, discovers subnets to attach to instances\n  # Each term in the array of subnetSelectorTerms is ORed together\n  # Within a single term, all conditions are ANDed\n  subnetSelectorTerms:\n    # Select on any subnet that has the &quot;karpenter.sh\/discovery: ${CLUSTER_NAME}&quot;\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8FBCBB\">apiVersion<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">karpenter.sh\/v1beta1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">kind<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">NodePool<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">metadata<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">default<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">spec<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">template<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #8FBCBB\">spec<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #8FBCBB\">nodeClassRef<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">apiVersion<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">karpenter.k8s.aws\/v1beta1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">kind<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">EC2NodeClass<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #8FBCBB\">name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">default<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">---<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">apiVersion<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">karpenter.k8s.aws\/v1beta1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">kind<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">EC2NodeClass<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">metadata<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">name<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">default<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">spec<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">  <\/span><span style=\"color: #616E88\"># Required, resolves a default ami and userdata<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">amiFamily<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">AL2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">  <\/span><span style=\"color: #616E88\"># Required, discovers subnets to attach to instances<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">  <\/span><span style=\"color: #616E88\"># Each term in the array of subnetSelectorTerms is ORed together<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">  <\/span><span style=\"color: #616E88\"># Within a single term, all conditions are ANDed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #8FBCBB\">subnetSelectorTerms<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\"># Select on any subnet that has the &quot;karpenter.sh\/discovery: ${CLUSTER_NAME}&quot;<\/span><\/span><\/code><\/pre><\/div>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Create_NodePool%EA%B5%AC_Provisioner\"><\/span>Create NodePool(\uad6c Provisioner)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1836\" height=\"988\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/EKS_kapenter_provisioner_practice.gif\" alt=\"\" class=\"wp-image-1386\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Disruption_%EA%B5%AC_Consolidation\"><\/span>Disruption (\uad6c Consolidation)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1836\" height=\"988\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/EKS_kapenter_Disruption_practice-3.gif\" alt=\"\" class=\"wp-image-1390\"\/><\/figure>\n<script type=\"text\/javascript\"> toolTips('.classtoolTips6','\ub2e4\uc218\uc758 EC2\uc11c\ubc84\uc5d0\uc11c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ud638\uc2a4\ud305\ud558\ub294 \uacbd\uc6b0 \uc774\ub4e4 \uc77c\ub828\uc758 EC2 \uc11c\ubc84\uc9d1\ud569\uc744 \uce6d\ud568'); <\/script><script type=\"text\/javascript\"> toolTips('.classtoolTips11','<span class=\"notion-enable-hover\" data-token-index=\"0\">Uniform Resource Locator<br\/><\/span><br\/><br\/><a href=\"\/wordpress\/?p=65\">Detail<\/a>'); <\/script>","protected":false},"excerpt":{"rendered":"<p>\uc624\ud1a0\uc2a4\ucf00\uc77c\ub9c1\uc740 \ud074\ub77c\uc6b0\ub4dc \ucef4\ud4e8\ud305\uc5d0\uc11c \uc790\ub3d9\uc73c\ub85c \uc11c\ubc84 \ub610\ub294 \ucef4\ud4e8\ud305 \ub9ac\uc18c\uc2a4\ub97c \ub298\ub9ac\uac70\ub098 \uc904\uc774\ub294 \uae30\uc220\uc785\ub2c8\ub2e4. \uc774 \uae30\uc220\uc740 \ud2b8\ub798\ud53d\uc774\ub098 \uc791\uc5c5 \ubd80\ud558\uac00 \uc99d\uac00 \ub610\ub294 \uac10\uc18c\ud560 \ub54c \uc790\uc6d0\uc744 \ub3d9\uc801\uc73c\ub85c \uc870\uc815\ud558\uc5ec \uc131\ub2a5\uc744 \ucd5c\uc801\ud654\ud558\uace0 \ube44\uc6a9\uc744 \uc808\uac10\ud569\ub2c8\ub2e4. \uc8fc\uc694 \ud074\ub77c\uc6b0\ub4dc \uc11c\ube44\uc2a4 \uc81c\uacf5\uc5c5\uccb4\ub4e4\uc740 \uc790\uccb4\uc801\uc778 \uc624\ud1a0\uc2a4\ucf00\uc77c\ub9c1 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, \ub2e4\uc591\ud55c \uc124\uc815\uc744 \ud1b5\ud574 \uc0ac\uc6a9\uc790\uac00 \uc870\uc808\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uc6f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158, \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uc544\ud0a4\ud14d\ucc98, \ub370\uc774\ud130 \ucc98\ub9ac \uc791\uc5c5 \ub4f1 \ub2e4\uc591\ud55c \ud658\uacbd\uc5d0\uc11c \uc720\uc6a9\ud558\uac8c \ud65c\uc6a9\ub429\ub2c8\ub2e4. &#8230; <a title=\"05-[AEWS]-EKS Autoscaling\" class=\"read-more\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1330\" aria-label=\"More on 05-[AEWS]-EKS Autoscaling\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":""},"categories":[46],"tags":[],"_links":{"self":[{"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1330"}],"collection":[{"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1330"}],"version-history":[{"count":7,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1330\/revisions"}],"predecessor-version":[{"id":1400,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1330\/revisions\/1400"}],"wp:attachment":[{"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}