{"id":2400,"date":"2017-01-06T07:47:53","date_gmt":"2017-01-06T07:47:52","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2400"},"modified":"2025-10-09T07:20:07","modified_gmt":"2025-10-09T14:20:07","slug":"minikube-rapid-dev-testing-kubernetes","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/","title":{"rendered":"Minikube &#8211; Rapid Dev &amp; Testing for Kubernetes"},"content":{"rendered":"<p>One of the\u00a0attendees from\u00a0<a href=\"https:\/\/www.oreilly.com\/live-training\/kubernetes-for-java-developers.html\">Kubernetes for Java Developers training<\/a>\u00a0suggested to try minikube for simplified Kubernetes dev and testing. This blog will\u00a0show<br \/>\n    how to get started with minikube\u00a0using a simple Java application.<br \/>\n    <a href=\"\/wp-content\/original-assets\/september-2016\/minikube---rapid-dev--testing-for-kubernetes\/minikube-logo-1024x290.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"minikube-logo\" class=\"alignnone size-large wp-image-14311\" height=\"171\" src=\"\/wp-content\/original-assets\/september-2016\/minikube---rapid-dev--testing-for-kubernetes\/minikube-logo-1024x290.jpg\" width=\"604\" \/><\/a>\n<\/p>\n<p><a href=\"https:\/\/kubernetes.io\/docs\/getting-started-guides\/minikube\/\">Minikube<\/a>\u00a0starts a single node Kubernetes cluster on your local machine\u00a0for rapid development and testing.\u00a0<a href=\"https:\/\/github.com\/kubernetes\/minikube#requirements\">Requirements<\/a>\u00a0lists<br \/>\n    the exact set of requirements for different operating systems.<\/p>\n<p>This blog will show:<\/p>\n<ul>\n<li>Start one node Kubernetes cluster<\/li>\n<li>Run Couchbase service<\/li>\n<li>Run\u00a0Java application<\/li>\n<li>View\u00a0Kubernetes Dashboard<\/li>\n<\/ul>\n<p>All Kubernetes resource description files used in this blog are at\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/kubernetes-java-sample\/tree\/master\/maven\">github.com\/arun-gupta\/kubernetes-java-sample\/tree\/master\/maven<\/a>.<\/p>\n<h2>Start Kubernetes Cluster using\u00a0Minikube<\/h2>\n<p>Create a new directory with the name\u00a0<code>minikube<\/code>. In that directory,\u00a0download <code>kubectl<\/code> CLI:<\/p>\n<pre class=\"lang:default decode:true\">\r\ncurl -Lo kubectl https:\/\/storage.googleapis.com\/kubernetes-release\/release\/v1.4.0\/bin\/darwin\/amd64\/kubectl &amp;&amp; chmod +x kubectl<\/pre>\n<p>Download\u00a0<code>minikube<\/code> CLI:<\/p>\n<pre class=\"lang:default decode:true\">\r\ncurl -Lo minikube https:\/\/storage.googleapis.com\/minikube\/releases\/v0.10.0\/minikube-darwin-amd64 &amp;&amp; chmod +x minikube<\/pre>\n<p>Start the cluster:<\/p>\n<pre class=\"lang:default decode:true\">\r\nminikube start\r\nStarting local Kubernetes cluster...\r\nKubectl is now configured to use the cluster.<\/pre>\n<p>The list of nodes can be seen:<\/p>\n<pre class=\"lang:default decode:true\">\r\nkubectl get nodes\r\nNAME       STATUS    AGE\r\nminikube   Ready     2h<\/pre>\n<p>More details about the cluster can be obtained using the <code>kubectl cluster-info<\/code> command:<\/p>\n<pre class=\"lang:default decode:true\">\r\nkubectl cluster-info\r\nKubernetes master is running at https:\/\/192.168.99.100:8443\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 &apos;kubectl cluster-info dump&apos;.<\/pre>\n<p>Behind the scenes, a Virtual Box VM is started. Complete set of commands supported\u00a0can be seen by using <code>--help<\/code>:<\/p>\n<pre class=\"lang:default decode:true\">\r\nminikube --help\r\nMinikube is a CLI tool that provisions and manages single-node Kubernetes clusters optimized for development workflows.\r\n\r\nUsage:\r\n  minikube [command]\r\n\r\nAvailable Commands:\r\n  dashboard        Opens\/displays the kubernetes dashboard URL for your local cluster\r\n  delete           Deletes a local kubernetes cluster.\r\n  docker-env       sets up docker env variables; similar to &apos;$(docker-machine env)&apos;\r\n  get-k8s-versions Gets the list of available kubernetes versions available for minikube.\r\n  ip               Retrieve the IP address of the running cluster.\r\n  logs             Gets the logs of the running localkube instance, used for debugging minikube, not user code.\r\n  config           Modify minikube config\r\n  service          Gets the kubernetes URL for the specified service in your local cluster\r\n  ssh              Log into or run a command on a machine with SSH; similar to &apos;docker-machine ssh&apos;\r\n  start            Starts a local kubernetes cluster.\r\n  status           Gets the status of a local kubernetes cluster.\r\n  stop             Stops a running local kubernetes cluster.\r\n  version          Print the version of minikube.\r\n\r\nFlags:\r\n      --alsologtostderr[=false]: log to standard error as well as files\r\n      --log-flush-frequency=5s: Maximum number of seconds between log flushes\r\n      --log_backtrace_at=:0: when logging hits line file:N, emit a stack trace\r\n      --log_dir=\"\": If non-empty, write log files in this directory\r\n      --logtostderr[=false]: log to standard error instead of files\r\n      --show-libmachine-logs[=false]: Whether or not to show logs from libmachine.\r\n      --stderrthreshold=2: logs at or above this threshold go to stderr\r\n      --v=0: log level for V logs\r\n      --vmodule=: comma-separated list of pattern=N settings for file-filtered logging\r\n\r\nUse \"minikube [command] --help\" for more information about a command.<\/pre>\n<h2>Run Couchbase Service<\/h2>\n<p>Create a <a href=\"https:\/\/developer.couchbase.com\/server\">Couchbase<\/a> service:<\/p>\n<pre class=\"lang:default decode:true\">\r\nkubectl create -f couchbase-service.yml \r\nservice \"couchbase-service\" created\r\nreplicationcontroller \"couchbase-rc\" created<\/pre>\n<p>This will start a Couchbase service. The service is using the pods created by the replication controller.\u00a0The replication controller creates a single node Couchbase server. The configuration file is at\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/kubernetes-java-sample\/blob\/master\/maven\/couchbase-service.yml\">github.com\/arun-gupta\/kubernetes-java-sample\/blob\/master\/maven\/couchbase-service.yml<\/a>    and looks\u00a0like:<\/p>\n<pre class=\"lang:default decode:true\">\r\napiVersion: v1\r\nkind: Service\r\nmetadata: \r\n  name: couchbase-service\r\nspec: \r\n  selector: \r\n    app: couchbase-rc-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: v1\r\nkind: ReplicationController\r\nmetadata:\r\n  name: couchbase-rc\r\nspec:\r\n  replicas: 1\r\n  template:\r\n    metadata:\r\n      labels:\r\n        app: couchbase-rc-pod\r\n    spec:\r\n      containers:\r\n      - name: couchbase\r\n        image: arungupta\/oreilly-couchbase\r\n        ports:\r\n        - containerPort: 8091\r\n        - containerPort: 8092\r\n        - containerPort: 8093\r\n        - containerPort: 11210<\/pre>\n<h2>Run Java Application<\/h2>\n<p>Run the application:<\/p>\n<pre class=\"lang:default decode:true\">\r\nkubectl create -f bootiful-couchbase.yml \r\njob \"bootiful-couchbase\" created<\/pre>\n<p>The configuration file is at\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/kubernetes-java-sample\/blob\/master\/maven\/bootiful-couchbase.yml\">github.com\/arun-gupta\/kubernetes-java-sample\/blob\/master\/maven\/bootiful-couchbase.yml<\/a>\u00a0and looks like:<\/p>\n<pre class=\"lang:default decode:true\">\r\napiVersion: batch\/v1\r\nkind: Job\r\nmetadata:\r\n  name: bootiful-couchbase\r\n  labels:\r\n    name: bootiful-couchbase-pod\r\nspec:\r\n  template:\r\n    metadata:\r\n      name: bootiful-couchbase-pod\r\n    spec:\r\n      containers:\r\n      - name: bootiful-couchbase\r\n        image: arungupta\/bootiful-couchbase\r\n        env:\r\n        - name: COUCHBASE_URI\r\n          value: couchbase-service\r\n      restartPolicy: Never<\/pre>\n<p>This is <a href=\"https:\/\/kubernetes.io\/docs\/user-guide\/jobs\/\">run-once job<\/a>\u00a0which runs a Java (Spring Boot) application and upserts (insert or update) a JSON document in Couchbase. In this job, <code>COUCHBASE_URI<\/code> environment variable\u00a0value<br \/>\n    is set to <code>couchbase-service<\/code>. This is the service name created earlier. Docker image used for this service is <code>arungupta\/bootiful-couchbase<\/code> and is created using <a href=\"https:\/\/github.com\/fabric8io\/docker-maven-plugin\">fabric8-maven-plugin<\/a>    as shown at\u00a0<a href=\"https:\/\/github.com\/arun-gupta\/kubernetes-java-sample\/blob\/master\/maven\/webapp\/pom.xml#L57-L68\">github.com\/arun-gupta\/kubernetes-java-sample\/blob\/master\/maven\/webapp\/pom.xml#L57-L68<\/a>. Specifically, the command for the Docker<br \/>\n    image is:<\/p>\n<pre class=\"lang:default decode:true\">\r\njava -Dspring.couchbase.bootstrap-hosts=$COUCHBASE_URI -jar \/maven\/${project.artifactId}.jar<\/pre>\n<p>This ensures that <code>COUCHBASE_URI<\/code> environment variable is overriding <code>spring.couchbase.bootstrap-hosts<\/code> property as\u00a0defined in <a href=\"https:\/\/github.com\/arun-gupta\/kubernetes-java-sample\/blob\/master\/maven\/webapp\/src\/main\/resources\/application.properties\">application.properties<\/a>    of the Spring Boot application.<\/p>\n<h2>Kubernetes Dashboard<\/h2>\n<p>Kubernetes 1.4 included an updated dashboard.\u00a0For minikube, this can be opened using the\u00a0following command:<\/p>\n<pre class=\"lang:default decode:true\">\r\nminikube dashboard\r\nWaiting, endpoint for service is not ready yet...Opening kubernetes dashboard in default browser...<\/pre>\n<p>\u00a0<\/p>\n<p>The default view is shown below:<br \/>\n    <a href=\"\/wp-content\/original-assets\/september-2016\/minikube---rapid-dev--testing-for-kubernetes\/minikube-dashboard-1.4-1024x845.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"minikube-dashboard-1-4\" class=\"alignnone size-large wp-image-14308\" height=\"498\" src=\"\/wp-content\/original-assets\/september-2016\/minikube---rapid-dev--testing-for-kubernetes\/minikube-dashboard-1.4-1024x845.png\" width=\"604\" \/><\/a><br \/> But in our case, a few resources have already been created and so this will look like as shown:<br \/>\n    <a href=\"\/wp-content\/original-assets\/september-2016\/minikube---rapid-dev--testing-for-kubernetes\/minikube-dashboard-couchbase-1024x661.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"minikube-dashboard-couchbase\" class=\"alignnone size-large wp-image-14310\" height=\"390\" src=\"\/wp-content\/original-assets\/september-2016\/minikube---rapid-dev--testing-for-kubernetes\/minikube-dashboard-couchbase-1024x661.png\" width=\"604\" \/><\/a>\n<\/p>\n<p>Notice, our Jobs, Replication Controllers and Pods are shown here.<\/p>\n<h2>Shutdown\u00a0Kubernetes Cluster<\/h2>\n<p>The cluster can be easily shutdown:<\/p>\n<pre class=\"lang:default decode:true\">\r\nminikube stop\r\nStopping local Kubernetes cluster...\r\nMachine stopped.<\/pre>\n<p><a href=\"https:\/\/couchbase.com\/containers\/\">couchbase.com\/containers<\/a> provide more details about running Couchbase using different orchestration frameworks. Further references:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.couchbase.com\/forums\/\">Couchbase Forums<\/a> or\u00a0<a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/couchbase\">StackOverflow<\/a><\/li>\n<li>Follow us at <a href=\"https:\/\/twitter.com\/couchbasedev\">@couchbasedev<\/a> or <a href=\"https:\/\/twitter.com\/couchbase\">@couchbase<\/a><\/li>\n<li>Read more about <a href=\"https:\/\/developer.couchbase.com\/server\">Couchbase Server<\/a><\/li>\n<\/ul>\n<p>\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the\u00a0attendees from\u00a0Kubernetes for Java Developers training\u00a0suggested to try minikube for simplified Kubernetes dev and testing. This blog will\u00a0show how to get started with minikube\u00a0using a simple Java application. Minikube\u00a0starts a single node Kubernetes cluster on your local machine\u00a0for [&hellip;]<\/p>\n","protected":false},"author":58,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816],"tags":[],"ppma_author":[8933],"class_list":["post-2400","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Minikube - Rapid Dev &amp; Testing for Kubernetes - The Couchbase Blog<\/title>\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\/minikube-rapid-dev-testing-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Minikube - Rapid Dev &amp; Testing for Kubernetes\" \/>\n<meta property=\"og:description\" content=\"One of the\u00a0attendees from\u00a0Kubernetes for Java Developers training\u00a0suggested to try minikube for simplified Kubernetes dev and testing. This blog will\u00a0show how to get started with minikube\u00a0using a simple Java application. Minikube\u00a0starts a single node Kubernetes cluster on your local machine\u00a0for [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-06T07:47:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-09T14:20:07+00:00\" \/>\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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/\"},\"author\":{\"name\":\"Arun Gupta, VP, Developer Advocacy, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f\"},\"headline\":\"Minikube &#8211; Rapid Dev &amp; Testing for Kubernetes\",\"datePublished\":\"2017-01-06T07:47:52+00:00\",\"dateModified\":\"2025-10-09T14:20:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/\"},\"wordCount\":420,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Server\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/\",\"name\":\"Minikube - Rapid Dev &amp; Testing for Kubernetes - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-01-06T07:47:52+00:00\",\"dateModified\":\"2025-10-09T14:20:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Minikube &#8211; Rapid Dev &amp; Testing for 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\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@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\":\"en-US\",\"@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\/author\/arun-gupta\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Minikube - Rapid Dev &amp; Testing for Kubernetes - The Couchbase Blog","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\/minikube-rapid-dev-testing-kubernetes\/","og_locale":"en_US","og_type":"article","og_title":"Minikube - Rapid Dev &amp; Testing for Kubernetes","og_description":"One of the\u00a0attendees from\u00a0Kubernetes for Java Developers training\u00a0suggested to try minikube for simplified Kubernetes dev and testing. This blog will\u00a0show how to get started with minikube\u00a0using a simple Java application. Minikube\u00a0starts a single node Kubernetes cluster on your local machine\u00a0for [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/","og_site_name":"The Couchbase Blog","article_published_time":"2017-01-06T07:47:52+00:00","article_modified_time":"2025-10-09T14:20:07+00:00","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":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/"},"author":{"name":"Arun Gupta, VP, Developer Advocacy, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/39d8caed0f536489b6aa6e8d31ee631f"},"headline":"Minikube &#8211; Rapid Dev &amp; Testing for Kubernetes","datePublished":"2017-01-06T07:47:52+00:00","dateModified":"2025-10-09T14:20:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/"},"wordCount":420,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Server"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/","url":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/","name":"Minikube - Rapid Dev &amp; Testing for Kubernetes - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-01-06T07:47:52+00:00","dateModified":"2025-10-09T14:20:07+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/minikube-rapid-dev-testing-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Minikube &#8211; Rapid Dev &amp; Testing for 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":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@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":"en-US","@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\/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":"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.\r\n\r\nGupta 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."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=2400"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2400\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=2400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=2400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=2400"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}