{"id":7586,"date":"2019-09-04T18:03:55","date_gmt":"2019-09-05T01:03:55","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7586"},"modified":"2025-06-13T22:08:24","modified_gmt":"2025-06-14T05:08:24","slug":"tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/","title":{"rendered":"\ud29c\ud1a0\ub9ac\uc5bc: \ubbf8\ub2c8\ud050\ube0c\uc5d0\uc11c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc790\uc728 \uc6b4\uc601\uc790 \ud65c\uc6a9\ud558\uae30"},"content":{"rendered":"<p>\uc774 \uc2e4\uc2b5 \ud29c\ud1a0\ub9ac\uc5bc \ube14\ub85c\uadf8\ub294 \uc8fc\ub85c \ubbf8\ub2c8\ud050\ube0c\ub97c \uc2e4\ud589\ud558\ub294 \ub7a9\ud1b1\/\ub370\uc2a4\ud06c\ud1b1\uc5d0\uc11c Couchbase Kubernetes Operator\ub97c \uc124\uc815\ud558\ub294 \uac83\uc5d0 \ub300\ud55c \uc138\ubd80 \uc0ac\ud56d\uc744 \ub2e4\ub8f9\ub2c8\ub2e4. \uc0ac\uc6a9\uc790 \uc815\uc758 TLS \uc778\uc99d\uc11c\uc640 \uc601\uad6c \ubcfc\ub968\uc744 \uc124\uc815\ud558\ub294 \uac83\uc774 \ud2b9\uc9d5\uc785\ub2c8\ub2e4. \ud074\ub7ec\uc2a4\ud130\ub97c \ud655\uc7a5 \ubc0f \ucd95\uc18c\ud558\ub294 \ubc29\ubc95\ub3c4 \ud655\uc778\ud569\ub2c8\ub2e4. \ub610\ud55c Couchbase \ud074\ub7ec\uc2a4\ud130\uc758 \ubc31\uc5c5\/\ubcf5\uc6d0\uc744 \uc2e4\ud589\ud558\uace0 Python SDK\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc0d8\ud50c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc124\uce58\ub294 \ub178\ud2b8\ubd81\uc5d0\uc11c \uc2e4\ud589\ud560 \uc218 \uc788\ub294 \ubbf8\ub2c8\ud050\ube0c\ub97c \uc0ac\uc6a9\ud558\ub294 \uc624\ud508 \uc18c\uc2a4 \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc5d0\uc11c Couchbase Operator 1.2\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ubc30\ud3ec\ub294 \uba85\ub839\uc904 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uc5ec MacOS\uc5d0 \ubc30\ud3ec\ud569\ub2c8\ub2e4.<\/p>\n<h4>\uc2e4\uc2b5 \ud29c\ud1a0\ub9ac\uc5bc \uac1c\uc694<\/h4>\n<h4>\uc0ac\uc804 \uc694\uad6c \uc0ac\ud56d<\/h4>\n<h5>macOS\uc6a9 CLI \uba85\ub839, \uc544\ub798 \uba85\ub839\uc744 \uc0ac\uc6a9\ud558\uc5ec Mac\uc6a9 \ud328\ud0a4\uc9c0 \uad00\ub9ac\uc790\ub97c \uc5c5\ub370\uc774\ud2b8\ud558\uc138\uc694.<\/h5>\n<pre class=\"\">$ brew update<\/pre>\n<p><strong>\uc544\ub798 \ub9c1\ud06c\uc5d0\uc11c \ud558\uc774\ud37c\ubc14\uc774\uc800 \uc124\uce58<\/strong><\/p>\n<p><a href=\"https:\/\/download.virtualbox.org\/virtualbox\/6.0.10\/VirtualBox-6.0.10-132072-OSX.dmg\">https:\/\/download.virtualbox.org\/virtualbox\/6.0.10\/VirtualBox-6.0.10-132072-OSX.dmg<\/a><\/p>\n<p><strong>\ubbf8\ub2c8\ud050\ube0c \uc124\uce58<\/strong><\/p>\n<pre class=\"\">$ brew cask install minikube<\/pre>\n<p><strong>kubectl \uc124\uce58<\/strong><\/p>\n<p><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/#install-kubectl-on-macos\">https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/#install-kubectl-on-macos<\/a><\/p>\n<p>\uc544\ub798 \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubbf8\ub2c8\ud050\ube0c\ub97c \uc2dc\uc791\ud569\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/HINT\">[HINT]<\/a> \uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc5d0 \ud544\uc694\ud558\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \ub178\ud2b8\ubd81\uc758 \ubaa8\ub4e0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc911\uc9c0\/\uc885\ub8cc\ud558\uc138\uc694. \ubbf8\ub2c8\ud050\ube0c\uc5d0\uc11c \uc2e4\ud589 \uc911\uc778 \ubbf8\ub2c8\ud050\ube0c \ubc0f \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud074\ub7ec\uc2a4\ud130\ub294 \ub9ce\uc740 \ub9ac\uc18c\uc2a4\ub97c \ud544\uc694\ub85c \ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"\">$ sudo minikube start\r\n\r\n$ sudo kubectl cluster-info<\/pre>\n<p>\ub178\ud2b8\ubd81\uc758 \ubbf8\ub2c8\ud050\ube0c\uc5d0 \ub300\ud55c \ud658\uacbd \uc138\ubd80 \uc815\ubcf4\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"\">minikue on macos : v1.2.0<\/pre>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc624\ud37c\ub808\uc774\ud130\uac00 \ub178\ud2b8\ubd81\uc5d0\uc11c \uc791\ub3d9\ud558\ub3c4\ub85d vCPU\uc640 \uba54\ubaa8\ub9ac\ub97c 4 \ubc0f 4GiB\ub85c \uc124\uc815\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"\">sudo minikube config set memory 4096\r\nsudo minikube config set cpus 4\r\n\r\n<\/pre>\n<pre class=\"\">$ sudo minikube config view\r\n\r\n- cpus: 4\r\n- memory: 4096<\/pre>\n<p>\ubbf8\ub2c8\ud050\ube0c \ud074\ub7ec\uc2a4\ud130 \uc138\ubd80 \uc815\ubcf4<\/p>\n<pre class=\"\">$ sudo kubectl get nodes\r\n\r\nNAME STATUS ROLES AGE VERSION\r\nminikube Ready master 3d11h v1.15.0<\/pre>\n<h4>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc790\uc728 \uc6b4\uc601\uc790 \ubc30\ud3ec\ud558\uae30<\/h4>\n<h5>\uc785\ud559 \ucee8\ud2b8\ub864\ub7ec \ubc30\ud3ec<\/h5>\n<p>cd\ub97c dir \ud30c\uc77c\uc5d0 \ubcf5\uc0ac\ud558\uc5ec \ud544\uc694\ud55c yaml\uc5d0 \uc561\uc138\uc2a4\ud569\ub2c8\ub2e4. <a href=\"https:\/\/packages.couchbase.com\/kubernetes\/1.2.0\/couchbase-autonomous-operator-kubernetes_1.2.0-macos-x86_64.zip\">\ud30c\uc77c <\/a>\u00a0\ud328\ud0a4\uc9c0\ub97c \ub178\ud2b8\ubd81\uc5d0 \ub85c\uceec \ub514\ub809\ud1a0\ub9ac\uc5d0 \ub2e4\uc6b4\ub85c\ub4dc\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 \ubc30\ud3ec \ubc94\uc704\ub97c \uc9c0\uc5ed\ud654\ud558\uae30 \uc704\ud574 \ub124\uc784\uc2a4\ud398\uc774\uc2a4\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"\">$ sudo kubectl create namespace cbdb<\/pre>\n<h5>\uc2a4\ud0a4\ub9c8 \uc720\ud6a8\uc131 \uac80\uc0ac\ub97c \uc704\ud55c \ubcc0\ud558\ub294 \uc6f9\ud6c4\ud06c\uc778 \ubc30\ud3ec \ud5c8\uc6a9 \ucee8\ud2b8\ub864\ub7ec<\/h5>\n<pre class=\"\">$ sudo kubectl create -f admission.yaml --namespace cbdb<\/pre>\n<h5>\uc785\ud559 \ucee8\ud2b8\ub864\ub7ec\uc5d0 \ub300\ud55c \ubc30\ud3ec \ucffc\ub9ac<\/h5>\n<pre class=\"\">$ sudo kubectl get deployments --namespace cbdb\r\nNAME                         READY UP-TO-DATE AVAILABLE AGE\r\ncouchbase-operator-admission 1\/1       1          1     11m\r\n\r\n<\/pre>\n<h4>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc790\uc728 \uc6b4\uc601\uc790 \ubc30\ud3ec<\/h4>\n<h6>\uc0ac\uc6a9\uc790 \uc9c0\uc815 \ub9ac\uc18c\uc2a4 \uc815\uc758 \ubc30\ud3ec<\/h6>\n<p>CRD\uc758 \ubc94\uc704\ub294 k8s \ud074\ub7ec\uc2a4\ud130 \uc804\uccb4 \ub610\ub294 \ub124\uc784\uc2a4\ud398\uc774\uc2a4\uc5d0 \uad6d\ud55c\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc120\ud0dd\uc740 devops\/k8s \uad00\ub9ac\uc790\uc5d0\uac8c \ub2ec\ub824 \uc788\uc2b5\ub2c8\ub2e4. \uc544\ub798 \uc608\uc5d0\uc11c\ub294 \ud2b9\uc815 \ub124\uc784\uc2a4\ud398\uc774\uc2a4\ub85c \ub85c\uceec\ub77c\uc774\uc988\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"\">sudo kubectl create -f crd.yaml --namespace cbdb<\/pre>\n<h6>\uc6b4\uc601\uc790 \uc5ed\ud560 \ubc30\ud3ec<\/h6>\n<pre class=\"\">$ sudo kubectl create -f operator-role.yaml --namespace cbdb<\/pre>\n<h6>\uc11c\ube44\uc2a4 \uacc4\uc815 \ub9cc\ub4e4\uae30<\/h6>\n<pre class=\"\">$ sudo kubectl create serviceaccount couchbase-operator --namespace cbdb<\/pre>\n<h6>\uc11c\ube44\uc2a4 \uacc4\uc815 'couchbase-operator'\ub97c \uc6b4\uc601\uc790 \uc5ed\ud560\ub85c \ubc14\uc778\ub529\ud569\ub2c8\ub2e4.<\/h6>\n<pre class=\"\">$ sudo kubectl create rolebinding couchbase-operator --role couchbase-operator --serviceaccount cbdb:couchbase-operator --namespace cbdb<\/pre>\n<h6>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc790\uc728 \uc6b4\uc601\uc790 \ubc30\ud3ec \ubc30\ud3ec<\/h6>\n<pre class=\"\">$ sudo kubectl create -f operator-deployment.yaml --namespace cbdb<\/pre>\n<h6>\ucffc\ub9ac \ubc30\ud3ec<\/h6>\n<pre class=\"\">$ sudo kubectl get deployment --namespace cbdb\r\nNAME                           READY UP-TO-DATE AVAILABLE AGE\r\ncouchbase-operator              1\/1      1          1     20m\r\ncouchbase-operator-admission    1\/1      1          1     20m<\/pre>\n<h4>Couchbase \ud074\ub7ec\uc2a4\ud130 \ubc30\ud3ec<\/h4>\n<p>\ub124\uc784\uc2a4\ud398\uc774\uc2a4 dbdb\uc5d0 TLS \uc778\uc99d\uc11c \ubc30\ud3ec<br \/>\n\uc544\ub798 \ub9c1\ud06c\uc758 \ub3c4\uc6c0\ub9d0 \ud30c\uc77c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc801\uc808\ud55c \ub124\uc784\uc2a4\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\uba70, \uc5ec\uae30\uc11c\ub294 'cbdb'\ub97c \uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4. \ub9c1\ud06c \uc81c\uacf5 <a href=\"https:\/\/github.com\/ramdhakne\/blogs\/blob\/master\/external-connectivity\/x509-help.txt\">\uc5ec\uae30<\/a><\/p>\n<h6>kubectl\uc744 \ud1b5\ud574 \ubc30\ud3ec\ub41c TLS \uc2dc\ud06c\ub9bf \ucffc\ub9ac\ud558\uae30<\/h6>\n<pre class=\"\">$ sudo kubectl get secrets --namespace cbdb\r\nNAME TYPE DATA AGE\r\ncouchbase-operator-tls Opaque 1 14h\r\ncouchbase-server-tls Opaque 2 14h<\/pre>\n<h6>Couchbase UI\uc5d0 \uc561\uc138\uc2a4\ud558\uae30 \uc704\ud55c \ube44\ubc00 \ubc30\ud3ec<\/h6>\n<pre class=\"\">$ sudo kubectl create -f secret.yaml --namespace cbdb<\/pre>\n<h6>\ubbf8\ub2c8\ud050\ube0c k8s \ud074\ub7ec\uc2a4\ud130\uc5d0 \ub300\ud55c StorageClass \uc138\ubd80 \uc815\ubcf4 \ubcf4\uae30<\/h6>\n<pre class=\"\">$ sudo kubectl get storageclass\r\nNAME PROVISIONER AGE\r\nstandard (default) k8s.io\/minikube-hostpath 3d14h\r\n\r\n<\/pre>\n<h6>Couchbase \ud074\ub7ec\uc2a4\ud130 \ubc30\ud3ec<\/h6>\n<pre class=\"\">$ sudo kubectl create -f couchbase-persistent-cluster-tls-k8s-minikube.yaml --namespace cbdb<\/pre>\n<p>\uc704 \ubc30\ud3ec\ub97c \uc704\ud55c YAML \ud30c\uc77c\uc744 \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/raw.githubusercontent.com\/ramdhakne\/blogs\/master\/minikube\/couchbase-persistent-cluster-tls-k8s-minikube.yaml\">\uc5ec\uae30<\/a><\/p>\n<p>\ubaa8\ub4e0 \uac83\uc774 \uc21c\uc870\ub86d\uac8c \uc9c4\ud589\ub418\uba74 PV, TLS \uc778\uc99d\uc11c\uc640 \ud568\uaed8 \ubc30\ud3ec\ub41c Couchbase \ud074\ub7ec\uc2a4\ud130\ub97c \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"\">$ sudo kubectl get pods --namespace cbdb\r\nNAME READY STATUS RESTARTS AGE\r\ncb-opensource-k8s-0000 1\/1 Running 0 5h58m\r\ncb-opensource-k8s-0001 1\/1 Running 0 5h58m\r\ncb-opensource-k8s-0002 1\/1 Running 0 5h57m\r\ncouchbase-operator-864685d8b9-j72jd 1\/1 Running 0 20h\r\ncouchbase-operator-admission-7d7d594748-btnm9 1\/1 Running 0 20h\r\n\r\n<\/pre>\n<h6>Couchbase UI\uc5d0 \uc561\uc138\uc2a4<\/h6>\n<h6>Couchbase \ud074\ub7ec\uc2a4\ud130\uc5d0 \ub300\ud55c \uc11c\ube44\uc2a4 \uc138\ubd80 \uc815\ubcf4 \ubcf4\uae30<\/h6>\n<pre class=\"\">$ sudo kubectl get svc --namespace cbdb\r\nNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE 6h11m\r\ncb-opensource-k8s-ui NodePort 10.100.90.161 8091:30477\/TCP,18091:30184\/TCP\r\n\r\n<\/pre>\n<h6>CB UI \uc11c\ube44\uc2a4\ub97c \ud1b5\ud55c CB \ud074\ub7ec\uc2a4\ud130 \ub178\ucd9c<\/h6>\n<pre class=\"\">$ sudo kubectl port-forward service\/cb-opensource-k8s-ui 8091:8091 --namespace cbdb\r\nForwarding from 127.0.0.1:8091 -&gt; 8091\r\nForwarding from [::1]:8091 -&gt; 8091<\/pre>\n<h4><\/h4>\n<p>Couchbase UI \uc561\uc138\uc2a4<\/p>\n<p>\ub85c\uadf8\uc778 <a href=\"https:\/\/localhost:8091\">https:\/\/localhost:8091<\/a> \ub97c \ub20c\ub7ec CB UI\uc5d0 \uc561\uc138\uc2a4\ud569\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7590\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/1-cluster-overview.png\" alt=\"\" width=\"2870\" height=\"1204\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/1-cluster-overview.png 2870w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/1-cluster-overview-300x126.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/1-cluster-overview-1024x430.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/1-cluster-overview-768x322.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/1-cluster-overview-1536x644.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/1-cluster-overview-2048x859.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/1-cluster-overview-20x8.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/1-cluster-overview-1320x554.png 1320w\" sizes=\"auto, (max-width: 2870px) 100vw, 2870px\" \/><\/p>\n<p>\ub8e8\ud2b8 CA\ub97c \ud655\uc778\ud558\uc5ec \uc0ac\uc6a9\uc790 \uc9c0\uc815 x509 \uc778\uc99d\uc11c\uac00 \uc0ac\uc6a9 \uc911\uc778\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4.<\/p>\n<p>\ubcf4\uc548-&gt;\ub8e8\ud2b8 \uc778\uc99d\uc11c\ub97c \ud074\ub9ad\ud569\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7591\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/2-root-ca.png\" alt=\"\" width=\"1676\" height=\"1308\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/2-root-ca.png 1676w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/2-root-ca-300x234.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/2-root-ca-1024x799.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/2-root-ca-768x599.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/2-root-ca-1536x1199.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/2-root-ca-20x16.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/2-root-ca-1320x1030.png 1320w\" sizes=\"auto, (max-width: 1676px) 100vw, 1676px\" \/><\/p>\n<p>\ubb34\uc791\uc704\ub85c \ud30c\ub4dc \uc0ad\uc81c, 001 \ud30c\ub4dc \uc0ad\uc81c\ud558\uae30<\/p>\n<pre class=\"\">$ sudo kubectl delete pod cb-opensource-k8s-0001 --namespace cbdb\r\npod \"cb-opensource-k8s-0001\" deleted<\/pre>\n<p>\uc790\ub3d9 \ud398\uc77c\uc624\ubc84 \ud0c0\uc784\uc544\uc6c3\uc5d0 \ub530\ub77c \uc11c\ubc84\uac00 \uc790\ub3d9\uc73c\ub85c \ud398\uc77c\uc624\ubc84\ub429\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7592\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/3-svr-autofailover.png\" alt=\"\" width=\"2880\" height=\"1800\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/3-svr-autofailover.png 2880w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/3-svr-autofailover-300x188.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/3-svr-autofailover-1024x640.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/3-svr-autofailover-768x480.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/3-svr-autofailover-1536x960.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/3-svr-autofailover-2048x1280.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/3-svr-autofailover-20x13.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/3-svr-autofailover-1320x825.png 1320w\" sizes=\"auto, (max-width: 2880px) 100vw, 2880px\" \/><\/p>\n<p>\uc190\uc2e4\ub41c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ub178\ub4dc\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc6b4\uc601\uc790\uac00 \uc9c0\uc18d\uc801\uc73c\ub85c \uac10\uc2dc\ud558\ub294 \ud074\ub7ec\uc2a4\ud130 \uc815\uc758\ub85c \uc790\ub3d9 \ubcf5\uad6c\ub429\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7593\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/4-auto-rebalance.png\" alt=\"\" width=\"2878\" height=\"1292\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/4-auto-rebalance.png 2878w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/4-auto-rebalance-300x135.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/4-auto-rebalance-1024x460.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/4-auto-rebalance-768x345.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/4-auto-rebalance-1536x690.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/4-auto-rebalance-2048x919.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/4-auto-rebalance-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/4-auto-rebalance-1320x593.png 1320w\" sizes=\"auto, (max-width: 2878px) 100vw, 2878px\" \/><\/p>\n<h4>\ud655\uc7a5\/\ucd95\uc18c<\/h4>\n<p>\ud074\ub9ad \ud55c \ubc88\uc73c\ub85c \ud655\ub300 \ub610\ub294 \ucd95\uc18c\ub97c \ubcc0\uacbd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h5>\ud655\uc7a5<\/h5>\n<p>\ud06c\uae30\ub97c 3\uc5d0\uc11c 4\ub85c \ubcc0\uacbd<\/p>\n<pre class=\"\">--- a\/opensrc-k8s\/cmd-line\/files\/couchbase-persistent-cluster-tls-k8s-minikube.yaml\r\nenableIndexReplica: false\r\ncompressionMode: passive\r\nservers:\r\n- - size: 3\r\n+ - size: 4\r\nname: data\r\nservices:\r\n- data\r\n\r\n<\/pre>\n<p>\uc544\ub798 \uba85\ub839\uc744 \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"\">sudo kubectl apply -f couchbase-persistent-cluster-tls-k8s-minikube.yaml --namespace cbdb<\/pre>\n<p>\ubd90!<\/p>\n<p>\ud074\ub7ec\uc2a4\ud130 \ud655\uc7a5.<\/p>\n<p><strong>\uc8fc\uc758:<\/strong> K8 \ud074\ub7ec\uc2a4\ud130\uc5d0\ub294 \ud655\uc7a5\ud560 \uc218 \uc788\ub294 \ucda9\ubd84\ud55c \ub9ac\uc18c\uc2a4\uac00 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h5>\ucd95\uc18c<\/h5>\n<p>\uc2a4\ucf00\uc77c\uc5c5\uacfc \uc815\ubc18\ub300\ub85c \ud074\ub7ec\uc2a4\ud130\ub97c \uc6d0\ud558\ub294 \uc218\ub85c \uc904\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc 3 \uc774\uc0c1\uc740 \uc544\ub2c8\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 MVP\ub294 3\ub178\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<h4>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 \ubc31\uc5c5 \ubc0f \ubcf5\uc6d0<\/h4>\n<p>cbbackupmgr\uc744 \ud1b5\ud55c CB \ud074\ub7ec\uc2a4\ud130 \ubc31\uc5c5<\/p>\n<p>\uc9c0\uc815\ub41c \ubc31\uc5c5 \ub9c8\uc6b4\ud2b8\/\ubcfc\ub968\uc5d0 \ubc31\uc5c5 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"\">$ cbbackupmgr config --archive \/tmp\/data\/ --repo myBackupRepo\r\nBackup repository `myBackupRepo` created successfully in archive `\/tmp\/data\/`<\/pre>\n<p>\ubc31\uc5c5<\/p>\n<pre class=\"\">$ cbbackupmgr backup -c couchbase:\/\/127.0.0.1 -u Administrator -p password -a \/tmp\/data\/ -r myBackupRepo<\/pre>\n<p>\ubcf5\uc6d0<\/p>\n<pre class=\"\"># use --force-updates to use all updates from backup repo rather than current state of cluster\r\n$ cbbackupmgr restore -c couchbase:\/\/127.0.0.1 -u Administrator -p password -a \/tmp\/data\/ -r myBackupRepo --force-updates<\/pre>\n<h4>\ub2e4\ub978 \ub124\uc784\uc2a4\ud398\uc774\uc2a4\uc5d0\uc11c \uc0d8\ud50c Python \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc2e4\ud589\ud558\uae30<\/h4>\n<h5>\uc571 \uacc4\uce35\uc744 \uc704\ud55c \ub124\uc784\uc2a4\ud398\uc774\uc2a4 \ub9cc\ub4e4\uae30<\/h5>\n<pre class=\"\">$ sudo kubectl create namespace apps\r\nnamespace\/apps created<\/pre>\n<h5>\uc571 \ud3ec\ub4dc \ubc30\ud3ec<\/h5>\n<pre class=\"\">$ sudo kubectl create -f app_pod.yaml --namespace apps\r\npod\/app01 created<\/pre>\n<p>\uc0d8\ud50c \ud30c\uc774\uc36c \ud504\ub85c\uadf8\ub7a8\uc744 \uc2e4\ud589\ud558\uc5ec \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud074\ub7ec\uc2a4\ud130\uc5d0 \ubb38\uc11c\ub97c \uc5c5\ub85c\ub4dc\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc571 \ud30c\ub4dc\uc5d0 \ud30c\ub4dc \uc178\/\uc5d1\uc139\uc5d0 \ub85c\uadf8\uc778\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"\">$ sudo kubectl exec -ti app01 bash --namespace apps<\/pre>\n<h5>\ud30c\uc774\uc36c SDK \uc124\uce58\ub97c \uc704\ud55c \ud3ec\ub4dc \uc900\ube44\ud558\uae30<\/h5>\n<p><a href=\"https:\/\/raw.githubusercontent.com\/couchbaselabs\/cboperator-hol\/master\/opensrc-k8s\/cmd-line\/files\/PrepAppPodPythonSDK.md\">\ud30c\uc774\uc36c SDK\uc6a9 prep-app-pod<\/a><\/p>\n<p>\ud30c\ub4dc\uc758 FQDN\uc73c\ub85c \ud504\ub85c\uadf8\ub7a8 \ud3b8\uc9d1\ud558\uae30<\/p>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud3ec\ub4dc\uc5d0 \uc2e4\ud589\ud55c \ud6c4 \uc544\ub798 \uba85\ub839\uc744 \uc2e4\ud589\ud558\uc138\uc694.<\/p>\n<pre class=\"\">$ sudo kubectl exec -ti cb-opensource-k8s-0000 bash --namespace cbdb<\/pre>\n<p>\uc571 \ud3ec\ub4dc\uc5d0 \ub300\ud55c FQDN \ubc1b\uae30<\/p>\n<pre class=\"\">root@cb-opensource-k8s-0000:\/# hostname -f\r\ncb-opensource-k8s-0000.cb-opensource-k8s.cbdb.svc.cluster.local<\/pre>\n<p>\uc62c\ubc14\ub978 \uc5f0\uacb0 \ubb38\uc790\uc5f4\ub85c \ud504\ub85c\uadf8\ub7a8 \ud3b8\uc9d1<\/p>\n<p>\uc5f0\uacb0 \ubb38\uc790\uc5f4\uc740 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"\">cluster = Cluster('couchbase:\/\/cb-opensource-k8s-0000.cb-opensource-k8s.cbdb.svc.cluster.local')<\/pre>\n<p>\ubbf8\ub2c8\ud050\ube0c\uc758 \ub124\uc784\uc2a4\ud398\uc774\uc2a4\ub294 \ubaa8\ub450 \ub3d9\uc77c\ud55c kube-dns\ub97c \uacf5\uc720\ud558\uae30 \ub54c\ubb38\uc5d0<\/p>\n<h6>\ud504\ub85c\uadf8\ub7a8 \uc2e4\ud589<\/h6>\n<pre class=\"\">root@app01:\/# python python_sdk_example.py\r\nCB Server connection PASSED\r\nOpen the bucket...\r\nDone...\r\nUpserting a document...\r\nDone...\r\nGetting non-existent key. Should fail..\r\nGot exception for missing doc\r\nInserting a doc...\r\nDone...\r\nGetting an existent key. Should pass...\r\nValue for key 'babyliz_liz'\r\n\r\nValue for key 'babyliz_liz'\r\n{u'interests': [u'Holy Grail', u'Kingdoms and Dungeons'], u'type': u'Royales', u'name': u'Baby Liz', u'email': u'babyliz@cb.com'}\r\nDelete a doc with key 'u:baby_arthur'...\r\nDone...\r\nValue for key [u:baby_arthur]\r\nGot exception for missing doc for key [u:baby_arthur] with error\r\nClosing connection to the bucket...\r\nroot@app01:\/#\r\n\r\n<\/pre>\n<p>\uc0bd\uc785\ub41c \ubb38\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \ud45c\uc2dc\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-7594\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/08\/5-upserted-doc.png\" alt=\"\" width=\"2878\" height=\"876\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/5-upserted-doc.png 2878w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/5-upserted-doc-300x91.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/5-upserted-doc-1024x312.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/5-upserted-doc-768x234.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/5-upserted-doc-1536x468.png 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/5-upserted-doc-2048x623.png 2048w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/5-upserted-doc-20x6.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/08\/5-upserted-doc-1320x402.png 1320w\" sizes=\"auto, (max-width: 2878px) 100vw, 2878px\" \/><\/p>\n<h4>\uacb0\ub860<\/h4>\n<p>\ubbf8\ub2c8\ud050\ube0c \ubc84\uc804\uc778 v1.2.0\uc5d0 \ubc84\uc804 1.2\ub85c Couchbase Autonomous Operator\ub97c \ubc30\ud3ec\ud588\uc2b5\ub2c8\ub2e4. Couchbase \ud074\ub7ec\uc2a4\ud130\uc5d0\ub294 \ub124\uc784\uc2a4\ud398\uc774\uc2a4\ub85c \uc5ed\ud560\uc774 \uc81c\ud55c\ub41c(\ubcf4\ub2e4 \uc548\uc804\ud55c) \uad8c\ud55c \ucee8\ud2b8\ub864\ub7ec, RBAC\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \ubc30\ud3ec\ub41c CRD\ub294 \ud074\ub7ec\uc2a4\ud130 \uc804\uccb4 \ubc94\uc704\ub97c \uac16\uc9c0\ub9cc \uc774\ub294 \uc124\uacc4\uc0c1\uc785\ub2c8\ub2e4. \ubc30\ud3ec\ub41c Couchbase \ud074\ub7ec\uc2a4\ud130\uc5d0\ub294 PV \uc9c0\uc6d0 \ubc0f \uace0\uac1d x509 \uc778\uc99d\uc11c\uac00 \uc788\uc5c8\uc2b5\ub2c8\ub2e4.<br \/>\nCouchbase \ud074\ub7ec\uc2a4\ud130\uac00 \uc5b4\ub5bb\uac8c \uc790\uac00 \uce58\uc720\ub97c \ud1b5\ud574 \uc0ac\uc6a9\uc790\uc758 \uac1c\uc785 \uc5c6\uc774\ub3c4 \ud074\ub7ec\uc2a4\ud130\ub97c \uc815\uc0c1\uc801\uc73c\ub85c \ubcf5\uad6c\ud558\ub294\uc9c0 \ud655\uc778\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ubc31\uc5c5 \ubc0f \ubcf5\uc6d0\uc740 Couchbase \uc11c\ubc84\uc5d0 \ub9e4\uc6b0 \uc911\uc694\ud569\ub2c8\ub2e4. \ubc31\uc5c5 \ubc0f \ubcf5\uc6d0\uc744 \uc218\ud589\ud558\ub294 \ub370 \uad8c\uc7a5\ub418\ub294 \uc720\ud2f8\ub9ac\ud2f0\ub294 cbbackupmgr\uc785\ub2c8\ub2e4. \ub610\ud55c \ub124\uc784\uc2a4\ud398\uc774\uc2a4\uc5d0 \ubc30\ud3ec\ub41c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ud3ec\ub4dc\uc5d0 Couchbase \ud30c\uc774\uc36c sdk\ub97c \uc124\uce58\ud558\ub294 \ubc29\ubc95\uacfc \ud574\ub2f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 Couchbase \uc11c\ubc84\uc640 \ub300\ud654\ud558\uace0 CRUD \uc791\uc5c5\uc744 \uc218\ud589\ud558\ub3c4\ub85d \ud558\ub294 \ubc29\ubc95\ub3c4 \uc0b4\ud3b4\ubd24\uc2b5\ub2c8\ub2e4.<\/p>\n<h5>\uc815\ub9ac(\uc120\ud0dd \uc0ac\ud56d)<\/h5>\n<p>\uc0dd\uc131\ub41c \ubaa8\ub4e0 k8s \uc5d0\uc14b\uc758 \uad6c\uc131\uc744 \ud574\uc81c\ud558\ub824\uba74 \uc544\ub798 \ub2e8\uacc4\ub97c \uc218\ud589\ud558\uc138\uc694.<\/p>\n<pre class=\"\">sudo kubectl delete -f secret.yaml --namespace cbdb\r\nsudo kubectl delete -f couchbase-persistent-cluster-tls-k8s-minikube.yaml --namespace cbdb\r\nsudo kubectl delete rolebinding couchbase-operator --namespace cbdb\r\nsudo kubectl delete serviceaccount couchbase-operator --namespace cbdb\r\nsudo kubectl delete -f operator-deployment.yaml --namespace cbdb\r\nsudo kubectl get deployments --namespace cbdb\r\nsudo kubectl delete -f admission.yaml --namespace cbdb\r\nsudo kubectl delete pod app01 --namespace apps\r\n\r\n<\/pre>","protected":false},"excerpt":{"rendered":"<p>This hands-on tutorial blog primarily covers details around setting up Couchbase Kubernetes Operator on a laptop\/desktop running minikube. It features setting up custom TLS certs and persistent volumes. Along with checking how to scale up and down the cluster. Also [&hellip;]<\/p>","protected":false},"author":12023,"featured_media":10736,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,2225,1816,2322,9139,1813,2389,2201],"tags":[9243,1545,1725],"ppma_author":[9071],"class_list":["post-7586","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-cloud","category-couchbase-server","category-kubernetes","category-python","category-security","category-solutions","category-tools-sdks","tag-cloud-native-database","tag-kubernetes","tag-nosql-database"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tutorial: Couchbase Autonomous Operator On Minikube<\/title>\n<meta name=\"description\" content=\"Follow this hands-on tutorial hands-on tutorial for setting up Couchbase Kubernetes Operator on a laptop\/desktop running minikube.\" \/>\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\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Couchbase Autonomous Operator On Minikube\" \/>\n<meta property=\"og:description\" content=\"Follow this hands-on tutorial hands-on tutorial for setting up Couchbase Kubernetes Operator on a laptop\/desktop running minikube.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-05T01:03:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T05:08:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/Screen-Shot-2019-09-04-at-5.51.58-PM_RESIZED.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1056\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ram Dhakne\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ram Dhakne\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/\"},\"author\":{\"name\":\"Ram Dhakne\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/219548e728c73c6f1ae06f994ebbfb13\"},\"headline\":\"Tutorial: Couchbase Autonomous Operator On Minikube\",\"datePublished\":\"2019-09-05T01:03:55+00:00\",\"dateModified\":\"2025-06-14T05:08:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/\"},\"wordCount\":794,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/Screen-Shot-2019-09-04-at-5.51.58-PM_RESIZED.png\",\"keywords\":[\"Cloud-Native Database\",\"kubernetes\",\"NoSQL Database\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Capella\",\"Couchbase Server\",\"Kubernetes\",\"Python\",\"Security\",\"Solutions\",\"Tools &amp; SDKs\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/\",\"name\":\"Tutorial: Couchbase Autonomous Operator On Minikube\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/Screen-Shot-2019-09-04-at-5.51.58-PM_RESIZED.png\",\"datePublished\":\"2019-09-05T01:03:55+00:00\",\"dateModified\":\"2025-06-14T05:08:24+00:00\",\"description\":\"Follow this hands-on tutorial hands-on tutorial for setting up Couchbase Kubernetes Operator on a laptop\/desktop running minikube.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/Screen-Shot-2019-09-04-at-5.51.58-PM_RESIZED.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/Screen-Shot-2019-09-04-at-5.51.58-PM_RESIZED.png\",\"width\":1200,\"height\":1056,\"caption\":\"A ship's wheel inside of a hexagon\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorial: Couchbase Autonomous Operator On Minikube\"}]},{\"@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\/219548e728c73c6f1ae06f994ebbfb13\",\"name\":\"Ram Dhakne\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/0f4c71d7c27bda26464a202747e04acd\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a1f4aec5276e885840e6a5179ddab527fd6e0e3d2451ca7fcb847e0135cd7e7a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a1f4aec5276e885840e6a5179ddab527fd6e0e3d2451ca7fcb847e0135cd7e7a?s=96&d=mm&r=g\",\"caption\":\"Ram Dhakne\"},\"description\":\"Ram Dhakne is Solutions Consultant - US West at Couchbase. He currently helps Enterprise customers with their digital innovations journey and helping them adopt NoSQL technologies. His current interests are running persistent applications like Couchbase NoSQL server on Kubernetes clusters running on AKS, GKE, ACS and OpenShift, securing end-to-end on kubernetes. In his past life has worked on IaaS platforms (AWS, GCP, Azure &amp; Private Clouds), Enterprise Backup Target Products &amp; Backup Applications.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/ram-dhaknecouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\ud29c\ud1a0\ub9ac\uc5bc: \ubbf8\ub2c8\ud050\ube0c\uc5d0\uc11c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc790\uc728 \uc6b4\uc601\uc790 \ud65c\uc6a9\ud558\uae30","description":"Follow this hands-on tutorial hands-on tutorial for setting up Couchbase Kubernetes Operator on a laptop\/desktop running minikube.","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\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/","og_locale":"ko_KR","og_type":"article","og_title":"Tutorial: Couchbase Autonomous Operator On Minikube","og_description":"Follow this hands-on tutorial hands-on tutorial for setting up Couchbase Kubernetes Operator on a laptop\/desktop running minikube.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-09-05T01:03:55+00:00","article_modified_time":"2025-06-14T05:08:24+00:00","og_image":[{"width":1200,"height":1056,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/Screen-Shot-2019-09-04-at-5.51.58-PM_RESIZED.png","type":"image\/png"}],"author":"Ram Dhakne","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ram Dhakne","Est. reading time":"7\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/"},"author":{"name":"Ram Dhakne","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/219548e728c73c6f1ae06f994ebbfb13"},"headline":"Tutorial: Couchbase Autonomous Operator On Minikube","datePublished":"2019-09-05T01:03:55+00:00","dateModified":"2025-06-14T05:08:24+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/"},"wordCount":794,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/Screen-Shot-2019-09-04-at-5.51.58-PM_RESIZED.png","keywords":["Cloud-Native Database","kubernetes","NoSQL Database"],"articleSection":["Best Practices and Tutorials","Couchbase Capella","Couchbase Server","Kubernetes","Python","Security","Solutions","Tools &amp; SDKs"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/","url":"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/","name":"\ud29c\ud1a0\ub9ac\uc5bc: \ubbf8\ub2c8\ud050\ube0c\uc5d0\uc11c \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc790\uc728 \uc6b4\uc601\uc790 \ud65c\uc6a9\ud558\uae30","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/Screen-Shot-2019-09-04-at-5.51.58-PM_RESIZED.png","datePublished":"2019-09-05T01:03:55+00:00","dateModified":"2025-06-14T05:08:24+00:00","description":"Follow this hands-on tutorial hands-on tutorial for setting up Couchbase Kubernetes Operator on a laptop\/desktop running minikube.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/Screen-Shot-2019-09-04-at-5.51.58-PM_RESIZED.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/09\/Screen-Shot-2019-09-04-at-5.51.58-PM_RESIZED.png","width":1200,"height":1056,"caption":"A ship's wheel inside of a hexagon"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/tutorial-running-couchbase-autonomous-operator-on-minikube-with-sample-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Tutorial: Couchbase Autonomous Operator On Minikube"}]},{"@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\/219548e728c73c6f1ae06f994ebbfb13","name":"\ub7a8 \ub2e4\ud06c\ub124","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/0f4c71d7c27bda26464a202747e04acd","url":"https:\/\/secure.gravatar.com\/avatar\/a1f4aec5276e885840e6a5179ddab527fd6e0e3d2451ca7fcb847e0135cd7e7a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a1f4aec5276e885840e6a5179ddab527fd6e0e3d2451ca7fcb847e0135cd7e7a?s=96&d=mm&r=g","caption":"Ram Dhakne"},"description":"Ram Dhakne\uc740 Couchbase\uc758 \ubbf8\uad6d \uc11c\ubd80 \uc194\ub8e8\uc158 \ucee8\uc124\ud134\ud2b8\uc785\ub2c8\ub2e4. \uadf8\ub294 \ud604\uc7ac \uc5d4\ud130\ud504\ub77c\uc774\uc988 \uace0\uac1d\uc758 \ub514\uc9c0\ud138 \ud601\uc2e0 \uc5ec\uc815\uc744 \ub3d5\uace0 NoSQL \uae30\uc220 \ub3c4\uc785\uc744 \uc9c0\uc6d0\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ud604\uc7ac \uadf8\uc758 \uad00\uc2ec \ubd84\uc57c\ub294 AKS, GKE, ACS \ubc0f OpenShift\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 Kubernetes \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c Couchbase NoSQL \uc11c\ubc84\uc640 \uac19\uc740 \uc601\uad6c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud558\uc5ec Kubernetes\uc5d0\uc11c \uc5d4\ub4dc\ud22c\uc5d4\ub4dc \ubcf4\uc548\uc744 \uc720\uc9c0\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uacfc\uac70\uc5d0\ub294 IaaS \ud50c\ub7ab\ud3fc(AWS, GCP, Azure \ubc0f \ud504\ub77c\uc774\ube57 \ud074\ub77c\uc6b0\ub4dc), \uc5d4\ud130\ud504\ub77c\uc774\uc988 \ubc31\uc5c5 \ub300\uc0c1 \uc81c\ud488 \ubc0f \ubc31\uc5c5 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \ub300\ud574 \uc791\uc5c5\ud588\uc2b5\ub2c8\ub2e4.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/ram-dhaknecouchbase-com\/"}]}},"authors":[{"term_id":9071,"user_id":12023,"is_guest":0,"slug":"ram-dhaknecouchbase-com","display_name":"Ram Dhakne","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/a1f4aec5276e885840e6a5179ddab527fd6e0e3d2451ca7fcb847e0135cd7e7a?s=96&d=mm&r=g","author_category":"","last_name":"Dhakne","first_name":"Ram","job_title":"","user_url":"","description":"Ram Dhakne\uc740 Couchbase\uc758 \ubbf8\uad6d \uc11c\ubd80 \uc194\ub8e8\uc158 \ucee8\uc124\ud134\ud2b8\uc785\ub2c8\ub2e4. \uadf8\ub294 \ud604\uc7ac \uc5d4\ud130\ud504\ub77c\uc774\uc988 \uace0\uac1d\uc758 \ub514\uc9c0\ud138 \ud601\uc2e0 \uc5ec\uc815\uc744 \ub3d5\uace0 NoSQL \uae30\uc220 \ub3c4\uc785\uc744 \uc9c0\uc6d0\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ud604\uc7ac \uadf8\uc758 \uad00\uc2ec \ubd84\uc57c\ub294 AKS, GKE, ACS \ubc0f OpenShift\uc5d0\uc11c \uc2e4\ud589\ub418\ub294 Kubernetes \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c Couchbase NoSQL \uc11c\ubc84\uc640 \uac19\uc740 \uc601\uad6c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud558\uc5ec Kubernetes\uc5d0\uc11c \uc5d4\ub4dc\ud22c\uc5d4\ub4dc \ubcf4\uc548\uc744 \uc720\uc9c0\ud558\ub294 \uac83\uc785\ub2c8\ub2e4. \uacfc\uac70\uc5d0\ub294 IaaS \ud50c\ub7ab\ud3fc(AWS, GCP, Azure \ubc0f \ud504\ub77c\uc774\ube57 \ud074\ub77c\uc6b0\ub4dc), \uc5d4\ud130\ud504\ub77c\uc774\uc988 \ubc31\uc5c5 \ub300\uc0c1 \uc81c\ud488 \ubc0f \ubc31\uc5c5 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \ub300\ud574 \uc791\uc5c5\ud588\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/7586","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\/12023"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=7586"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/7586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/10736"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=7586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=7586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=7586"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=7586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}