{"id":92992,"date":"2020-08-13T11:00:00","date_gmt":"2020-08-13T08:00:00","guid":{"rendered":"https:\/\/examples.javacodegeeks.com\/?p=92992"},"modified":"2020-08-11T14:53:33","modified_gmt":"2020-08-11T11:53:33","slug":"docker-kubernetes-integration-tutorial","status":"publish","type":"post","link":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/","title":{"rendered":"Docker Kubernetes Integration Tutorial"},"content":{"rendered":"<p>This tutorial talks about Docker and Kubernetes integration. This tutorial gives a quick introduction to the Kubernetes and the Docker, and the key concepts behind Kubernetes and its integration with Docker containers.<\/p>\n<h2 class=\"wp-block-heading\">1. Introduction<\/h2>\n<p>Kubernetes, in its most simple definition, is a container orchestration engine. Here orchestration means managing the containers in terms of creation, deletion, monitoring for availability, failure detection, and recovery. Check our article <a href=\"https:\/\/examples.javacodegeeks.com\/what-is-kubernetes\/\">What is Kubernetes<\/a> to know more about Kubernetes.<\/p>\n<\/p>\n<p>Docker technology is a containerization mechanism to run images as containers. It also allows us to build images, upload into a secure registry, and run the images available at the docker registry. Refer to our article to get a quick start on <a href=\"https:\/\/examples.javacodegeeks.com\/docker-quickstart-terminal-tutorial\/\">docker<\/a> containers.<\/p>\n<h2 class=\"wp-block-heading\">2. How Kubernetes uses docker<\/h2>\n<p>Further to the definition, this section shows how Kubernetes executes workloads (or applications) through docker containers. <\/p>\n<p>A typical Kubernetes cluster, as shown in the figure below, consists of a master node and one more worker nodes. The master node is also called as control-plane and hosts a Kube API server that receives requests to run applications that are divided into small units called POD. The POD is a minimal running unit that is managed by the master node. Into the POD, there goes in one or more containers running from the images built from the application which is to be executed.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"820\" height=\"367\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/Fig1-Introduction-final.jpg\" alt=\"Docker Kubernetes - Node JS Example\" class=\"wp-image-93174\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/Fig1-Introduction-final.jpg 820w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/Fig1-Introduction-final-300x134.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/Fig1-Introduction-final-768x344.jpg 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><figcaption>Node JS Example<\/figcaption><\/figure>\n<\/div>\n<p>Let us take an example of running a simple node JS application enabled by Express.<\/p>\n<p>Here <code>kubectl<\/code> deploys an application through a deployment. When a deployment is created the K8s create a POD based on a given Docker image. When the Kubernetes master issues a command to the worker nodes to create a POD, the worker node downloads the said docker image and runs the same as a container.<\/p>\n<h2 class=\"wp-block-heading\">3. The Application<\/h2>\n<p>The application consists of a simple Express-based nodeJS application. The node JS has a start point <code>app.js<\/code> which the endpoint &#8220;\/&#8221; which returns a text &#8211; Welcome to the JCG tutorial for Kubernetes Docker Integration. You can start the application by simply executing <code>node app.js<\/code> provided you have Node version 12 is installed.<\/p>\n<p>It comes with a Dockerfile using which you can generate a Docker image. The application code also comes with <code>deployment-jcg.yaml<\/code> which can be used to deploy the image, generated using the above <code>Dockerfile<\/code>, on to the Kubernetes cluster.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"820\" height=\"227\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/Application-final.jpg\" alt=\"Docker Kubernetes - The Node JS Application\" class=\"wp-image-93261\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/Application-final.jpg 820w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/Application-final-300x83.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/Application-final-768x213.jpg 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><figcaption>The Node JS Application<\/figcaption><\/figure>\n<h2 class=\"wp-block-heading\">4. K8s Deployment<\/h2>\n<p>Let us consider the image generated using the example application is jcg-nodejs:1.0.0. The below listing is the YAML to create the deployment:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: deployment-jcg\n  labels:\n    app: nodejs\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: nodejs\n  template:\n    metadata:\n      labels:\n        app: nodejs\n    spec:\n      containers:\n        - name: jcg-nodejs\n          image: jcg-nodejs:1.0.0\n          ports:\n            - containerPort: 3000\n<\/pre>\n<\/div>\n<p>Here  the above YAML, shows that the deployment name is deployment-jcg and it has a POD specification  for a single container (name: jcg-nodejs) based on the image jcg-nodejs:1.0.0 and the image itself exposes a port 3000,<\/p>\n<p>When you create a deployment with the above YAML, the Kubernetes downloads the images jcg-nodejs:1.0.0 and runs it as a container.  Once the POD is in running state, the node JS Application would be running at 3000. However, to access the application you need to create a service and access the POD through the service. Check Section 5. Execution to see a detailed way to deploy and see it in action. <\/p>\n<h2 class=\"wp-block-heading\">5. Execution<\/h2>\n<p>This section illustrates the running of the sample application on a minikube version of Kubernetes (K8s). This section covers the installation of minikube, local registry, building the image, and finally running the container on the local minikube. These instructions assume Ubuntu Linux OS. Refer to the <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-minikube\/\">Kubernetes<\/a> site to know the instructions for other operating systems.<\/p>\n<h3 class=\"wp-block-heading\">5.1 Installation of Minikube<\/h3>\n<p>Step 1: Install Docker<\/p>\n<pre class=\"brush:bash\">sudo apt install docker.io<\/pre>\n<p>sudo groupadd docker &amp;&amp; sudo usermod -aG docker $USER<br \/>\nStep 2: Download minikube<\/p>\n<pre class=\"brush:bash\">curl -Lo minikube https:\/\/storage.googleapis.com\/minikube\/releases\/latest\/minikube-linux-amd64 \\\n  &amp;&amp; chmod +x minikube<\/pre>\n<p>Step 3: add the Minikube executable to your path<\/p>\n<pre class=\"brush:bash\">sudo mkdir -p \/usr\/local\/bin\/\nsudo install minikube \/usr\/local\/bin\/<\/pre>\n<p>Step 4: Install kubectl. Reference: <a href=\"\">Kubernetes<\/a>[ulp id=&#8217;6PVIvOz3kDbYmNRn&#8217;]<\/p>\n<pre class=\"brush:bash\">curl -LO \"https:\/\/storage.googleapis.com\/kubernetes-release\/release\/$(curl -s https:\/\/storage.googleapis.com\/kubernetes-release\/release\/stable.txt)\/bin\/linux\/amd64\/kubectl\"\nchmod +x .\/kubectl\nsudo mv .\/kubectl \/usr\/local\/bin\/kubectl<\/pre>\n<p>Step 5: Start the minikube using Docker as the driver<\/p>\n<pre class=\"brush:bash\">minikube start --driver=docker<\/pre>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"820\" height=\"165\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/MinikubeStart-final.jpg\" alt=\"Docker Kubernetes - Minikube Start\" class=\"wp-image-93252\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/MinikubeStart-final.jpg 820w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/MinikubeStart-final-300x60.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/MinikubeStart-final-768x155.jpg 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><figcaption>Minikube Start<\/figcaption><\/figure>\n<h3 class=\"wp-block-heading\">5.2 Upload source code and build the image<\/h3>\n<p>Step 1: Upload the example code to the minikube host to a place say, <code>\/home\/shiva\/jcg-nodejs<\/code><\/p>\n<p>Step 2: Build the image.<\/p>\n<pre class=\"brush:bash\">\ncd NodeJSExample\neval $(minikube docker-env)\ndocker build . --file Dockerfile --tag jcg-nodejs:1.0.0\n<\/pre>\n<\/p>\n<h3 class=\"wp-block-heading\">5.3. Deploy the application to the Kubernetes<\/h3>\n<p>Deploy to Kubernetes is using the YAML which comes along with the application. For more information about deployments refer to the <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/workloads\/controllers\/deployment\/\">Kubernetes<\/a> documentation.<\/p>\n<pre class=\"brush:bash\">kubectl apply -f deployment-jcg.yaml<\/pre>\n<p><span style=\"text-decoration: underline\"><em>Output:<\/em><\/span><\/p>\n<p><pre class=\"brush:bash\">\ndeployment.apps\/nginx-deployment created\n<\/pre>\n<\/p>\n<p>Check if pods are running.<\/p>\n<pre class=\"brush:bash\">\nkubectl get pods\n<\/pre>\n<p><span style=\"text-decoration: underline\"><em>Output:<\/em><\/span><\/p>\n<pre class=\"brush:bash\">\nNAME                              READY   STATUS    RESTARTS   AGE\ndeployment-jcg-6bdfc58f5f-2sbbb   1\/1     Running   0          48s\n<\/pre>\n<p>To access the hello-minikube Deployment, expose it as a Service<\/p>\n<pre class=\"brush:bash\">kubectl expose deployment deployment-jcg --type=NodePort --port=3000<\/pre>\n<p>Get the URL to access the application.<\/p>\n<pre class=\"brush:bash\">minikube service deployment-jcg --url<\/pre>\n<p><span style=\"text-decoration: underline\"><em>Output:<\/em><\/span><\/p>\n<pre class=\"brush:bash\">http:\/\/172.17.0.4:31819\n<\/pre>\n<p>Access the application using a browser at the URL shown in the above step.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"820\" height=\"261\" src=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/ApplicationInBrowser-final.jpg\" alt=\"Docker Kubernetes - Application through browser\" class=\"wp-image-93286\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/ApplicationInBrowser-final.jpg 820w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/ApplicationInBrowser-final-300x95.jpg 300w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/ApplicationInBrowser-final-768x244.jpg 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><figcaption>Application through browser<\/figcaption><\/figure>\n<\/div>\n<p>Delete the service.<\/p>\n<pre class=\"brush:bash\">kubectl delete services deployment-jcg\n<\/pre>\n<p><span style=\"text-decoration: underline\"><em>Output:<\/em><\/span><\/p>\n<p><pre class=\"brush:bash\">\nservice \"deployment-jcg\" deleted<\/pre>\n<\/p>\n<p>Delete the deployment.<\/p>\n<pre class=\"brush:bash\">kubectl delete deployment deployment-jcg\n<\/pre>\n<p><span style=\"text-decoration: underline\"><em>Output:<\/em><\/span><\/p>\n<p><pre class=\"brush:bash\">\ndeployment.apps \"deployment-jcg\" deleted<\/pre>\n<\/p>\n<p>Stop the minikube.<\/p>\n<pre class=\"brush:bash\">\nminikube stop\n<\/pre>\n<p><span style=\"text-decoration: underline\"><em>Output:<\/em><\/span><\/p>\n<pre class=\"brush:bash\">\n\u270b  Stopping node \"minikube\"  ... \n\ud83d\uded1  Powering off \"minikube\" via SSH ...\n\ud83d\uded1  1 nodes stopped.<br>\n<\/pre>\n<h2 class=\"wp-block-heading\">6. Download the source code<\/h2>\n<div class=\"download\"><strong>Download<\/strong><br \/>\nYou can download the full source code of this example here: <a href=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/08\/NodeJSExample.zip\"><strong>Docker Kubernetes Integration Tutorial<\/strong><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial talks about Docker and Kubernetes integration. This tutorial gives a quick introduction to the Kubernetes and the Docker, and the key concepts behind Kubernetes and its integration with Docker containers. 1. Introduction Kubernetes, in its most simple definition, is a container orchestration engine. Here orchestration means managing the containers in terms of creation, &hellip;<\/p>\n","protected":false},"author":222,"featured_media":31013,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1354],"tags":[46381],"class_list":["post-92992","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker","tag-kubernetes"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Docker Kubernetes Integration Tutorial - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"This tutorial talks about Docker and Kubernetes integration. This tutorial gives a quick introduction to the Kubernetes and the Docker, and the key\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker Kubernetes Integration Tutorial - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"This tutorial talks about Docker and Kubernetes integration. This tutorial gives a quick introduction to the Kubernetes and the Docker, and the key\" \/>\n<meta property=\"og:url\" content=\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/\" \/>\n<meta property=\"og:site_name\" content=\"Examples Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-13T08:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Shivakumar Ramannavar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shivakumar Ramannavar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/\"},\"author\":{\"name\":\"Shivakumar Ramannavar\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/2b71c417a9bb1e9bd863d4ff7d37f1ce\"},\"headline\":\"Docker Kubernetes Integration Tutorial\",\"datePublished\":\"2020-08-13T08:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/\"},\"wordCount\":749,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"keywords\":[\"Kubernetes\"],\"articleSection\":[\"Docker\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/\",\"name\":\"Docker Kubernetes Integration Tutorial - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"datePublished\":\"2020-08-13T08:00:00+00:00\",\"description\":\"This tutorial talks about Docker and Kubernetes integration. This tutorial gives a quick introduction to the Kubernetes and the Docker, and the key\",\"breadcrumb\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#primaryimage\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/examples.javacodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/devops\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Docker\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/devops\/docker\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Docker Kubernetes Integration Tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Examples and Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/javacodegeeks\",\"https:\/\/x.com\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/2b71c417a9bb1e9bd863d4ff7d37f1ce\",\"name\":\"Shivakumar Ramannavar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/05\/shivakumar.-ramannavar-96x96.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/05\/shivakumar.-ramannavar-96x96.jpg\",\"caption\":\"Shivakumar Ramannavar\"},\"description\":\"Shivakumar has 16+ years of experience in Java Development, Cloud and also has a lot of passion in Cloud-native Applications and Kubernetes. Shiva has a Bachelor's Degree from Visweswaraiah Technological University, India. Shiva has been involved in the development of IT systems using Java\/J2EE, Kubernetes, and has designed tonnes of applications both on-premise and on-cloud. Shiva strongly believes there is a great revolution of cloud-native technologies and that we can create a world of difference through learning, sharing, and caring among the community.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/shivakumar-ramannavar\/\"],\"url\":\"https:\/\/examples.javacodegeeks.com\/author\/shivakumar-ramannavar\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Docker Kubernetes Integration Tutorial - Java Code Geeks","description":"This tutorial talks about Docker and Kubernetes integration. This tutorial gives a quick introduction to the Kubernetes and the Docker, and the key","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:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"Docker Kubernetes Integration Tutorial - Java Code Geeks","og_description":"This tutorial talks about Docker and Kubernetes integration. This tutorial gives a quick introduction to the Kubernetes and the Docker, and the key","og_url":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/","og_site_name":"Examples Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2020-08-13T08:00:00+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","type":"image\/jpeg"}],"author":"Shivakumar Ramannavar","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Shivakumar Ramannavar","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#article","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/"},"author":{"name":"Shivakumar Ramannavar","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/2b71c417a9bb1e9bd863d4ff7d37f1ce"},"headline":"Docker Kubernetes Integration Tutorial","datePublished":"2020-08-13T08:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/"},"wordCount":749,"commentCount":0,"publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","keywords":["Kubernetes"],"articleSection":["Docker"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/","url":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/","name":"Docker Kubernetes Integration Tutorial - Java Code Geeks","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","datePublished":"2020-08-13T08:00:00+00:00","description":"This tutorial talks about Docker and Kubernetes integration. This tutorial gives a quick introduction to the Kubernetes and the Docker, and the key","breadcrumb":{"@id":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#primaryimage","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2015\/12\/docker-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/examples.javacodegeeks.com\/docker-kubernetes-integration-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/examples.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/examples.javacodegeeks.com\/category\/devops\/"},{"@type":"ListItem","position":3,"name":"Docker","item":"https:\/\/examples.javacodegeeks.com\/category\/devops\/docker\/"},{"@type":"ListItem","position":4,"name":"Docker Kubernetes Integration Tutorial"}]},{"@type":"WebSite","@id":"https:\/\/examples.javacodegeeks.com\/#website","url":"https:\/\/examples.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/examples.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/examples.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/2b71c417a9bb1e9bd863d4ff7d37f1ce","name":"Shivakumar Ramannavar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/05\/shivakumar.-ramannavar-96x96.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2020\/05\/shivakumar.-ramannavar-96x96.jpg","caption":"Shivakumar Ramannavar"},"description":"Shivakumar has 16+ years of experience in Java Development, Cloud and also has a lot of passion in Cloud-native Applications and Kubernetes. Shiva has a Bachelor's Degree from Visweswaraiah Technological University, India. Shiva has been involved in the development of IT systems using Java\/J2EE, Kubernetes, and has designed tonnes of applications both on-premise and on-cloud. Shiva strongly believes there is a great revolution of cloud-native technologies and that we can create a world of difference through learning, sharing, and caring among the community.","sameAs":["https:\/\/www.linkedin.com\/in\/shivakumar-ramannavar\/"],"url":"https:\/\/examples.javacodegeeks.com\/author\/shivakumar-ramannavar\/"}]}},"_links":{"self":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/92992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/users\/222"}],"replies":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=92992"}],"version-history":[{"count":0,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/92992\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media\/31013"}],"wp:attachment":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=92992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=92992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=92992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}