{"id":8094,"date":"2020-01-24T08:26:13","date_gmt":"2020-01-24T16:26:13","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8094"},"modified":"2025-06-13T19:40:22","modified_gmt":"2025-06-14T02:40:22","slug":"asp-net-core-kubernetes-tutorial-aks","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/asp-net-core-kubernetes-tutorial-aks\/","title":{"rendered":"AKS\uc6a9 ASP.NET \ucf54\uc5b4 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud29c\ud1a0\ub9ac\uc5bc"},"content":{"rendered":"<div class=\"paragraph\">\n<p>\uc774 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 \ub2e4\uc74c \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0 \ub300\ud55c \ud6c4\uc18d \uc870\uce58\ub85c ASP.NET \ucf54\uc5b4 Kubernetes \ud29c\ud1a0\ub9ac\uc5bc\uc744 \ub2e4\ub8f9\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/asp-net-core-microservices-getting-started\/\">ASP.NET \ud575\uc2ec \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4: \uc2dc\uc791\ud558\uae30<\/a>.<\/p>\n<\/div>\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">\ubc29\uae08 \uc774 \uc601\uc0c1\uc744 \ubcf4\uace0 \uc608\uc0c1\ud588\ub358 \uac83\ubcf4\ub2e4 \ud6e8\uc52c \ub354 \ud06c\uac8c \uc6c3\uc5c8\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/t.co\/R1wleGZM0B\">pic.twitter.com\/R1wleGZM0B<\/a><\/p>\n<p>- \uce74\ub974\uba58 \ud06c\ub9b0\ucf5c\ub9ac - @crincoli.org (@CarmenCrincoli) <a href=\"https:\/\/twitter.com\/CarmenCrincoli\/status\/1158772188402475010?ref_src=twsrc%5Etfw\">2019\ub144 8\uc6d4 6\uc77c<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<div class=\"paragraph\">\n<p>\uc774\uc804 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\ub294 \ub85c\uceec \ubc30\ud3ec \ubc0f \uac1c\ubc1c \ubaa9\uc801\uc73c\ub85c docker-compose\ub97c \uc0ac\uc6a9\ud558\uc5ec Couchbase\ub97c \uc0ac\uc6a9\ud558\ub294 ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4. \ud504\ub85c\ub355\uc158 \uc900\ube44\uac00 \uc644\ub8cc\ub418\uba74, \uc11c\ube44\uc2a4\ub294 \uc885\uc885 \ub2e4\uc74c\uacfc \uac19\uc740 \uad00\ub9ac\ud615 Kubernetes \uc11c\ube44\uc2a4\uc5d0 \ubc30\ud3ec\ub429\ub2c8\ub2e4. <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/\">AKS<\/a>, <a href=\"https:\/\/aws.amazon.com\/eks\/\">EKS<\/a>, <a href=\"https:\/\/cloud.google.com\/kubernetes-engine\/\">GKE<\/a>\ub4f1<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 ASP.NET Core Kubernetes \uc790\uc2b5\uc11c\uc5d0\ub294 Azure AKS\uc640 \uad00\ub828\ub41c \uba87 \uac00\uc9c0 \ub2e8\uacc4\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0\ub9cc, \uc774 \uc790\ub8cc\uc758 \ub300\ubd80\ubd84\uc740 \ubaa8\ub4e0 Kubernetes \ud074\ub7ec\uc2a4\ud130\uc5d0 \uc801\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_asp_net_core_kubernetes_tutorial_overview\">ASP.NET Core Kubernetes \ud29c\ud1a0\ub9ac\uc5bc \uac1c\uc694<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uc774 ASP.NET \ucf54\uc5b4 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc790\uc2b5\uc11c\uc5d0\uc11c\ub294 \uc774\ub7ec\ud55c \ub2e8\uacc4\ub97c \uc548\ub0b4\ud574\ub4dc\ub9ac\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\ub3c4\ucee4 \uc774\ubbf8\uc9c0\ub97c \ube4c\ub4dc\ud558\uc5ec \ub3c4\ucee4 \ud5c8\ube0c\ub85c \ud478\uc2dc\ud558\uae30<\/li>\n<li>Azure\uc5d0\uc11c AKS \ud074\ub7ec\uc2a4\ud130 \ub9cc\ub4e4\uae30<\/li>\n<li>AKS\uc5d0 ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \ubc30\ud3ec<\/li>\n<li>\ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc624\ud37c\ub808\uc774\ud130\ub97c \uc0ac\uc6a9\ud558\uc5ec \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84\ub97c \ubc30\ud3ec\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub610\ud55c \uc120\ud0dd \uc0ac\ud56d\uc774\uc9c0\ub9cc \ub9e4\uc6b0 \uc720\uc6a9\ud55c \uba87 \uac00\uc9c0 \uc8fc\uc81c\ub97c \ub2e4\ub8e8\ub824\uace0 \ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>DNS SRV\ub97c \uc0ac\uc6a9\ud558\uc5ec ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uac00 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ucc3e\uc744 \uc218 \uc788\ub3c4\ub85d \ud5c8\uc6a9\ud558\uae30<\/li>\n<li>AKS \ud30c\ub4dc\uc5d0 \ub300\ud55c \ud130\ub110 \uc561\uc138\uc2a4\ub97c \uc704\ud574 kubectl\ub85c \ud3ec\ud2b8 \ud3ec\uc6cc\ub529 \uc124\uc815\ud558\uae30<\/li>\n<li>AKS\uc5d0\uc11c Kubernetes \ub300\uc2dc\ubcf4\ub4dc \ubcf4\uae30<\/li>\n<li>ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub97c \uc778\ud130\ub137\uc5d0 \ub178\ucd9c\ud558\uae30 \uc704\ud574 Kubernetes\uc5d0\uc11c \ub85c\ub4dc \ubc38\ub7f0\uc11c \uc11c\ube44\uc2a4 \uc124\uc815\ud558\uae30<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc744 \ucd5c\ub300\ud55c \ud65c\uc6a9\ud558\uae30 \uc704\ud55c \uc804\uc81c \uc870\uac74\uc785\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\ub3c4\ucee4 \uc124\uce58, \ub3c4\ucee4 \ubc0f \ub3c4\ucee4 \ud5c8\ube0c\uc5d0 \ub300\ud55c \uae30\ubcf8 \uc9c0\uc2dd<\/li>\n<li>\ubc18\ub4dc\uc2dc \ud544\uc694\ud55c \uac83\uc740 \uc544\ub2c8\uc9c0\ub9cc \ube44\uc8fc\uc5bc \uc2a4\ud29c\ub514\uc624\uac00 \uc124\uce58\ub418\uc5b4 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/li>\n<li>Azure \uacc4\uc815(\uacc4\uc815\uc774 \uc5c6\ub294 \uacbd\uc6b0 \ub2e4\uc74c\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/azure.microsoft.com\/en-us\/free\/\">\uc9c0\uae08 \uac00\uc785\ud558\uace0 $200 \ud06c\ub808\ub527 \ubc1b\uae30<\/a> \ub97c \ubb34\ub8cc\ub85c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uc138\uc694.) EKS, GKE \ub4f1\uc744 \uc0ac\uc6a9\ud558\ub824\ub294 \uacbd\uc6b0\uc5d0\ub3c4 \uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc744 \ub530\ub77c\ud560 \uc218 \uc788\uc9c0\ub9cc \uba87 \uac00\uc9c0 \ub2e8\uacc4\ub97c \uc9c1\uc811 \ub300\uccb4\ud574\uc57c \ud569\ub2c8\ub2e4.<\/li>\n<li>kubectl(\ucfe0\ubc84\ub124\ud2f0\uc2a4\uc6a9)\uc774 \uc124\uce58\ub428<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_build_docker_image\">\ub3c4\ucee4 \uc774\ubbf8\uc9c0 \ube4c\ub4dc<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\ucfe0\ubc84\ub124\ud2f0\uc2a4 \ubc30\ud3ec\ub294 \ucee8\ud14c\uc774\ub108 \uc774\ubbf8\uc9c0\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ud504\ub77c\uc774\ube57 \ucee8\ud14c\uc774\ub108 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\ub97c \uc704\ud55c \ub9ce\uc740 \uc635\uc158\uc774 \uc788\uc2b5\ub2c8\ub2e4( <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/container-registry\/\">Azure \ucee8\ud14c\uc774\ub108 \ub808\uc9c0\uc2a4\ud2b8\ub9ac<\/a>), \ud558\uc9c0\ub9cc \uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc5d0\uc11c\ub294 \uac04\ub2e8\ud558\uac8c \uc124\uba85\ud558\uae30 \uc704\ud574 \ud3c9\ubc94\ud55c \uc624\ub798\ub41c <a href=\"https:\/\/hub.docker.com\/\">\ub3c4\ucee4 \ud5c8\ube0c<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uba3c\uc800 \uc774\uc804 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c \ub9cc\ub4e0 ASP.NET \ucf54\uc5b4 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc5d0\uc11c Docker \uc774\ubbf8\uc9c0\ub97c \ube4c\ub4dc\ud558\ub294 \uac83\uc73c\ub85c \uc2dc\uc791\ud558\uaca0\uc2b5\ub2c8\ub2e4. Visual Studio\uc5d0\uc11c Docker\ud30c\uc77c\uc744 \ub9c8\uc6b0\uc2a4 \uc624\ub978\ucabd \ubc84\ud2bc\uc73c\ub85c \ud074\ub9ad\ud558\uace0 \"\ube4c\ub4dc \ub3c4\ucee4 \uc774\ubbf8\uc9c0\"\ub97c \uc120\ud0dd\ud558\uae30\ub9cc \ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/11\/12701-docker-build-visual-studio.png\" alt=\"ASP.NET Core Kubernetes tutorial: Visual Studio Build Docker Image\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\ubbf8\uc9c0\uac00 \ube4c\ub4dc\ub418\uba74 \ub85c\uceec Docker \uc774\ubbf8\uc9c0 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\uc5d0 \ud45c\uc2dc\ub429\ub2c8\ub2e4. \uba85\ub839\uc904\uc5d0\uc11c \"docker images\"\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc774 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-PowerShell\" data-lang=\"PowerShell\">PS C:\\Users\\mgroves&gt; docker images\r\nREPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE\r\nmattgroves\/hellomicroservice           latest              b2387e47a826        3 weeks ago         213MB\r\nhellomicroservice                      latest              b2387e47a826        3 weeks ago         213MB<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c \ub2e8\uacc4\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/docs.docker.com\/engine\/reference\/commandline\/push\/\">\uc774 \uc774\ubbf8\uc9c0\ub97c \ub3c4\ucee4 \ud5c8\ube0c\ub85c \ud478\uc2dc\ud569\ub2c8\ub2e4.<\/a> (\uc774\uc804\uc5d0 Docker \ud5c8\ube0c\ub97c \uc0ac\uc6a9\ud574 \ubcf8 \uc801\uc774 \uc5c6\ub294 \uacbd\uc6b0 \uac80\ud1a0\ud558\uc138\uc694). \uc800\ub294 \uc774\ubbf8\uc9c0\ub97c Docker\uc5d0 \ud478\uc2dc\ud588\uc2b5\ub2c8\ub2e4. <code>\ub3c4\ucee4 \ud478\uc2dc \ub9e4\ud2b8\uadf8\ub85c\ube0c\/\ud5ec\ub85c\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4<\/code> \uba85\ub839\uc744 \uc2e4\ud589\ud55c\ub2e4. \ub300\ubd80\ubd84 \uc774\ubbf8\uc9c0\uc5d0 \ub9b4\ub9ac\uc2a4 \ubc88\ud638\ub97c \ud0dc\uadf8\ud558\uc5ec Kubernetes\uac00 \ubc30\ud3ec\ud558\ub824\ub294 \uc815\ud655\ud55c \ubc84\uc804\uc744 \uac00\uc838\uc624\ub294\uc9c0 \ud655\uc778\ud558\uace0 \uc2f6\uc744 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \ub2e8\uacc4\ub97c \uac74\ub108\ub6f0\uace0 \uc2f6\ub2e4\uba74 \uc81c Docker \uc774\ubbf8\uc9c0\ub97c \uc608\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4: <a href=\"https:\/\/hub.docker.com\/repository\/docker\/mattgroves\/hellomicroservice\">\ub9e4\ud2b8\uadf8\ub85c\ube0c\/\ud5ec\ub85c\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_write_yaml_files_for_deployment\">\ubc30\ud3ec\ub97c \uc704\ud55c YAML \ud30c\uc77c \uc791\uc131<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uc774\uc81c Docker \uc774\ubbf8\uc9c0\ub97c \uac8c\uc2dc\ud588\uc73c\ubbc0\ub85c, Kubernetes \ubc30\ud3ec\ub97c \uc704\ud55c YAML \ud30c\uc77c \uc791\uc131\uc744 \uc2dc\uc791\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc790\uc2b5\uc11c\uc5d0\uc11c\ub294 Kubernetes\uc5d0 \ub300\ud574 \uc54c\uc544\uc57c \ud560 \ubaa8\ub4e0 \uac83\uc744 \ub2e4\ub8e8\uc9c0\ub294 \uc54a\uc9c0\ub9cc \uac00\ub2a5\ud55c \ud55c \uc8fc\ubaa9\ud560 \ub9cc\ud55c \ubd80\ubd84\uc744 \uc9c0\uc801\ud560 \uac83\uc785\ub2c8\ub2e4. \uc774 \uc790\uc2b5\uc11c\uc5d0\uc11c\ub294 Couchbase Operator\uc640 \ud568\uaed8 \uc81c\uacf5\ub418\ub294 YAML \ud30c\uc77c\uacfc \ud568\uaed8 \ucd1d 3\uac1c\uc758 YAML \ud30c\uc77c\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\ub7ec\ud55c \uac01 YAML \ud30c\uc77c\uc740 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ub9ac\uc18c\uc2a4\uc5d0 \ud574\ub2f9\ud55c\ub2e4. \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub294 \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c \uc0dd\uc131\ud55c \ub9ac\uc18c\uc2a4\uc5d0 \ub530\ub77c \ud074\ub7ec\uc2a4\ud130\ub97c \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>ASP.NET \ucf54\uc5b4 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \ub9ac\uc18c\uc2a4\uc640 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud074\ub7ec\uc2a4\ud130 \ub9ac\uc18c\uc2a4\ub294 \uac01\uac01 \ud558\ub098 \uc774\uc0c1\uc758 <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/pods\/pod\/\">\"pods\"<\/a> \ub97c \uc0dd\uc131\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uc720\ud615\uc758 \ub9ac\uc18c\uc2a4\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/secret\/\">\"\ube44\ubc00\"<\/a> (\ubbfc\uac10\ud55c \uc815\ubcf4\ub97c \uad00\ub9ac \ubc0f \uc800\uc7a5\ud558\uae30 \uc704\ud574) \ubc0f <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/service\/\">\"\uc11c\ube44\uc2a4\"<\/a> (\ud3ec\ub4dc \uc138\ud2b8\ub97c \ub178\ucd9c\ud558\uae30 \uc704\ud574) \ubc0f \uae30\ud0c0 \uc5ec\ub7ec \uac00\uc9c0\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_asp_net_core_microservice\">ASP.NET \ud575\uc2ec \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4<\/h3>\n<div class=\"paragraph\">\n<p>\uba3c\uc800 ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \ubc30\ud3ec\ub97c \uc704\ud55c YAML \ud30c\uc77c\ubd80\ud130 \ub9cc\ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-YAML\" data-lang=\"YAML\">apiVersion: apps\/v1beta1 # for versions before 1.8.0 use apps\/v1beta1\r\nkind: Deployment\r\nmetadata:\r\n  name: hello-microservice-app-deployment\r\nspec:\r\n  selector:\r\n    matchLabels:\r\n      app: hello-microservice-app\r\n  replicas: 1 # tells deployment to run # pods matching the template\r\n  template: # create pods using pod definition in this template\r\n    metadata:\r\n      labels:\r\n        app: hello-microservice-app\r\n    spec:\r\n      containers:\r\n      - name: hello-microservice-app\r\n        image: mattgroves\/hellomicroservice\r\n        imagePullPolicy: Always\r\n        ports:\r\n        - containerPort: 80\r\n          name: server\r\n        env:\r\n        - name: Couchbase__Username\r\n          valueFrom:\r\n            secretKeyRef:\r\n              name: cb-hellomicroservices-auth\r\n              key: username\r\n        - name: Couchbase__Password\r\n          valueFrom:\r\n            secretKeyRef:\r\n              name: cb-hellomicroservices-auth\r\n              key: password\r\n        - name: Couchbase__ConnectionString\r\n          value: couchbase:\/\/cb-hellomicroservices-srv\r\n        resources:\r\n          requests:\r\n            cpu: 100m\r\n            memory: 128Mi\r\n          limits:\r\n            cpu: 250m\r\n            memory: 256Mi<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>hello-microservice.yaml\uc5d0 \ub300\ud55c \ucc38\uace0 \uc0ac\ud56d:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><code>spec.replicas<\/code>: \uc774\uac83\uc740 \ucfe0\ubc84\ub124\ud2f0\uc2a4\uac00 \uc774 \uc11c\ube44\uc2a4\uc758 \ud30c\ub4dc \uc218\ub97c \uc0dd\uc131\ud560\uc9c0 \uc54c\ub824\uc900\ub2e4. \ucc98\uc74c\uc5d0\ub294 1\uac1c\ub85c\ub3c4 \ucda9\ubd84\ud558\uc9c0\ub9cc, \ud655\uc7a5\ud568\uc5d0 \ub530\ub77c \ub354 \ub9ce\uc740 \ud30c\ub4dc\uac00 \ud544\uc694\ud560 \uac83\uc785\ub2c8\ub2e4(\uadf8\ub9ac\uace0 \ub098\uc911\uc5d0 \ub2e4\ub8e8\uac8c \ub420 LoadBalancer\ub3c4 \ud544\uc694\ud560 \uac83\uc785\ub2c8\ub2e4).<\/li>\n<li><code>spec.template.spec.containers.image<\/code>: \uc774\uac83\uc740 \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc5d0 \uc5b4\ub5a4 \uc774\ubbf8\uc9c0\ub97c \uc0ac\uc6a9\ud560\uc9c0 \uc54c\ub824\uc900\ub2e4. \uc81c \uacbd\uc6b0\uc5d0\ub294 \uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc758 \uc55e\ubd80\ubd84\uc5d0\uc11c \ube4c\ub4dc\ud558\uace0 Docker \ud5c8\ube0c\uc5d0 \ubc30\ud3ec\ud55c \ub9e4\ud2b8\uadf8\ub85c\ube0c\/\ud5ec\ub85c\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uac00 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/li>\n<li><code>\ud658\uacbd<\/code>: \uc774\ub294 \uac01 \ucee8\ud14c\uc774\ub108\uc5d0 \ub300\ud55c \ud658\uacbd \ubcc0\uc218\ub97c \uc815\uc758\ud569\ub2c8\ub2e4. \uc774\ubbf8\uc9c0\uc5d0\uc11c \uc774\ub7ec\ud55c \uc790\uaca9 \uc99d\uba85\uc744 \ud558\ub4dc\ucf54\ub529\ud558\ub294 \ub300\uc2e0 \uc774\uc804 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c \ud588\ub358 \uac83\ucc98\ub7fc \uc0ac\uc6a9\uc790 \uc774\ub984, \ube44\ubc00\ubc88\ud638 \ubc0f \uc5f0\uacb0 \ubb38\uc790\uc5f4\uc744 ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc5d0 \uc804\ub2ec\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. Couchbase__ConnectionString \ubc0f DNS SRV\uc5d0 \ub300\ud574\uc11c\ub294 \ub098\uc911\uc5d0 \uc790\uc138\ud788 \uc124\uba85\ud569\ub2c8\ub2e4.<\/li>\n<li>Couchbase \ud074\ub7ec\uc2a4\ud130\uac00 \ub2e4\ub978 \ub124\uc784\uc2a4\ud398\uc774\uc2a4\uc5d0 \uc788\ub294 \uacbd\uc6b0 \"service.namespace\"\ub97c \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_couchbase_cluster\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud074\ub7ec\uc2a4\ud130<\/h3>\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c\uc73c\ub85c, \ub2e4\uc74c\uc740 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ub300\ud55c YAML \ud30c\uc77c\uc785\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/products\/cloud\/kubernetes\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc6b4\uc601\uc790<\/a>:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-YAML\" data-lang=\"YAML\">apiVersion: couchbase.com\/v1\r\nkind: CouchbaseCluster\r\nmetadata:\r\n  name: cb-hellomicroservices\r\nspec:\r\n  baseImage: couchbase\r\n  version: 6.5.0-beta2\r\n  authSecret: cb-hellomicroservices-auth\r\n  exposeAdminConsole: true\r\n  adminConsoleServices:\r\n    - data\r\n  cluster:\r\n    dataServiceMemoryQuota: 256\r\n    indexServiceMemoryQuota: 256\r\n    searchServiceMemoryQuota: 256\r\n    eventingServiceMemoryQuota: 256\r\n    analyticsServiceMemoryQuota: 1024\r\n    indexStorageSetting: plasma\r\n    autoFailoverTimeout: 30\r\n    autoFailoverMaxCount: 3\r\n    autoFailoverOnDataDiskIssues: true\r\n    autoFailoverOnDataDiskIssuesTimePeriod: 30\r\n    autoFailoverServerGroup: false\r\n  buckets:\r\n    - name: hellomicroservice\r\n      type: couchbase\r\n      memoryQuota: 256\r\n      replicas: 0\r\n      ioPriority: high\r\n      evictionPolicy: fullEviction\r\n      conflictResolution: seqno\r\n      enableFlush: false\r\n      enableIndexReplica: false\r\n  servers:\r\n    - size: 1\r\n      name: all_services\r\n      services:\r\n        - data\r\n        - index\r\n        - query<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 YAML \ud30c\uc77c \uc790\uccb4\ub9cc\uc73c\ub85c\ub294 \uc624\ud37c\ub808\uc774\ud130\ub97c \uc0ac\uc6a9\ud558\uae30\uc5d0 \ucda9\ubd84\ud558\uc9c0 \uc54a\uc9c0\ub9cc, \uc624\ud37c\ub808\uc774\ud130 \uc124\uce58\ub294 \uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc758 \ub4b7\ubd80\ubd84\uc5d0\uc11c \uc124\uba85\ud560 \uac83\uc774\ub2e4. \ub610\ud55c Operator \ud328\ud134\uc740 \uc810\uc810 \ub354 \uc77c\ubc18\ud654\ub418\uace0 \uc788\uc73c\uba70 Kubernetes\uc5d0\uc11c \uc0c1\ud0dc \uc800\uc7a5 \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub97c \uad00\ub9ac\ud558\ub294 \ud6a8\uacfc\uc801\uc778 \ubc29\ubc95\uc774\uc9c0\ub9cc, YAML\uc740 \uc0ac\uc6a9 \uc911\uc778 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ub530\ub77c \ub2ec\ub77c\uc9d1\ub2c8\ub2e4(\uc989, \uc774 YAML\uc740 Couchbase Server\uc5d0\uc11c\ub9cc \uc791\ub3d9\ud569\ub2c8\ub2e4).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>couchbase-cluster.yaml\uc5d0 \ub300\ud55c \ucc38\uace0 \uc0ac\ud56d:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><code>spec.version<\/code>\uc0ac\uc6a9\ud560 Couchbase \ucee8\ud14c\uc774\ub108 \uc774\ubbf8\uc9c0\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4. \uc800\ub294 \ubca0\ud0c02 \ub9b4\ub9ac\uc2a4\ub97c \uc0ac\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae00\uc744 \uc4f0\ub294 \ud604\uc7ac \uc774 \uc6b4\uc601\uc790\ub294 Enterprise \ubc84\uc804\uc5d0\uc11c\ub9cc \uc791\ub3d9\ud569\ub2c8\ub2e4. \uc774\ub294 \uace7 \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><code>spec.cluster<\/code>, <code>spec.buckets<\/code>, <code>spec.servers<\/code>Couchbase Server \ud074\ub7ec\uc2a4\ud130\uc5d0 \ub300\ud55c \ub2e4\uc591\ud55c \uc124\uc815\uc744 \uc815\uc758\ud569\ub2c8\ub2e4. \uc81c\ubc1c <a href=\"https:\/\/docs.couchbase.com\/operator\/current\/couchbase-cluster-config.html\">\uc804\uccb4 \ubaa9\ub85d\uc740 \ubb38\uc11c\ub97c \ucc38\uc870\ud558\uc138\uc694.<\/a> \uc124\uc815\uc758 \uc77c\ubd80\uc785\ub2c8\ub2e4. \uc774 \uc608\uc81c \ud30c\uc77c\uc740 \uc77c\ubd80\ub9cc \ub2e4\ub8e8\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_couchbase_secrets\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \"\ube44\ubc00\"<\/h3>\n<div class=\"paragraph\">\n<p>\ub610\ud55c \"\uc2dc\ud06c\ub9bf\" \ub9ac\uc18c\uc2a4\ub3c4 \uc0dd\uc131\ud588\uc2b5\ub2c8\ub2e4. \uc2dc\ud06c\ub9bf\uc740 \uc790\uaca9 \uc99d\uba85, \ube44\ubc00\ubc88\ud638, \uad8c\ud55c \ud1a0\ud070 \ub4f1\uacfc \uac19\uc740 \uad6c\uc131 \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\uace0 \uad00\ub9ac\ud560 \uc218 \uc788\ub294 \uacf3\uc73c\ub85c, Kubernetes API \uc790\uccb4\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-YAML\" data-lang=\"YAML\">apiVersion: v1\r\nkind: Secret\r\nmetadata:\r\n  name: cb-hellomicroservices-auth\r\ntype: Opaque\r\ndata:\r\n  username: QWRtaW5pc3RyYXRvcg== # Administrator\r\n  password: cGFzc3dvcmQ= # password<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \ube44\ubc00\uc5d0\ub294 Couchbase(\ubc0f ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4)\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub824\ub294 \uc790\uaca9 \uc99d\uba85\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. \uac12\uc740 base64\ub85c \uc778\ucf54\ub529\ub429\ub2c8\ub2e4(\uc8fc\uc11d\uc758 \uc2e4\uc81c \uac12). \uc774 \uc608\uc81c \uc790\uaca9 \uc99d\uba85\uc740 \uc2e4\uc81c \ubc30\ud3ec\uc5d0 \ucda9\ubd84\ud558\uc9c0 \uc54a\uc73c\ubbc0\ub85c \ucd94\uce21\ud558\uae30 \uc5b4\ub824\uc6b4 \uac83\uc73c\ub85c \ubcc0\uacbd\ud558\uc138\uc694.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ucc38\uace0 <code>\uba54\ud0c0\ub370\uc774\ud130.\uc774\ub984<\/code> \ub294 \"cb-hellomicroservices-auth\"\uc785\ub2c8\ub2e4. \uc774 \uc2dc\ud06c\ub9bf\uc774 \uc5b4\ub5bb\uac8c \ucc38\uc870\ub418\ub294\uc9c0 \ubcf4\ub824\uba74 hello-microservice.yaml \ubc0f couchbase-cluster.yaml\uc744 \ub2e4\uc2dc \uc0b4\ud3b4\ubcf4\uc138\uc694.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_dns_srv\">DNS SRV<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>hello-microservice.yaml\uc744 \ub2e4\uc2dc \uc0b4\ud3b4\ubcf4\uc138\uc694. \uc544\ub798 <code>\ud658\uacbd<\/code>\uc5d0\uc11c \"Couchbase__ConnectionString\" \ubc0f \"couchbase:\/\/cb-hellomicroservices-srv\"\uc758 \uc774\ub984\/\uac12 \uc30d\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. ASP.NET Core IP \uc8fc\uc18c\ub098 Couchbase Server \ub178\ub4dc\uc758 URL\uc744 \uc81c\uacf5\ud558\ub294 \ub300\uc2e0, \uc5f0\uacb0 \ubb38\uc790\uc5f4\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc774\ub97c <a href=\"https:\/\/support.dnsimple.com\/articles\/srv-record\/\">DNS SRV \ud56d\ubaa9<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Couchbase \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c Couchbase\ub97c \uc2e4\ud589\ud558\ub294 \uc2e4\uc81c \ud30c\ub4dc\ub294 \uc815\uae30\uc801\uc73c\ub85c \uc774\ub984\uc744 \ubcc0\uacbd\ud560 \uac00\ub2a5\uc131\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c DNS SRV\ub97c \uc0ac\uc6a9\ud558\uc5ec Couchbase \uc11c\ube44\uc2a4\ub97c \ucc3e\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4. \ub2e4\ud589\ud788\ub3c4 Couchbase \uc790\uc728 \uc6b4\uc601\uc790\ub294 DNS SRV \ud56d\ubaa9\uc744 \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uace7 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ub300\uc2dc\ubcf4\ub4dc\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uac8c \ub418\uaca0\uc9c0\ub9cc, \uadf8 \ub3d9\uc548\uc740 Couchbase \ud074\ub7ec\uc2a4\ud130 \uc774\ub984\uc5d0 \"-srv\"\ub97c \ub354\ud55c \uc774\ub984\uc774\ub77c\ub294 \uc810\uc5d0 \uc720\uc758\ud558\uc138\uc694. \ub530\ub77c\uc11c \uc800\ud76c\uc758 \uacbd\uc6b0, \"cb-hellomicroservices-srv\"\uac00 \ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uc804 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c \uc774\ud6c4 ASP.NET \ucf54\uc5b4 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc5d0 \ud55c \uac00\uc9c0 \uc0ac\uc18c\ud55c \ubcc0\uacbd\uc744 \ud588\uc2b5\ub2c8\ub2e4: \uc774\uc81c \uc800\ub294 <a href=\"https:\/\/github.com\/couchbaselabs\/Couchbase.Extensions\/blob\/master\/docs\/dns-srv.md\">Couchbase.Extensions.DnsDiscovery<\/a> \ub77c\uc774\ube0c\ub7ec\ub9ac.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>NuGet\uc5d0\uc11c \uc774 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ucd94\uac00\ud558\uace0 \uc571\uc124\uc815.json\uc5d0\uc11c Server \ub300\uc2e0 ConnectionString\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83 \uc678\uc5d0 \ubcc0\uacbd\ud574\uc57c \ud560 \ub2e4\ub978 \uc0ac\ud56d\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <code>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4Dns\ub514\uc2a4\ucee4\ubc84\ub9ac \ucd94\uac00<\/code> \ub0b4\uc5d0\uc11c <code>\uc11c\ube44\uc2a4 \uad6c\uc131<\/code> \uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-C#\" data-lang=\"C#\">services.AddCouchbase(Configuration.GetSection(\"Couchbase\"));\r\nservices.AddCouchbaseDnsDiscovery();<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc544\uc8fc \uac04\ub2e8\ud569\ub2c8\ub2e4. DNS SRV\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \ub2e4\uc74c\uc744 \ud655\uc778\ud558\uc138\uc694. <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/dns-pod-service\/#srv-records\">SRV \ub808\ucf54\ub4dc<\/a> \ub97c \ucc38\uc870\ud558\uc138\uc694.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_deployment_to_aks\">AKS\uc5d0 \ubc30\ud3ec<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uc774\uc81c AKS\uc5d0 \ubc30\ud3ec\ud560 \uc900\ube44\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc9c0\uae08\uae4c\uc9c0 \uc900\ube44\ub41c \ub0b4\uc6a9\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li>\ub3c4\ucee4 \ud5c8\ube0c\uc758 ASP.NET \ucf54\uc5b4 \ub3c4\ucee4 \uc774\ubbf8\uc9c0<\/li>\n<li>ASP.NET Core \ubc30\ud3ec\uc6a9 YAML \ud30c\uc77c<\/li>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud074\ub7ec\uc2a4\ud130 \ubc30\ud3ec\ub97c \uc704\ud55c YAML \ud30c\uc77c<\/li>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc2dc\ud06c\ub9bf\uc744 \uc704\ud55c YAML \ud30c\uc77c(2\uc640 3\uc5d0\uc11c \ucc38\uc870)<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>AKS\uc5d0 \ubc30\ud3ec\ud558\uae30 \uc704\ud574 <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/kubernetes-walkthrough\">\ube60\ub978 \uc2dc\uc791: Azure CLI\ub97c \uc0ac\uc6a9\ud558\uc5ec Azure Kubernetes Service \ud074\ub7ec\uc2a4\ud130 \ubc30\ud3ec\ud558\uae30<\/a> \ub97c \ucc38\uc870\ud558\uc138\uc694. \ub2e4\uc74c\uc740 \uc81c\uac00 \uc218\ud589\ud55c \ub2e8\uacc4\uc5d0 \ub300\ud55c \uac04\ub7b5\ud55c \uc694\uc57d\uc785\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>(\ub85c\uceec \uba85\ub839\uc904\uc744 \uc0ac\uc6a9\ud558\ub824\uba74 \ub2e4\uc74c\uc774 \uc788\ub294\uc9c0 \ud655\uc778\ud558\uc138\uc694. <a href=\"https:\/\/docs.microsoft.com\/en-us\/cli\/azure\/install-azure-cli?view=azure-cli-latest\">azure-cli<\/a> \uac00 \uc124\uce58\ub418\uc5b4 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uadf8\ub807\uc9c0 \uc54a\uc740 \uacbd\uc6b0 <a href=\"https:\/\/shell.azure.com\/\">Azure \ud074\ub77c\uc6b0\ub4dc \uc178<\/a>).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uba3c\uc800 Azure\uc5d0 \ub85c\uadf8\uc778\ud569\ub2c8\ub2e4: <code>az \ub85c\uadf8\uc778<\/code>. \uc6f9 \ube0c\ub77c\uc6b0\uc800\uc5d0 \uc790\uaca9 \uc99d\uba85\uc744 \uc785\ub825\ud558\ub77c\ub294 \uba54\uc2dc\uc9c0\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub85c\uadf8\uc778\ud55c \ud6c4 \uba3c\uc800 '\ub9ac\uc18c\uc2a4 \uadf8\ub8f9'\uc744 \ub9cc\ub4ed\ub2c8\ub2e4. \uc774 \uadf8\ub8f9\uc740 Azure \ub0b4\uc758 \uc870\uc9c1 \uadf8\ub8f9\uc785\ub2c8\ub2e4. \ub370\uc774\ud130 \uc13c\ud130\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4(\uc800\ub294 eastus\ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4).<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>az \uadf8\ub8f9 \uc0dd\uc131 --\uc774\ub984 helloMicroserviceGroup --location eastus<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c\uc73c\ub85c \ubc29\uae08 \ub9cc\ub4e0 \ub9ac\uc18c\uc2a4 \uadf8\ub8f9\uc744 \uc0ac\uc6a9\ud558\uc5ec AKS \ud074\ub7ec\uc2a4\ud130\ub97c \ub9cc\ub4ed\ub2c8\ub2e4. \uc774\ub97c \uc704\ud55c \ub9ce\uc740 \uc635\uc158\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uc5f0\uc2b5\uc744 \ube44\uad50\uc801 \uc800\ub834\ud558\uace0 \uac04\ub2e8\ud558\uac8c \uc720\uc9c0\ud558\uae30 \uc704\ud574, \uc800\ub294 Standard_B2s VM \ud06c\uae30\ub97c \uc0ac\uc6a9\ud558\uc5ec 3\uac1c\uc758 \ub178\ub4dc\ub97c \uc0dd\uc131\ud558\uae30\ub85c \ud588\uc2b5\ub2c8\ub2e4. Couchbase\uc758 \ud504\ub85c\ub355\uc158 \ubc30\ud3ec\uc758 \uacbd\uc6b0, \ub354 \uac15\ub825\ud55c \ud06c\uae30\uac00 \ud544\uc694\ud558\uac70\ub098 \uc6d0\ud560 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>az aks create --resource-group helloMicroserviceGroup --name helloMicroserviceAks --node-count 3 --node-vm-size Standard_B2s --enable-addons monitoring --generate-ssh-keys<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 \ub2e8\uacc4\ub294 \uc2e4\ud589\ud558\ub294 \ub370 \uc2dc\uac04\uc774 \ub2e4\uc18c \uac78\ub9bd\ub2c8\ub2e4. Azure\uc5d0\uc11c \uc774 Kubernetes AKS \ud074\ub7ec\uc2a4\ud130\ub97c \uc124\uc815\ud558\ub294 \ub370 \uc57d 10\ubd84 \uc815\ub3c4 \uc18c\uc694\ub420 \uac83\uc73c\ub85c \uc608\uc0c1\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud074\ub7ec\uc2a4\ud130\uac00 \uc0dd\uc131\ub418\uba74 <code>\uc790\uaca9 \uc99d\uba85 \uac00\uc838\uc624\uae30<\/code> \ub97c \uc0ac\uc6a9\ud558\uc5ec kubectl\uc774 \uc0ac\uc6a9\ud560 \ud074\ub7ec\uc2a4\ud130\ub97c \uc54c\ub9b0\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>az aks get-credentials --resource-group helloMicroserviceGroup --name helloMicroserviceAks<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uc81c \ub2e4\uc74c\uc744 \uc218\ud589\ud574\uc57c \ud560 \ub54c\uc785\ub2c8\ub2e4. <strong>create<\/strong> \uc77c\ubd80 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ub9ac\uc18c\uc2a4. \ucc98\uc74c 6\uac1c\uc758 YAML \ud30c\uc77c\uc740 \"Kubernetes\" \uc544\ub798\uc5d0\uc11c \ub2e4\uc6b4\ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/downloads\/\">couchbase.com\/downloads<\/a>.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-PowerShell\" data-lang=\"PowerShell\">kubectl create -f crd.yaml\r\nkubectl create -f admission.yaml\r\nkubectl create -f operator-role.yaml\r\nkubectl create -f operator-service-account.yaml\r\nkubectl create -f operator-role-binding.yaml\r\nkubectl create -f operator-deployment.yaml<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub7f0 \ub2e4\uc74c \uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc5d0\uc11c \ub9cc\ub4e0 \uc138 \uac1c\uc758 YAML \ud30c\uc77c\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-PowerShell\" data-lang=\"PowerShell\">kubectl create -f secret.yaml\r\nkubectl create -f couchbase-cluster.yaml\r\nkubectl create -f hello-microservice.yaml<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud30c\ub4dc\uc758 \uc0c1\ud0dc\ub97c \ud655\uc778\ud558\ub824\uba74, \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud55c\ub2e4. <code>kubectl \ud30c\ub4dc \uac00\uc838\uc624\uae30<\/code>. Couchbase \ud3ec\ub4dc\uac00 \uc900\ube44\ub418\ub294 \ub370 \uba87 \ubd84 \uc815\ub3c4 \uac78\ub9bd\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_port_forwarding\">\ud3ec\ud2b8 \ud3ec\uc6cc\ub529<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\uc704\uc758 \ubc30\ud3ec\uc5d0\uc11c, Kubernetes \ubc30\ud3ec \uc911 \uc5b4\ub5a4 \uac83\ub3c4 \uc2e4\uc81c\ub85c Kubernetes \uc678\ubd80\uc5d0 \ub178\ucd9c\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uac00 \uc791\ub3d9\ud558\ub294\uc9c0 \ud655\uc778\ud560 \uc218 \uc788\ub294 \ud55c \uac00\uc9c0 \ubc29\ubc95\uc740 <code>kubectl \ud3ec\ud2b8 \ud3ec\uc6cc\ub4dc<\/code> \uba85\ub839\uc744 \uc2e4\ud589\ud569\ub2c8\ub2e4. \uadf8\ub7ec\uba74 \uc9c0\uc815\ub41c \ud30c\ub4dc\uc5d0 \ub85c\uceec\ud638\uc2a4\ud2b8 \"\ud130\ub110\"\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc608\ub97c \ub4e4\uc5b4, \ub85c\uceec \ud638\uc2a4\ud2b8 \ud3ec\ud2b8 5000\uc5d0\uc11c \ud3ec\ud2b8 80\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 ASP.NET Core \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\ub85c \ud130\ub110\uc744 \ub9cc\ub4e4\uc5b4 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>kubectl \ud3ec\ud2b8 \ud3ec\uc6cc\ub4dc  5000:80<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uc81c \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c https:\/\/locahost:5000 \uc744 \uc0ac\uc6a9\ud558\uc5ec \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub9c8\ucc2c\uac00\uc9c0\ub85c \uae30\ubcf8 \uc81c\uacf5 \uc6f9 \uae30\ubc18 Couchbase Server UI\ub85c \ud130\ub110\uc744 \uc124\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>kubectl \ud3ec\ud2b8 \ud3ec\uc6cc\ub4dc CB-\ud5ec\ub85c\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4-0000 8091:8091<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\uc81c https:\/\/localhost:8091 \uc744 \uc0ac\uc6a9\ud558\uc5ec Couchbase \ud074\ub7ec\uc2a4\ud130\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ud3ec\ud2b8 \ud3ec\uc6cc\ub4dc \uba85\ub839\uc740 \uac1c\ubc1c\uc790\uc640 \uc6b4\uc601\ud300\uc5d0 \ub3c4\uc6c0\uc774 \ub420 \uc218 \uc788\uc9c0\ub9cc, \uacc4\uc18d \uc77d\uc73c\uba74\uc11c Kubernetes \uc11c\ube44\uc2a4\ub97c \uc778\ud130\ub137\uc5d0 \ub178\ucd9c\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uc138\uc694.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_expose_service_with_load_balancer\">\ub85c\ub4dc\ubc38\ub7f0\uc11c\ub97c \ud1b5\ud55c \uc11c\ube44\uc2a4 \ub178\ucd9c<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\ud3ec\ud2b8 \ud3ec\uc6cc\ub529\uc744 \ud1b5\ud574 Kubernetes \ud074\ub7ec\uc2a4\ud130 \uc678\ubd80\uc758 \ud30c\ub4dc\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc9c0\ub9cc, \ud30c\ub4dc\uac00 \ubd88\uac00\ud53c\ud558\uac8c \ucda9\ub3cc\ud558\uac70\ub098 \uc8fd\uace0 \uc0c8\ub85c\uc6b4 IP \uc8fc\uc18c, \ud30c\ub4dc \uc774\ub984 \ub4f1\uc73c\ub85c \ub2e4\uc2dc \ud0dc\uc5b4\ub098\ub294 \uacbd\uc6b0 \uc5b4\ub5bb\uac8c \ub420\uae4c\uc694? \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub97c \uc0ac\uc6a9\ud558\uba74 \ub2e4\uc74c\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/connect-applications-service\/\">\"\uc11c\ube44\uc2a4\" \ub9cc\ub4e4\uae30<\/a> \ub97c \uc0ac\uc6a9\ud558\uc5ec \ud558\ub098 \uc774\uc0c1\uc758 \ud30c\ub4dc\ub97c \ub17c\ub9ac\uc801\uc73c\ub85c \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc11c\ube44\uc2a4\ub294 \ubc30\ud3ec\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c YAML \ud30c\uc77c\uc5d0\uc11c \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc11c\ube44\uc2a4\ub97c \ub9cc\ub4e4 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4. <code>kubectl \ub178\ucd9c<\/code>. \uc608\ub97c \ub4e4\uc5b4, \ubc30\ud3ec\uc5d0\uc11c \uc0dd\uc131\ud55c ASP.NET Core \ud3ec\ub4dc\uc5d0 \ub300\ud55c \uc561\uc138\uc2a4\ub97c \uc81c\uacf5\ud558\ub294 \ub85c\ub4dc \ubc38\ub7f0\uc11c \uc11c\ube44\uc2a4\ub97c \ub178\ucd9c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>kubectl \ub178\ucd9c \ubc30\ud3ec \ud5ec\ub85c-\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4-\uc571-\ub514\ud50c\ub85c\uc774\uba3c\ud2b8 --port=80 --type=\ub85c\ub4dc\ubc38\ub7f0\uc11c<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc11c\ube44\uc2a4\uac00 \uc0dd\uc131\ub418\uba74 \uc678\ubd80 IP \uc8fc\uc18c\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4. \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc11c\ube44\uc2a4 \uc815\ubcf4\ub97c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>kubectl \uc11c\ube44\uc2a4 \ubc1b\uae30<\/code>.<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-PowerShell\" data-lang=\"PowerShell\">PS C:\\Users\\mgroves&gt; kubectl get services\r\nNAME                                TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)                          AGE\r\ncb-hellomicroservice                ClusterIP      None          &lt;none&gt;        8091\/TCP,18091\/TCP               17d\r\ncb-hellomicroservice-srv            ClusterIP      None          &lt;none&gt;        11210\/TCP,11207\/TCP              17d\r\ncb-hellomicroservice-ui             NodePort       10.0.194.12   &lt;none&gt;        8091:30624\/TCP,18091:31169\/TCP   17d\r\ncouchbase-operator-admission        ClusterIP      10.0.218.95   &lt;none&gt;        443\/TCP                          17d\r\nkubernetes                          ClusterIP      10.0.0.1      &lt;none&gt;        443\/TCP                          17d\r\nhello-microservice-app-deployment   LoadBalancer   10.0.6.87     20.NN.NN.21   80:32710\/TCP                     13s<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc6f9 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \ud574\ub2f9 IP \uc8fc\uc18c(\uc774 \uc608\uc5d0\uc11c\ub294 20.NN.NN.21)\ub97c \uc5f4\uba74 \ubc30\ud3ec\uc758 \ud30c\ub4dc\uc5d0 \ub300\ud55c \ub85c\ub4dc \ubc38\ub7f0\uc2f1\ub41c \uc561\uc138\uc2a4\uac00 \uc774\ub8e8\uc5b4\uc9d1\ub2c8\ub2e4. \ud655\uc7a5 \ub610\ub294 \ucd95\uc18c(\uc989, \ubcf5\uc81c\ubcf8 \uc218\ub97c \ubcc0\uacbd)\ud574\ub3c4 \uc11c\ube44\uc2a4\ub294 \ub3d9\uc77c\ud558\uac8c \uc720\uc9c0\ub418\uba70 \uacc4\uc18d \uc561\uc138\uc2a4\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_kubernetes_dashboard\">Kubernetes \ub300\uc2dc\ubcf4\ub4dc<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>\ucfe0\ubc84\ub124\ud2f0\uc2a4\uc5d0\ub294 \uc218\ub9ce\uc740 \uba85\ub839\uc904 \uba85\ub839\uc744 \uae30\uc5b5\ud560 \ud544\uc694 \uc5c6\uc774 \ud070 \uadf8\ub9bc\uc744 \uc2dc\uac01\ud654\ud558\ub294 \ub370 \uc720\uc6a9\ud55c \uc790\uccb4 UI \ub300\uc2dc\ubcf4\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ub300\uc2dc\ubcf4\ub4dc\uc5d0 \uc561\uc138\uc2a4\ud558\ub824\uba74 <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/kubernetes-dashboard\">AKS\uc6a9 Kubernetes \ub300\uc2dc\ubcf4\ub4dc<\/a>:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc561\uc138\uc2a4\ub97c \ud65c\uc131\ud654\ud558\uae30 \uc704\ud574 Kubernetes \ub300\uc2dc\ubcf4\ub4dc\uc5d0 \ub300\ud55c ClusterRoleBinding\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>kubectl \uc0dd\uc131 \ud074\ub7ec\uc2a4\ud130 \uc5ed\ud560 \ubc14\uc778\ub529 kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uadf8\ub7f0 \ub2e4\uc74c Azure\uc758 aks \ucc3e\uc544\ubcf4\uae30\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub300\uc2dc\ubcf4\ub4dc\ub97c \uc2dc\uc791\ud569\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>az aks \ucc3e\uc544\ubcf4\uae30 --\uc790\uc6d0 \uadf8\ub8f9 \ud5ec\ub85c\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uadf8\ub8f9 --\uc774\ub984 \ud5ec\ub85c\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4Aks<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774\ub807\uac8c \ud558\uba74 \uc6f9 \ube0c\ub77c\uc6b0\uc800\uac00 \uc790\ub3d9\uc73c\ub85c \ub300\uc2dc\ubcf4\ub4dc\ub97c \uc5f4\ub3c4\ub85d \ud2b8\ub9ac\uac70\ub429\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/11\/12702-kubernetes-dashboard-aks.png\" alt=\"Kubernetes Dashboard on AKS\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ub300\uc2dc\ubcf4\ub4dc\uc5d0\uc11c \ubaa8\ub4e0 \ud3ec\ub4dc, \uc11c\ube44\uc2a4, \uc2dc\ud06c\ub9bf, \ub178\ub4dc \ub4f1\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_next_steps\">\ub2e4\uc74c \ub2e8\uacc4<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>AKS\ub97c \uc0ac\uc6a9 \uc911\uc774\ub77c\uba74 \uc644\ub8cc\ub418\uba74 \ub9ac\uc18c\uc2a4 \uadf8\ub8f9\uc744 \uc81c\uac70\ud558\ub294 \uac83\uc744 \uc78a\uc9c0 \ub9c8\uc138\uc694. \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 Azure \uacc4\uc815\uc5d0\uc11c \uacc4\uc18d \uc2e4\ud589\ub418\uc5b4 \ucef4\ud4e8\ud305 \uc2dc\uac04\uc774 \uccad\uad6c\ub429\ub2c8\ub2e4. \uc774 \uc790\uc2b5\uc11c\uc5d0\uc11c \ud558\ub098\uc758 \uba85\ub839\uc73c\ub85c \uc804\uccb4 \ub9ac\uc18c\uc2a4 \uadf8\ub8f9\uc744 \uc81c\uac70\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>az \uadf8\ub8f9 \uc0ad\uc81c --\uc774\ub984 \ud5ec\ub85c\ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4\uadf8\ub8f9<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc774 ASP.NET Core Kubernetes \uc790\uc2b5\uc11c\uc5d0\uc11c\ub294 \ub9ce\uc740 \ub0b4\uc6a9\uc744 \ub2e4\ub8e8\uc5c8\uc9c0\ub9cc, \uc62c\ubc14\ub978 \ubc29\ud5a5\uc744 \uc81c\uc2dc\ud558\uace0 \"\uc548\ub155\ud558\uc138\uc694, \uc138\uc0c1\"\uc774\ub77c\ub294 \uc608\uc81c\ub85c \uc2dc\uc791\ud558\uae30\uc5d0 \ucda9\ubd84\ud588\uae30\ub97c \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\uc9c0\ub09c \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc5d0\uc11c\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c, \uc774 ASP.NET Core Kubernetes \ud29c\ud1a0\ub9ac\uc5bc\uc740 Twitch\uc758 \ub450 \ub77c\uc774\ube0c \ucf54\ub529 \uc2a4\ud2b8\ub9bc\uc758 \uc0b0\ubb3c\uc785\ub2c8\ub2e4. \ub2e4\uc74c\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/www.youtube.com\/watch?v=CJsC6RDd9yw\">\ud30c\ud2b8 1<\/a> \uadf8\ub9ac\uace0 <a href=\"https:\/\/www.youtube.com\/watch?v=vJz5TUy1Vdw\">\ud30c\ud2b8 2<\/a> \uc5d0\uc11c \ud655\uc778\ud558\uc138\uc694. \uad81\uae08\ud55c \uc810\uc774 \uc788\uc73c\uc2dc\ub2e4\uba74 <a href=\"https:\/\/twitch.tv\/matthewdgroves\">\ud2b8\uc704\uce58 \ub77c\uc774\ube0c \uc2a4\ud2b8\ub9ac\ubc0d<\/a> \ub2e4\uc74c\uc5d0 \ucc44\ud305\ud558\uc138\uc694!<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>\ucfe0\ubc84\ub124\ud2f0\uc2a4\ub294 \ub9e4\uc6b0 \uad11\ubc94\uc704\ud55c \uc8fc\uc81c\uc785\ub2c8\ub2e4. \uc5ec\uae30\uc11c\ubd80\ud130 \ub2e4\uc591\ud55c \ubc29\ud5a5\uc73c\ub85c \ub098\uc544\uac08 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uc740 \ud655\uc778\ud574 \ubcfc \uc218 \uc788\ub294 \uba87 \uac00\uc9c0 \ub9c1\ud06c\uc785\ub2c8\ub2e4:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p>\uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc5d0\uc11c\ub294 \ubc84\uc804 1.2\uc758 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc624\ud37c\ub808\uc774\ud130\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ubc84\uc804 2.0(\uace7 \ucd9c\uc2dc \uc608\uc815)\uc758 YAML\uc740 \ub2ec\ub77c\uc9c8 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p>\uc5d0\uc11c <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/\">Microsoft AKS \ubb38\uc11c<\/a>:<\/p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/kubernetes-walkthrough\">\ube60\ub978 \uc2dc\uc791: Azure CLI\ub97c \uc0ac\uc6a9\ud558\uc5ec Azure Kubernetes Service \ud074\ub7ec\uc2a4\ud130 \ubc30\ud3ec\ud558\uae30<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/kubernetes-dashboard\">Azure Kubernetes Service\uc5d0\uc11c Kubernetes \uc6f9 \ub300\uc2dc\ubcf4\ub4dc\uc5d0 \uc561\uc138\uc2a4\ud569\ub2c8\ub2e4.<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/li>\n<li>\n<p>\uc81c \ub3d9\ub8cc \ub370\ub2c8\uc2a4 \ub85c\uc0ac\ub85c\ubd80\ud130, <a href=\"https:\/\/github.com\/deniswsrosa\/microservices-on-kubernetes\">\ucfe0\ubc84\ub124\ud2f0\uc2a4\uc758 \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4<\/a> \uc608\uc640 \uadf8\uc758 \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/elastic-microservices-with-kubernetes-and-spring-boot\/\">Kubernetes\uc640 Spring Boot\ub85c Elastic \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4 \uad6c\ucd95\ud558\uae30<\/a><\/p>\n<\/li>\n<li>\n<p>\uc5d0\uc11c <a href=\"https:\/\/kubernetes.io\/\">Kubernetes<\/a>:<\/p>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https:\/\/kubernetes.io\/docs\/tutorials\/kubernetes-basics\/expose\/expose-intro\/\">\uc11c\ube44\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc571 \ub178\ucd9c<br \/>\n<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/connect-applications-service\/\">\uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \uc11c\ube44\uc2a4 \uc5f0\uacb0<\/a>\uc5d0\uc11c \ub85c\ub4dc\ubc38\ub7f0\uc11c\ub97c \uc5b8\uae09\ud558\ub294<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/li>\n<li>\n<p>\uc774 ASP.NET Core Kubernetes \uc790\uc2b5\uc11c\ub294 \uc774\uc804 \uac8c\uc2dc\ubb3c(\ub9c1\ud06c: https:\/\/www.couchbase.com\/blog\/asp-net-core-microservices-getting-started\/)\uc758 \ud6c4\uc18d \uac8c\uc2dc\ubb3c\uc784\uc744 \uc54c\ub824\ub4dc\ub9bd\ub2c8\ub2e4.<br \/>\n[ASP.NET \ud575\uc2ec \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4: \uc2dc\uc791\ud558\uae30]\ub97c \ucc38\uc870\ud558\uc138\uc694. \uc544\uc9c1 \uc77d\uc5b4\ubcf4\uc9c0 \uc54a\uc558\ub2e4\uba74 \ubc30\uacbd \uc9c0\uc2dd\uc744 \ub193\uce58\uace0 \uc788\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<\/li>\n<li>\n<p>\ud2b8\uc70c\ub9ac\uc624\ub294 \ub610\ud55c <a href=\"https:\/\/www.twilio.com\/blog\/cloud-native-asp-net-core-deploy-azure-kubernetes-service-docker\">\uc720\uc0ac\ud55c \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c<\/a> \ub294 \uba87 \ub2ec \uc804\uc5d0 Azure \ucee8\ud14c\uc774\ub108 \ub808\uc9c0\uc2a4\ud2b8\ub9ac\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>ASP.NET Core Kubernetes tutorial will be covered in this blog post, as a follow-up to ASP.NET Core Microservices: Getting Started. I just saw this and it made me laugh WAY HARDER than it probably should have. pic.twitter.com\/R1wleGZM0B &mdash; Carmen Crincoli [&hellip;]<\/p>","protected":false},"author":71,"featured_media":8098,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,10126,1816,2322],"tags":[1519,1896,1545,2103,1673,1500],"ppma_author":[8937],"class_list":["post-8094","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-asp-dotnet","category-couchbase-server","category-kubernetes","tag-docker","tag-docker-compose","tag-kubernetes","tag-microservices","tag-microsoft-azure","tag-tutorial"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.7.1 (Yoast SEO v25.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ASP.NET Core Kubernetes Tutorial for AKS - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"This ASP.NET Core Kubernetes tutorial includes: building a Docker image, creating an AKS cluster, deploying a microservice, deploying Couchbase Server\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/asp-net-core-kubernetes-tutorial-aks\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ASP.NET Core Kubernetes Tutorial for AKS\" \/>\n<meta property=\"og:description\" content=\"This ASP.NET Core Kubernetes tutorial includes: building a Docker image, creating an AKS cluster, deploying a microservice, deploying Couchbase Server\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/asp-net-core-kubernetes-tutorial-aks\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T16:26:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:40:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/127-hero-clouds-flowers.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"410\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"ASP.NET Core Kubernetes Tutorial for AKS\",\"datePublished\":\"2020-01-24T16:26:13+00:00\",\"dateModified\":\"2025-06-14T02:40:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/\"},\"wordCount\":2171,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/127-hero-clouds-flowers.jpg\",\"keywords\":[\"docker\",\"docker-compose\",\"kubernetes\",\"microservices\",\"Microsoft Azure\",\"tutorial\"],\"articleSection\":[\".NET\",\"ASP.NET\",\"Couchbase Server\",\"Kubernetes\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/\",\"name\":\"ASP.NET Core Kubernetes Tutorial for AKS - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/127-hero-clouds-flowers.jpg\",\"datePublished\":\"2020-01-24T16:26:13+00:00\",\"dateModified\":\"2025-06-14T02:40:22+00:00\",\"description\":\"This ASP.NET Core Kubernetes tutorial includes: building a Docker image, creating an AKS cluster, deploying a microservice, deploying Couchbase Server\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/127-hero-clouds-flowers.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/127-hero-clouds-flowers.jpg\",\"width\":1024,\"height\":410},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ASP.NET Core Kubernetes Tutorial for AKS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"ASP.NET Core Kubernetes Tutorial for AKS - The Couchbase Blog","description":"This ASP.NET Core Kubernetes tutorial includes: building a Docker image, creating an AKS cluster, deploying a microservice, deploying Couchbase Server","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/asp-net-core-kubernetes-tutorial-aks\/","og_locale":"ko_KR","og_type":"article","og_title":"ASP.NET Core Kubernetes Tutorial for AKS","og_description":"This ASP.NET Core Kubernetes tutorial includes: building a Docker image, creating an AKS cluster, deploying a microservice, deploying Couchbase Server","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/asp-net-core-kubernetes-tutorial-aks\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-01-24T16:26:13+00:00","article_modified_time":"2025-06-14T02:40:22+00:00","og_image":[{"width":1024,"height":410,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/127-hero-clouds-flowers.jpg","type":"image\/jpeg"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"12\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"ASP.NET Core Kubernetes Tutorial for AKS","datePublished":"2020-01-24T16:26:13+00:00","dateModified":"2025-06-14T02:40:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/"},"wordCount":2171,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/127-hero-clouds-flowers.jpg","keywords":["docker","docker-compose","kubernetes","microservices","Microsoft Azure","tutorial"],"articleSection":[".NET","ASP.NET","Couchbase Server","Kubernetes"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/","url":"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/","name":"ASP.NET Core Kubernetes Tutorial for AKS - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/127-hero-clouds-flowers.jpg","datePublished":"2020-01-24T16:26:13+00:00","dateModified":"2025-06-14T02:40:22+00:00","description":"This ASP.NET Core Kubernetes tutorial includes: building a Docker image, creating an AKS cluster, deploying a microservice, deploying Couchbase Server","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/127-hero-clouds-flowers.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/11\/127-hero-clouds-flowers.jpg","width":1024,"height":410},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/asp-net-core-kubernetes-tutorial-aks\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"ASP.NET Core Kubernetes Tutorial for AKS"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"\ub9e4\ud29c \uadf8\ub85c\ube0c\uc2a4","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"Matthew D. Groves\ub294 \ucf54\ub529\uc744 \uc88b\uc544\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4. C#, jQuery, PHP \ub4f1 \ubb34\uc5c7\uc774\ub4e0 \ud480 \ub9ac\ud018\uc2a4\ud2b8\ub97c \uc81c\ucd9c\ud560 \uc815\ub3c4\ub85c \ucf54\ub529\uc744 \uc88b\uc544\ud569\ub2c8\ub2e4. 90\ub144\ub300\uc5d0 \ubd80\ubaa8\ub2d8\uc758 \ud53c\uc790 \uac00\uac8c\ub97c \uc704\ud574 QuickBASIC POS \uc571\uc744 \ub9cc\ub4e0 \uc774\ud6c4\ub85c \uc804\ubb38\uc801\uc73c\ub85c \ucf54\ub529\uc744 \ud574\uc654\uc2b5\ub2c8\ub2e4. \ud604\uc7ac Couchbase\uc758 \uc120\uc784 \uc81c\ud488 \ub9c8\ucf00\ud305 \uad00\ub9ac\uc790\ub85c \uc77c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uac00 \uc2dc\uac04\uc5d0\ub294 \uac00\uc871\uacfc \ud568\uaed8 \ucd95\uad6c \uacbd\uae30\ub97c \uad00\ub78c\ud558\uace0 \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0\uc5d0 \ucc38\uc5ec\ud558\uba70 \uc2dc\uac04\uc744 \ubcf4\ub0c5\ub2c8\ub2e4. \uadf8\ub294 .NET\uc758 AOP, .NET\uc758 \ud504\ub85c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4, Pluralsight \uc800\uc790, Microsoft MVP\uc758 \uc800\uc790\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","first_name":"Matthew","last_name":"Groves","user_url":"https:\/\/crosscuttingconcerns.com","author_category":"","description":"Matthew D. Groves\ub294 \ucf54\ub529\uc744 \uc88b\uc544\ud558\ub294 \uc0ac\ub78c\uc785\ub2c8\ub2e4.  C#, jQuery, PHP \ub4f1 \ubb34\uc5c7\uc774\ub4e0 \ud480 \ub9ac\ud018\uc2a4\ud2b8\ub97c \uc81c\ucd9c\ud560 \uc815\ub3c4\ub85c \ucf54\ub529\uc744 \uc88b\uc544\ud569\ub2c8\ub2e4.  90\ub144\ub300\uc5d0 \ubd80\ubaa8\ub2d8\uc758 \ud53c\uc790 \uac00\uac8c\ub97c \uc704\ud574 QuickBASIC POS \uc571\uc744 \ub9cc\ub4e0 \uc774\ud6c4\ub85c \uc804\ubb38\uc801\uc73c\ub85c \ucf54\ub529\uc744 \ud574\uc654\uc2b5\ub2c8\ub2e4.  \ud604\uc7ac Couchbase\uc758 \uc120\uc784 \uc81c\ud488 \ub9c8\ucf00\ud305 \uad00\ub9ac\uc790\ub85c \uc77c\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\uac00 \uc2dc\uac04\uc5d0\ub294 \uac00\uc871\uacfc \ud568\uaed8 \ucd95\uad6c \uacbd\uae30\ub97c \uad00\ub78c\ud558\uace0 \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0\uc5d0 \ucc38\uc5ec\ud558\uba70 \uc2dc\uac04\uc744 \ubcf4\ub0c5\ub2c8\ub2e4.  \uadf8\ub294 .NET\uc758 AOP, .NET\uc758 \ud504\ub85c \ub9c8\uc774\ud06c\ub85c\uc11c\ube44\uc2a4, Pluralsight \uc800\uc790, Microsoft MVP\uc758 \uc800\uc790\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/8094","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=8094"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/8094\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/8098"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=8094"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=8094"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=8094"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=8094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}