{"id":2941,"date":"2017-03-11T23:29:57","date_gmt":"2017-03-12T07:29:57","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2941"},"modified":"2023-06-19T03:23:30","modified_gmt":"2023-06-19T10:23:30","slug":"service-discovery-java-database-kubernetes","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/service-discovery-java-database-kubernetes\/","title":{"rendered":"\ucfe0\ubc84\ub124\ud2f0\uc2a4\uc758 Java \ubc0f \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc0ac\uc6a9\ud55c \uc11c\ube44\uc2a4 \uac80\uc0c9"},"content":{"rendered":"<p>\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 \uac04\ub2e8\ud55c Java \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 Kubernetes\uc758 \uc11c\ube44\uc2a4 \uac80\uc0c9\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \ud1b5\uc2e0\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub9bd\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2543\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/02\/cropped-Couchbase-Blog-lockup.png\" alt=\"\" width=\"100\" height=\"100\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/cropped-Couchbase-Blog-lockup.png 512w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/cropped-Couchbase-Blog-lockup-300x300.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/cropped-Couchbase-Blog-lockup-150x150.png 150w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/cropped-Couchbase-Blog-lockup-65x65.png 65w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/cropped-Couchbase-Blog-lockup-50x50.png 50w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/02\/cropped-Couchbase-Blog-lockup-20x20.png 20w\" sizes=\"auto, (max-width: 100px) 100vw, 100px\" \/>\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2942\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/kubernetes-logo.png\" alt=\"Kubernetes Logo\" width=\"117\" height=\"104\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/kubernetes-logo.png 560w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/kubernetes-logo-300x266.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/kubernetes-logo-20x18.png 20w\" sizes=\"auto, (max-width: 117px) 100vw, 117px\" \/>\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2943\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/wildfly-logo.png\" alt=\"WildFly Logo\" width=\"129\" height=\"100\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/wildfly-logo.png 450w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/wildfly-logo-300x233.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/wildfly-logo-20x16.png 20w\" sizes=\"auto, (max-width: 129px) 100vw, 129px\" \/><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/service-discovery-java-database-dcos\/\">DC\/OS\uc5d0\uc11c Java \ubc0f \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc0ac\uc6a9\ud55c \uc11c\ube44\uc2a4 \uac80\uc0c9<\/a> \uc5d0\uc11c \uc11c\ube44\uc2a4 \uac80\uc0c9\uc774 \uba40\ud2f0 \ucee8\ud14c\uc774\ub108 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc911\uc694\ud55c \uc774\uc720\ub97c \uc124\uba85\ud569\ub2c8\ub2e4. \uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 DC\/OS\uc5d0\uc11c \uc774\ub97c \uc218\ud589\ud558\ub294 \ubc29\ubc95\ub3c4 \uc124\uba85\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc11c\ubc84\uc640 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc11c\ubc84\uc758 \ub2e8\uc77c \uc778\uc2a4\ud134\uc2a4\ub97c \uc0ac\uc6a9\ud558\uc5ec Kubernetes\uc5d0\uc11c \uc774\ub97c \uc5b4\ub5bb\uac8c \uc218\ud589\ud560 \uc218 \uc788\ub294\uc9c0 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc11c\ubc84\uc5d0\ub294 WildFly\ub97c, \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\ub294 Couchbase\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uc8fc\uc694 \ub2e8\uacc4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4:<\/p>\n<ul>\n<li>\ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc6d0\ub178\ub4dc \ud074\ub7ec\uc2a4\ud130 \uc2dc\uc791\ud558\uae30<\/li>\n<li>\ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc815\uc758<\/li>\n<li>\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ubc30\ud3ec<\/li>\n<li>\uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc561\uc138\uc2a4<\/li>\n<\/ul>\n<h2>\ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud074\ub7ec\uc2a4\ud130 \uc2dc\uc791<\/h2>\n<p><a href=\"https:\/\/github.com\/kubernetes\/minikube\">\ubbf8\ub2c8\ud050\ube0c<\/a> \ub294 \ub178\ud2b8\ubd81\uc758 \uac00\uc0c1 \uba38\uc2e0\uc5d0\uc11c \ub2e8\uc77c \ub178\ub4dc Kubernetes \ud074\ub7ec\uc2a4\ud130\ub97c \uc2dc\uc791\ud558\ub294 \uac00\uc7a5 \uc26c\uc6b4 \ubc29\ubc95\uc785\ub2c8\ub2e4. \ubc14\uc774\ub108\ub9ac\ub97c \uba3c\uc800 \ub2e4\uc6b4\ub85c\ub4dc\ud55c \ub2e4\uc74c \uc124\uce58\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\uc804\uccb4 \uc124\uce58 \uc9c0\uce68\uc740 \ub2e4\uc74c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\u00a0<a href=\"https:\/\/github.com\/kubernetes\/minikube\">github.com\/kubernetes\/minikube<\/a>.<\/p>\n<p>\uadf8\ub9ac\uace0 <a href=\"https:\/\/github.com\/kubernetes\/minikube\/releases\/latest\">\ucd5c\uc2e0 \ub9b4\ub9ac\uc2a4<\/a>\u00a0\ub85c OSX\uc5d0 \uc124\uce58\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">curl -Lo minikube https:\/\/storage.googleapis.com\/minikube\/releases\/v0.17.1\/minikube-darwin-amd64 \\\r\n&amp;&amp; chmod +x minikube<\/pre>\n<p>\ub610\ud55c \ub2e4\uc74c\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. <a href=\"https:\/\/kubernetes.io\/docs\/user-guide\/kubectl-overview\/\">kubectl<\/a> \ub97c \uc124\uce58\ud574\uc57c \ud569\ub2c8\ub2e4.\u00a0<a href=\"https:\/\/kubernetes.io\/docs\/user-guide\/prereqs\/\">kubectl \uc124\uce58 \ubc0f \uc124\uc815\ud558\uae30<\/a>\u00a0\uc5d0\uc11c kubectl\uc744 \uc124\uce58\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uc9c0\uce68\uc744 \uc81c\uacf5\ud55c\ub2e4. OSX\uc5d0\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc124\uce58\ud560 \uc218 \uc788\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">curl -LO https:\/\/storage.googleapis.com\/kubernetes-release\/release\/$(curl -s https:\/\/storage.googleapis.com\/kubernetes-release\/release\/stable.txt)\/bin\/darwin\/amd64\/kubectl \\\r\n  &amp;&amp; chmod +x .\/kubectl<\/pre>\n<p>\uc774\uc81c \ud074\ub7ec\uc2a4\ud130\ub97c \ub2e4\uc74c \uc774\ub984\uc73c\ub85c \uc2dc\uc791\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">minikube start\r\nStarting local Kubernetes cluster...\r\nStarting VM...\r\nDownloading Minikube ISO\r\n 88.71 MB \/ 88.71 MB [==============================================] 100.00% 0s\r\nSSH-ing files into VM...\r\nSetting up certs...\r\nStarting cluster components...\r\nConnecting to cluster...\r\nSetting up kubeconfig...\r\nKubectl is now configured to use the cluster.<\/pre>\n<p>\uadf8\ub9ac\uace0 <code>kubectl \ubc84\uc804<\/code> \uba85\ub839\uc740 kubectl \ud074\ub77c\uc774\uc5b8\ud2b8 \ubc0f \ubbf8\ub2c8\ud050\ube0c \uc11c\ubc84 \ubc84\uc804\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uc815\ubcf4\ub97c \ubcf4\uc5ec\uc90d\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">kubectl version\r\nClient Version: version.Info{Major:\"1\", Minor:\"5\", GitVersion:\"v1.5.4\", GitCommit:\"7243c69eb523aa4377bce883e7c0dd76b84709a1\", GitTreeState:\"clean\", BuildDate:\"2017-03-07T23:53:09Z\", GoVersion:\"go1.7.4\", Compiler:\"gc\", Platform:\"darwin\/amd64\"}\r\nServer Version: version.Info{Major:\"1\", Minor:\"5\", GitVersion:\"v1.5.3\", GitCommit:\"029c3a408176b55c30846f0faedf56aae5992e9b\", GitTreeState:\"clean\", BuildDate:\"1970-01-01T00:00:00Z\", GoVersion:\"go1.7.3\", Compiler:\"gc\", Platform:\"linux\/amd64\"}<\/pre>\n<p>\ud074\ub7ec\uc2a4\ud130\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>kubectl \ud074\ub7ec\uc2a4\ud130 \uc815\ubcf4<\/code> \uba85\ub839\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">Kubernetes master is running at https:\/\/192.168.99.100:8443\r\nKubeDNS is running at https:\/\/192.168.99.100:8443\/api\/v1\/proxy\/namespaces\/kube-system\/services\/kube-dns\r\nkubernetes-dashboard is running at https:\/\/192.168.99.100:8443\/api\/v1\/proxy\/namespaces\/kube-system\/services\/kubernetes-dashboard\r\n\r\nTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.<\/pre>\n<h2>\ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc815\uc758<\/h2>\n<p>\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc815\uc758\ub294 \ub2e4\uc74c\uc5d0\uc11c \uc815\uc758\ub429\ub2c8\ub2e4.\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/kubernetes-java-sample\/blob\/master\/service-discovery.yml\">github.com\/arun-gupta\/kubernetes-java-sample\/blob\/master\/service-discovery.yml<\/a>. \ub2e4\uc74c\uc73c\ub85c \uad6c\uc131\ub429\ub2c8\ub2e4:<\/p>\n<ul>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ube44\uc2a4<\/li>\n<li>\ub2e8\uc77c \ud3ec\ub4dc\uac00 \ud3ec\ud568\ub41c Couchbase \ubcf5\uc81c\ubcf8 \uc138\ud2b8<\/li>\n<li>\ub2e8\uc77c \ud3ec\ub4dc\uac00 \ud3ec\ud568\ub41c WildFly \ubcf5\uc81c\ubcf8 \uc138\ud2b8<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\">apiVersion: v1\r\nkind: Service\r\nmetadata: \r\n  name: couchbase-service\r\nspec: \r\n  selector: \r\n    app: couchbase-rs-pod\r\n  ports:\r\n    - name: admin\r\n      port: 8091\r\n    - name: views\r\n      port: 8092\r\n    - name: query\r\n      port: 8093\r\n    - name: memcached\r\n      port: 11210\r\n---\r\napiVersion: extensions\/v1beta1\r\nkind: ReplicaSet\r\nmetadata:\r\n  name: couchbase-rs\r\nspec:\r\n  replicas: 1\r\n  template:\r\n    metadata:\r\n      labels:\r\n        app: couchbase-rs-pod\r\n    spec:\r\n      containers:\r\n      - name: couchbase\r\n        image: arungupta\/couchbase:travel\r\n        ports:\r\n        - containerPort: 8091\r\n        - containerPort: 8092\r\n        - containerPort: 8093\r\n        - containerPort: 11210\r\n---\r\napiVersion: extensions\/v1beta1\r\nkind: ReplicaSet\r\nmetadata:\r\n  name: wildfly-rs\r\n  labels:\r\n    name: wildfly\r\nspec:\r\n  replicas: 1\r\n  template:\r\n    metadata:\r\n      labels:\r\n        name: wildfly\r\n    spec:\r\n      containers:\r\n      - name: wildfly-rs-pod\r\n        image: arungupta\/wildfly-couchbase-javaee:travel\r\n        env:\r\n        - name: COUCHBASE_URI\r\n          value: couchbase-service\r\n        ports:\r\n        - containerPort: 8080<\/pre>\n<p>\ud575\uc2ec \ubd80\ubd84\uc740\u00a0<code>COUCHBASE_URI<\/code> \ud658\uacbd \ubcc0\uc218\ub294 Couchbase \uc11c\ube44\uc2a4\uc758 \uc774\ub984\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 WildFly\uc5d0 \ubc30\ud3ec\ub41c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc11c\ube44\uc2a4\ub97c \ub3d9\uc801\uc73c\ub85c \uac80\uc0c9\ud558\uace0 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \ud1b5\uc2e0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>arungupta\/couchbase:travel \ub3c4\ucee4 \uc774\ubbf8\uc9c0\ub294 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc0dd\uc131\ub429\ub2c8\ub2e4.\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/couchbase\/Dockerfile\">github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/couchbase\/Dockerfile<\/a>.<\/p>\n<p>arungupta\/wildfly-couchbase-javaee:travel \ub3c4\ucee4 \uc774\ubbf8\uc9c0\ub294 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc0dd\uc131\ub429\ub2c8\ub2e4.\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/Dockerfile\">github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/Dockerfile<\/a>.<\/p>\n<p>Java EE \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ucffc\ub9ac\ub97c \uc2dc\uc791\ud558\uae30 \uc804\uc5d0 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ucd08\uae30\ud654\uac00 \uc644\ub8cc\ub420 \ub54c\uae4c\uc9c0 \uae30\ub2e4\ub9bd\ub2c8\ub2e4. \uc774\ub294 \ub2e4\uc74c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/src\/main\/java\/org\/couchbase\/sample\/javaee\/Database.java#L25\">github.com\/arun-gupta\/couchbase-javaee\/blob\/master\/src\/main\/java\/org\/couchbase\/sample\/javaee\/Database.java#L25<\/a>.<\/p>\n<h2>\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ubc30\ud3ec<\/h2>\n<p>\uc774 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \ubc30\ud3ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">kubectl create -f ~\/workspaces\/kubernetes-java-sample\/service-discovery.yml<\/pre>\n<p>\uc11c\ube44\uc2a4 \ubc0f \ubcf5\uc81c\ubcf8 \uc138\ud2b8 \ubaa9\ub85d\uc740 \ub2e4\uc74c \uba85\ub839\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud45c\uc2dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>kubectl get svc,rs<\/code>:<\/p>\n<pre class=\"lang:default decode:true\">NAME                    CLUSTER-IP   EXTERNAL-IP   PORT(S)                                AGE\r\nsvc\/couchbase-service   10.0.0.97    &lt;none&gt;        8091\/TCP,8092\/TCP,8093\/TCP,11210\/TCP   27m\r\nsvc\/kubernetes          10.0.0.1     &lt;none&gt;        443\/TCP                                1h\r\nsvc\/wildfly-rs          10.0.0.252   &lt;none&gt;        8080\/TCP                               21m\r\n\r\nNAME              DESIRED   CURRENT   READY     AGE\r\nrs\/couchbase-rs   1         1         1         27m\r\nrs\/wildfly-rs     1         1         1         27m<\/pre>\n<p>Couchbase\uc758 \ub2e8\uc77c \ubcf5\uc81c\ubcf8\uc5d0 \ub300\ud55c \ub85c\uadf8\ub294 \ub2e4\uc74c \uba85\ub839\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>kubectl \ub85c\uadf8 rs\/couchbase-rs<\/code>:<\/p>\n<pre class=\"lang:default decode:true\">++ set -m\r\n++ sleep 25\r\n++ \/entrypoint.sh couchbase-server\r\nStarting Couchbase Server -- Web UI available at https:\/\/&lt;ip&gt;:8091 and logs available in \/opt\/couchbase\/var\/lib\/couchbase\/logs\r\n++ curl -v -X POST https:\/\/127.0.0.1:8091\/pools\/default -d memoryQuota=300 -d indexMemoryQuota=300\r\n\r\n. . .\r\n\r\n{\"storageMode\":\"memory_optimized\",\"indexerThreads\":0,\"memorySnapshotInterval\":200,\"stableSnapshotInterval\":5000,\"maxRollbackPoints\":5,\"logLevel\":\"info\"}[]Type: \r\n++ echo 'Type: '\r\n++ '[' '' = WORKER ']'\r\n++ fg 1\r\n\/entrypoint.sh couchbase-server\r\n<\/pre>\n<p>WildFly \ubcf5\uc81c\ubcf8 \uc138\ud2b8\uc5d0 \ub300\ud55c \ub85c\uadf8\ub294 \ub2e4\uc74c \uba85\ub839\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>kubectl \ub85c\uadf8 RS\/WILDFLY-RS<\/code>:<\/p>\n<pre class=\"lang:default decode:true\">=========================================================================\r\n\r\n  JBoss Bootstrap Environment\r\n\r\n  JBOSS_HOME: \/opt\/jboss\/wildfly\r\n\r\n. . .\r\n\r\n06:32:08,537 INFO  [com.couchbase.client.core.node.Node] (cb-io-1-1) Connected to Node couchbase-service\r\n06:32:09,262 INFO  [com.couchbase.client.core.config.ConfigurationProvider] (cb-computations-3) Opened bucket travel-sample\r\n06:32:09,366 INFO  [stdout] (ServerService Thread Pool -- 65) Sleeping for 3 secs ...\r\n06:32:12,369 INFO  [stdout] (ServerService Thread Pool -- 65) Bucket found!\r\n06:32:14,194 INFO  [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 65) RESTEASY002225: Deploying javax.ws.rs.core.Application: class org.couchbase.sample.javaee.MyApplication\r\n06:32:14,195 INFO  [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 65) RESTEASY002200: Adding class resource org.couchbase.sample.javaee.AirlineResource from Application class org.couchbase.sample.javaee.MyApplication\r\n06:32:14,310 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 65) WFLYUT0021: Registered web context: \/airlines\r\n06:32:14,376 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 34) WFLYSRV0010: Deployed \"airlines.war\" (runtime-name : \"airlines.war\")\r\n06:32:14,704 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on https:\/\/127.0.0.1:9990\/management\r\n06:32:14,704 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on https:\/\/127.0.0.1:9990\r\n06:32:14,705 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 10.1.0.Final (WildFly Core 2.2.0.Final) started in 29470ms - Started 443 of 691 services (404 services are lazy, passive or on-demand)<\/pre>\n<h2>\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc561\uc138\uc2a4<\/h2>\n<p>\uadf8\ub9ac\uace0 <code>kubectl \ud504\ub85d\uc2dc<\/code> \uba85\ub839\uc740 \ucfe0\ubc84\ub124\ud2f0\uc2a4 API \uc11c\ubc84\uc5d0 \ub300\ud55c \ud504\ub85d\uc2dc\ub97c \uc2dc\uc791\ud569\ub2c8\ub2e4. \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc561\uc138\uc2a4\ud558\uae30 \uc704\ud574 Kubernetes \ud504\ub85d\uc2dc\ub97c \uc2dc\uc791\ud574 \ubcf4\uaca0\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">kubectl proxy\r\nStarting to serve on 127.0.0.1:8001<\/pre>\n<p>\ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec WildFly \ubcf5\uc81c\ubcf8 \uc138\ud2b8\ub97c \uc11c\ube44\uc2a4\ub85c \ub178\ucd9c\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">kubectl expose --name=wildfly-service rs\/wildfly-rs<\/pre>\n<p>\uc11c\ube44\uc2a4 \ubaa9\ub85d\uc740 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub2e4\uc2dc \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4. <code>kubectl get svc<\/code> \uba85\ub839\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">kubectl get svc\r\nNAME                CLUSTER-IP   EXTERNAL-IP   PORT(S)                                AGE\r\ncouchbase-service   10.0.0.97    &lt;none&gt;        8091\/TCP,8092\/TCP,8093\/TCP,11210\/TCP   41m\r\nkubernetes          10.0.0.1     &lt;none&gt;        443\/TCP                                1h\r\nwildfly-service     10.0.0.169   &lt;none&gt;        8080\/TCP                               5s<\/pre>\n<p>\uc774\uc81c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ub2e4\uc74c \uc8fc\uc18c\uc5d0\uc11c \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">curl https:\/\/localhost:8001\/api\/v1\/proxy\/namespaces\/default\/services\/wildfly-service\/airlines\/resources\/airline<\/pre>\n<p>\ud615\uc2dd\uc774 \uc9c0\uc815\ub41c \ucd9c\ub825\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:default decode:true\">[\r\n  {\r\n    \"travel-sample\": {\r\n      \"country\": \"United States\",\r\n      \"iata\": \"Q5\",\r\n      \"callsign\": \"MILE-AIR\",\r\n      \"name\": \"40-Mile Air\",\r\n      \"icao\": \"MLA\",\r\n      \"id\": 10,\r\n      \"type\": \"airline\"\r\n    }\r\n  },\r\n  {\r\n    \"travel-sample\": {\r\n      \"country\": \"United States\",\r\n      \"iata\": \"TQ\",\r\n\r\n. . .\r\n\r\n     \"name\": \"Airlinair\",\r\n      \"icao\": \"RLA\",\r\n      \"id\": 1203,\r\n      \"type\": \"airline\"\r\n    }\r\n  }\r\n]<\/pre>\n<p>\uc774\uc81c \ubcf5\uc81c\ubcf8 \uc138\ud2b8\ub97c \ud655\uc7a5\ud558\uc5ec \uc0c8 \ud30c\ub4dc\ub97c Couchbase \uc11c\ube44\uc2a4\uc758 \uc77c\ubd80\ub85c \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uae30\uc874 \ud30c\ub4dc\ub294 \uc885\ub8cc\ub418\uac70\ub098 \uc77c\uc815\uc774 \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 Java EE \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ub17c\ub9ac\uc801 \uc774\ub984\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc11c\ube44\uc2a4\uc5d0 \uacc4\uc18d \uc561\uc138\uc2a4\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 \uac04\ub2e8\ud55c Java \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 Kubernetes\uc758 \uc11c\ube44\uc2a4 \uac80\uc0c9\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc640 \ud1b5\uc2e0\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub838\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \uc5ec\uae30\uc5d0\uc11c \ud655\uc778\ud558\uc138\uc694:<\/p>\n<ul>\n<li><a href=\"https:\/\/kubernetes.io\">\ucfe0\ubc84\ub124\ud2f0\uc2a4 \ubb38\uc11c<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/containers\/\">\ucee8\ud14c\uc774\ub108\uc758 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4<\/a><\/li>\n<li>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 <a href=\"https:\/\/developer.couchbase.com\/server\">\uac1c\ubc1c\uc790 \ud3ec\ud138<\/a><\/li>\n<li>\ub2e4\uc74c\uc5d0 \ub300\ud574 \uc9c8\ubb38\ud558\uc138\uc694. <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/forums\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ud3ec\ub7fc<\/a> \ub610\ub294 <a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/couchbase\">\uc2a4\ud0dd \uc624\ubc84\ud50c\ub85c<\/a><\/li>\n<li>\ub2e4\uc6b4\ub85c\ub4dc <a href=\"https:\/\/www.couchbase.com\/blog\/ko\/nosql-databases\/downloads\/\">\uce74\uc6b0\uce58\ubca0\uc774\uc2a4<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>This blog will show how a simple Java application can talk to a database using service discovery in Kubernetes. \u00a0\u00a0 Service Discovery with\u00a0Java and Database application in\u00a0DC\/OS explains why service discovery is an important aspect for a multi-container application. That [&hellip;]<\/p>","protected":false},"author":58,"featured_media":2942,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814],"tags":[1545],"ppma_author":[8933],"class_list":["post-2941","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","tag-kubernetes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Service Discovery with Java and Database application in Kubernetes<\/title>\n<meta name=\"description\" content=\"This blog will show how a simple Java application in WildFly can talk to a database (Couchbase) using service discovery in Kubernetes.\" \/>\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\/service-discovery-java-database-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Service Discovery with Java and Database application in Kubernetes\" \/>\n<meta property=\"og:description\" content=\"This blog will show how a simple Java application in WildFly can talk to a database (Couchbase) using service discovery in Kubernetes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/service-discovery-java-database-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-12T07:29:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-19T10:23:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/kubernetes-logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"560\" \/>\n\t<meta property=\"og:image:height\" content=\"496\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@arungupta\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Arun Gupta, VP, Developer Advocacy, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/\"},\"author\":{\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\"},\"headline\":\"Service Discovery with Java and Database application in Kubernetes\",\"datePublished\":\"2017-03-12T07:29:57+00:00\",\"dateModified\":\"2023-06-19T10:23:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/\"},\"wordCount\":539,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/kubernetes-logo.png\",\"keywords\":[\"kubernetes\"],\"articleSection\":[\"Application Design\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/\",\"name\":\"Service Discovery with Java and Database application in Kubernetes\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/kubernetes-logo.png\",\"datePublished\":\"2017-03-12T07:29:57+00:00\",\"dateModified\":\"2023-06-19T10:23:30+00:00\",\"description\":\"This blog will show how a simple Java application in WildFly can talk to a database (Couchbase) using service discovery in Kubernetes.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/kubernetes-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/kubernetes-logo.png\",\"width\":560,\"height\":496,\"caption\":\"Kubernetes Logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Service Discovery with Java and Database application in Kubernetes\"}]},{\"@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\/39d8caed0f536489b6aa6e8d31ee631f\",\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g\",\"caption\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\"},\"description\":\"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta.\",\"sameAs\":[\"https:\/\/x.com\/arungupta\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/arun-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\ucfe0\ubc84\ub124\ud2f0\uc2a4\uc758 Java \ubc0f \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc0ac\uc6a9\ud55c \uc11c\ube44\uc2a4 \uac80\uc0c9","description":"\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 WildFly\uc758 \uac04\ub2e8\ud55c Java \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 Kubernetes\uc758 \uc11c\ube44\uc2a4 \uac80\uc0c9\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130\ubca0\uc774\uc2a4(Couchbase)\uc640 \ud1b5\uc2e0\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub9bd\ub2c8\ub2e4.","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\/service-discovery-java-database-kubernetes\/","og_locale":"ko_KR","og_type":"article","og_title":"Service Discovery with Java and Database application in Kubernetes","og_description":"This blog will show how a simple Java application in WildFly can talk to a database (Couchbase) using service discovery in Kubernetes.","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/service-discovery-java-database-kubernetes\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-03-12T07:29:57+00:00","article_modified_time":"2023-06-19T10:23:30+00:00","og_image":[{"width":560,"height":496,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2017\/03\/kubernetes-logo.png","type":"image\/png"}],"author":"Arun Gupta, VP, Developer Advocacy, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@arungupta","twitter_misc":{"Written by":"Arun Gupta, VP, Developer Advocacy, Couchbase","Est. reading time":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/"},"author":{"name":"Arun Gupta, VP, Developer Advocacy, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f"},"headline":"Service Discovery with Java and Database application in Kubernetes","datePublished":"2017-03-12T07:29:57+00:00","dateModified":"2023-06-19T10:23:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/"},"wordCount":539,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/kubernetes-logo.png","keywords":["kubernetes"],"articleSection":["Application Design"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/","url":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/","name":"\ucfe0\ubc84\ub124\ud2f0\uc2a4\uc758 Java \ubc0f \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc0ac\uc6a9\ud55c \uc11c\ube44\uc2a4 \uac80\uc0c9","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/kubernetes-logo.png","datePublished":"2017-03-12T07:29:57+00:00","dateModified":"2023-06-19T10:23:30+00:00","description":"\uc774 \ube14\ub85c\uadf8\uc5d0\uc11c\ub294 WildFly\uc758 \uac04\ub2e8\ud55c Java \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 Kubernetes\uc758 \uc11c\ube44\uc2a4 \uac80\uc0c9\uc744 \uc0ac\uc6a9\ud558\uc5ec \ub370\uc774\ud130\ubca0\uc774\uc2a4(Couchbase)\uc640 \ud1b5\uc2e0\ud558\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec\ub4dc\ub9bd\ub2c8\ub2e4.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/kubernetes-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2017\/03\/kubernetes-logo.png","width":560,"height":496,"caption":"Kubernetes Logo"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/service-discovery-java-database-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Service Discovery with Java and Database application in Kubernetes"}]},{"@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\/39d8caed0f536489b6aa6e8d31ee631f","name":"Arun Gupta, \uac1c\ubc1c\uc790 \uc9c0\uc6d0 \ubd80\ubb38 \ubd80\uc0ac\uc7a5, Couchbase","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8900a75409c646948fe0bd80f6240337","url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","caption":"Arun Gupta, VP, Developer Advocacy, Couchbase"},"description":"Arun Gupta is the vice president of developer advocacy at Couchbase. He has built and led developer communities for 10+ years at Sun, Oracle, and Red Hat. He has deep expertise in leading cross-functional teams to develop and execute strategy, planning and execution of content, marketing campaigns, and programs. Prior to that he led engineering teams at Sun and is a founding member of the Java EE team. Gupta has authored more than 2,000 blog posts on technology. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for three years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. An author of several books on technology, an avid runner, a globe trotter, a Java Champion, a JUG leader, NetBeans Dream Team member, and a Docker Captain, he is easily accessible at @arungupta.","sameAs":["https:\/\/x.com\/arungupta"],"url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/arun-gupta\/"}]}},"authors":[{"term_id":8933,"user_id":58,"is_guest":0,"slug":"arun-gupta","display_name":"Arun Gupta, VP, Developer Advocacy, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f912e10b5f39748ee4f1a0b0da6f42747f0b3a94fe7acb511791468656f5e726?s=96&d=mm&r=g","author_category":"","last_name":"Gupta","first_name":"Arun","job_title":"","user_url":"","description":"\uc544\ub8ec \uad7d\ud0c0\ub294 Couchbase\uc758 \uac1c\ubc1c\uc790 \uc9c0\uc6d0 \ub2f4\ub2f9 \ubd80\uc0ac\uc7a5\uc785\ub2c8\ub2e4. \uadf8\ub294 Sun, Oracle, Red Hat\uc5d0\uc11c 10\ub144 \uc774\uc0c1 \uac1c\ubc1c\uc790 \ucee4\ubba4\ub2c8\ud2f0\ub97c \uad6c\ucd95\ud558\uace0 \uc774\ub04c\uc5c8\uc2b5\ub2c8\ub2e4. \uadf8\ub294 \ucf58\ud150\uce20, \ub9c8\ucf00\ud305 \ucea0\ud398\uc778 \ubc0f \ud504\ub85c\uadf8\ub7a8\uc758 \uc804\ub7b5, \uacc4\ud68d \ubc0f \uc2e4\ud589\uc744 \uac1c\ubc1c \ubc0f \uc2e4\ud589\ud558\ub294 \uad50\ucc28 \uae30\ub2a5 \ud300\uc744 \uc774\ub044\ub294 \ub370 \uc788\uc5b4 \uae4a\uc740 \uc804\ubb38\uc131\uc744 \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8 \uc804\uc5d0\ub294 Sun\uc5d0\uc11c \uc5d4\uc9c0\ub2c8\uc5b4\ub9c1 \ud300\uc744 \uc774\ub04c\uc5c8\uc73c\uba70 Java EE \ud300\uc758 \ucc3d\ub9bd \uba64\ubc84\uc785\ub2c8\ub2e4.\r\n\r\nGupta\ub294 \uae30\uc220\uc5d0 \uad00\ud55c \ube14\ub85c\uadf8 \uac8c\uc2dc\ubb3c\uc744 2,000\uac1c \uc774\uc0c1 \uc791\uc131\ud588\uc2b5\ub2c8\ub2e4. 40\uc5ec \uac1c\uad6d\uc5d0\uc11c \uc218\ub9ce\uc740 \uc8fc\uc81c\uc5d0 \ub300\ud574 \uad11\ubc94\uc704\ud55c \uac15\uc5f0 \uacbd\ud5d8\uc744 \uac00\uc9c0\uace0 \uc788\uc73c\uba70, 3\ub144 \uc5f0\uc18d JavaOne Rock Star\ub85c \uc120\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub610\ud55c \ubbf8\uad6d\uc5d0\uc11c Devoxx4Kids \uc9c0\ubd80\ub97c \uc124\ub9bd\ud558\uc5ec \uc5b4\ub9b0\uc774\ub97c \ub300\uc0c1\uc73c\ub85c \ud55c \uae30\uc220 \uad50\uc721\uc744 \uc9c0\uc18d\uc801\uc73c\ub85c \uc7a5\ub824\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uae30\uc220\uc5d0 \uad00\ud55c \uc5ec\ub7ec \uad8c\uc758 \ucc45\uc744 \uc800\uc220\ud588\uc73c\uba70, \uc5f4\ub82c\ud55c \ub9c8\ub77c\ud1a0\ub108\uc774\uc790 \uc9c0\uad6c\ub97c \ud6a1\ub2e8\ud558\ub294 \uc0ac\ub78c, Java \ucc54\ud53c\uc5b8, JUG \ub9ac\ub354, NetBeans \ub4dc\ub9bc\ud300 \uba64\ubc84, Docker \ucea1\ud2f4\uc774\uae30\ub3c4 \ud55c \uadf8\ub294 @arungupta\uc5d0\uc11c \uc27d\uac8c \ub9cc\ub098\ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2941","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\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=2941"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/2941\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/2942"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=2941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=2941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=2941"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=2941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}