{"id":5699,"date":"2020-10-24T09:00:20","date_gmt":"2020-10-24T03:30:20","guid":{"rendered":"https:\/\/www.upnxtblog.com\/?p=5699"},"modified":"2021-04-21T10:44:10","modified_gmt":"2021-04-21T05:14:10","slug":"set-up-microk8s-to-run-an-edge-application","status":"publish","type":"post","link":"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/","title":{"rendered":"Set Up MicroK8s to Run an Edge Application"},"content":{"rendered":"<div class='booster-block booster-read-block'><\/div><p>We already know that <a class=\"ext-link\" href=\"https:\/\/kubernetes.io\/\" rel=\"external  noopener\" target=\"_blank\">Kubernetes<\/a> is the No. 1 orchestration platform for container-based applications, automating the deployment and scaling of these apps, and streamlining maintenance operations. However, Kubernetes comes with its own complexity challenges.\u00a0So how can an enterprise take advantage of containerization to tackle IoT complexity and not end up with yet more complexities of Kubernetes?<\/p>\n<p><a class=\"ext-link\" href=\"https:\/\/microk8s.io\/\" target=\"_blank\" rel=\"noopener noreferrer external\">MicroK8s<\/a>\u00a0is a powerful, Cloud Native Computing Foundation-certified Kubernetes\u00a0<a class=\"ext-link\" href=\"https:\/\/www.cncf.io\/certification\/software-conformance\/\" target=\"_blank\" rel=\"noopener noreferrer external\">distribution,<\/a> here are some of the key reasons why <span style=\"font-family: inherit; font-style: inherit; font-weight: inherit;\">it has become a powerful enterprise edge computing platform.<\/span><\/p>\n<ul>\n<li>\u00a0<strong>Delivered as snap packages<\/strong> &#8211; These are app packages for desktop, cloud, and IoT that are easy to install and secure with auto-updates and can be installed on any of the Linux distributions that support snaps. This makes MicroK8s ideal for running on the vast variety of hardware that comprises the IoT.<\/li>\n<li><strong>Strict confinement<\/strong> &#8211; This ensures complete isolation from the underlying operating system and a tightly secured production-grade Kubernetes environment, all in a small footprint ideal for edge gateways.<\/li>\n<li><strong>Production-grade add-ons<\/strong> \u2014\u00a0 <a class=\"ext-link\" href=\"https:\/\/istio.io\/\" rel=\"external  noopener\" target=\"_blank\">Istio<\/a>,\u00a0<a class=\"ext-link\" href=\"https:\/\/cloud.google.com\/knative\/\" rel=\"external  noopener\" target=\"_blank\">Knative<\/a>,\u00a0<a class=\"ext-link\" href=\"https:\/\/coredns.io\/\" rel=\"external  noopener\" target=\"_blank\">CoreDNS<\/a>,\u00a0<a class=\"ext-link\" href=\"https:\/\/prometheus.io\/\" rel=\"external  noopener\" target=\"_blank\">Prometheus<\/a>,\u00a0<a class=\"ext-link\" href=\"https:\/\/www.jaegertracing.io\/\" rel=\"external  noopener\" target=\"_blank\">Jaeger<\/a>,\u00a0<a class=\"ext-link\" href=\"https:\/\/linkerd.io\/\" target=\"_blank\" rel=\"noopener noreferrer external\">Linkerd<\/a>,\u00a0<a class=\"ext-link\" href=\"https:\/\/cilium.io\/\" rel=\"external  noopener\" target=\"_blank\">Cilium<\/a>, and\u00a0<a class=\"ext-link\" href=\"https:\/\/helm.sh\/docs\/\" rel=\"external  noopener\" target=\"_blank\">Helm<\/a> are available as add-ons these are simple to set up, with just a few lines of commands.<\/li>\n<li><strong>\u00a0<a class=\"ext-link\" href=\"https:\/\/www.kubeflow.org\/\" target=\"_blank\" rel=\"noopener noreferrer external\">Kubeflow<\/a><\/strong> is also available as an add-on to MicroK8s for improved artificial intelligence (AI) and machine learning (ML) capabilities.<\/li>\n<\/ul>\n<p>With its ability to reduce complexity MicroK8s is going to accelerate IoT and edge deployments. Treating IoT devices like distributed containerized applications allows developers to focus on applications rather than infrastructure and make life easier for operations teams.<\/p>\n<p>MicroK8s lets you cluster Kubernetes installations together so they can form a single cluster and place workloads on one or more of these nodes. In this article, we will learn how to deploy Stateful Angular + Spring Boot +Postgres Application on to MicroK8s cluster.<\/p>\n<p>If you\u2019re new to Kubernetes, I recommend reading the following hands-on guides before reading this one<\/p>\n<ul>\n<li><a href=\"https:\/\/www.upnxtblog.com\/index.php\/2017\/11\/13\/kubernetes-platform-intro-key-concepts\/\">Kubernetes \u2013 Introduction &amp; key concepts<\/a><\/li>\n<li><a href=\"https:\/\/www.upnxtblog.com\/index.php\/2017\/11\/17\/how-to-kubernetes-create-simple-cluster-deploy-app\/\">Kubernetes tutorial \u2013 Create simple cluster &amp; Deploy app<\/a><\/li>\n<li><a href=\"https:\/\/www.upnxtblog.com\/index.php\/2017\/12\/08\/kubernetes-tutorial-create-deployments-using-yaml-file\/\">Kubernetes tutorial \u2013 Create deployments using YAML file<\/a><\/li>\n<li><a href=\"https:\/\/www.upnxtblog.com\/index.php\/2019\/12\/27\/get-smallest-fastest-fully-conformant-microk8s-kubernetes\/\">Get smallest, fastest, fully-conformant MicroK8s Kubernetes<\/a><\/li>\n<\/ul>\n<p>The sample application is a Fullstack Angular, SpringBoot, Postgres app where users can create a customer with attributes Name and Age.<\/p>\n<figure id=\"attachment_5728\" aria-describedby=\"caption-attachment-5728\" style=\"width: 380px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5728\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/sampleapp\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/sampleapp.jpg?fit=380%2C489&amp;ssl=1\" data-orig-size=\"380,489\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;S Karthikeyan&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1598175540&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"sampleapp\" data-image-description=\"&lt;p&gt;Sample Application&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Sample Application&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/sampleapp.jpg?fit=380%2C489&amp;ssl=1\" class=\"size-full wp-image-5728 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/sampleapp.jpg?resize=380%2C489&#038;ssl=1\" alt=\"\" width=\"380\" height=\"489\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/sampleapp.jpg?w=380&amp;ssl=1 380w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/sampleapp.jpg?resize=233%2C300&amp;ssl=1 233w\" data-sizes=\"auto, (max-width: 380px) 100vw, 380px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 380px; --smush-placeholder-aspect-ratio: 380\/489;\" \/><figcaption id=\"caption-attachment-5728\" class=\"wp-caption-text\">Image &#8211; Sample Application<\/figcaption><\/figure>\n<p>To deploy this application, we would be using\u00a0 <em>PersistentVolume<\/em> (PV) which is a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned.PVs are volume plugins like Volumes but have a lifecycle independent of any individual pod that uses the PV.<\/p>\n<p><em>PersistentVolumeClaim<\/em> (PVC) is a request for storage by a user. It is similar to a Pod. Pods consume node resources and PVCs consume PV resources. Pods can request specific levels of resources (CPU and Memory). Claims can request specific size and access modes (e.g., they can be mounted ReadWriteOnce, ReadOnlyMany or ReadWriteMany)<\/p>\n<p><em>Cross Posted from <a href=\"https:\/\/thenewstack.io\/set-up-microk8s-to-run-an-edge-application\/\" target=\"_blank\" rel=\"noopener\">TheNewStack<\/a><\/em><\/p>\n<p><span style=\"font-family: inherit; font-style: inherit; font-weight: inherit;\"><\/span><\/p>\n<h2 class=\"p-stepped-list__title col-4\">Step#1. Setup MicroK8s cluster<\/h2>\n<p>MicroK8s is deployed via <a href=\"https:\/\/snapcraft.io\/\" target=\"_blank\" rel=\"noopener\">Snaps<\/a>. Snaps are containerized (like docker) software packages that are easy to create and install, they bundle their dependencies, they work on all major Linux systems without modification. Snaps auto-update and are safe to run. Also, note <em>MicroK8s<\/em> snap would be frequently updated to match each release of Kubernetes.<\/p>\n<p>MicroK8s snap can be installed using the command below:<\/p>\n<p><code>snap install microk8s --classic --beta<\/code><\/p>\n<p>If you&#8217;re looking for detailed steps, please refer to this <a href=\"https:\/\/www.upnxtblog.com\/index.php\/2019\/12\/27\/get-smallest-fastest-fully-conformant-microk8s-kubernetes\/\">article<\/a>.<\/p>\n<p>At this point, we have installed MicroK8s, check whether the newly deployed node is in <code>Ready<\/code> state using the following command.<\/p>\n<p><code>kubectl get nodes<\/code><\/p>\n<figure id=\"attachment_5719\" aria-describedby=\"caption-attachment-5719\" style=\"width: 593px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5719\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/node1\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node1.png?fit=593%2C113&amp;ssl=1\" data-orig-size=\"593,113\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node1\" data-image-description=\"&lt;p&gt;2-node Microk8s Cluster&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; 2-node Microk8s Cluster&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node1.png?fit=593%2C113&amp;ssl=1\" class=\"size-full wp-image-5719 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node1.png?resize=593%2C113&#038;ssl=1\" alt=\"\" width=\"593\" height=\"113\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node1.png?w=593&amp;ssl=1 593w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node1.png?resize=300%2C57&amp;ssl=1 300w\" data-sizes=\"auto, (max-width: 593px) 100vw, 593px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 593px; --smush-placeholder-aspect-ratio: 593\/113;\" \/><figcaption id=\"caption-attachment-5719\" class=\"wp-caption-text\">Image &#8211; 2-node Microk8s Cluster<\/figcaption><\/figure>\n<h2 class=\"p-stepped-list__title col-4\">Step#2.Deploying Postgres on Kubernetes using PersistentVolume<\/h2>\n<p>Following is the Kubernetes manifest for Postgres deployment.<\/p>\n<p><code>kind: PersistentVolume<\/code><br \/>\n<code>apiVersion: v1<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: postgres-pv-volume<\/code><br \/>\n<code>labels:<\/code><br \/>\n<code>type: local<\/code><br \/>\n<code>app: postgres<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>storageClassName: manual<\/code><br \/>\n<code>capacity:<\/code><br \/>\n<code>storage: 100Mi<\/code><br \/>\n<code>accessModes:<\/code><br \/>\n<code>- ReadWriteMany<\/code><br \/>\n<code>hostPath:<\/code><br \/>\n<code>path: \"\/var\/lib\/postgres\"<\/code><br \/>\n<code>---<\/code><br \/>\n<code>kind: PersistentVolumeClaim<\/code><br \/>\n<code>apiVersion: v1<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: postgres-pv-claim<\/code><br \/>\n<code>labels:<\/code><br \/>\n<code>app: postgres<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>storageClassName: manual<\/code><br \/>\n<code>accessModes:<\/code><br \/>\n<code>- ReadWriteMany<\/code><br \/>\n<code>resources:<\/code><br \/>\n<code>requests:<\/code><br \/>\n<code>storage: 100Mi<\/code><br \/>\n<code>---<\/code><\/p>\n<p><code>apiVersion: apps\/v1<\/code><br \/>\n<code>kind: Deployment<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: postgres<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>selector:<\/code><br \/>\n<code>matchLabels:<\/code><br \/>\n<code>app: postgres<\/code><\/p>\n<p><code>replicas: 1<\/code><br \/>\n<code>template:<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>labels:<\/code><br \/>\n<code>app: postgres<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>containers:<\/code><br \/>\n<code>- name: postgres<\/code><br \/>\n<code>image: postgres:10.4<\/code><br \/>\n<code>imagePullPolicy: \"IfNotPresent\"<\/code><br \/>\n<code>ports:<\/code><br \/>\n<code>- containerPort: 5432<\/code><br \/>\n<code>envFrom:<\/code><br \/>\n<code>- configMapRef:<\/code><br \/>\n<code>name: postgres-config<\/code><br \/>\n<code>volumeMounts:<\/code><br \/>\n<code>- mountPath: \/var\/lib\/postgresql\/data<\/code><br \/>\n<code>name: postgredb<\/code><br \/>\n<code>volumes:<\/code><br \/>\n<code>- name: postgredb<\/code><br \/>\n<code>persistentVolumeClaim:<\/code><br \/>\n<code>claimName: postgres-pv-claim<\/code><\/p>\n<p><code>---<\/code><\/p>\n<p><code>apiVersion: v1<\/code><br \/>\n<code>kind: Service<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: postgres<\/code><br \/>\n<code>labels:<\/code><br \/>\n<code>app: postgres<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>type: NodePort<\/code><br \/>\n<code>ports:<\/code><br \/>\n<code>- port: 5432<\/code><br \/>\n<code>selector:<\/code><br \/>\n<code>app: postgres<\/code><\/p>\n<p>We have created four resources in the above manifest file. A PersistentVolume, a PersistentVolumeClaim for requesting access to the PersistentVolume resource, a service for having a static endpoint for the Postgres database, and a deployment for running and managing the Postgres pod.<\/p>\n<p>The Postgres container reads database credentials from environment variables using <code>postgres-config<\/code> ConfigMap.<\/p>\n<p><code>apiVersion: v1<\/code><br \/>\n<code>kind: ConfigMap<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: postgres-config<\/code><br \/>\n<code>labels:<\/code><br \/>\n<code>app: postgres<\/code><br \/>\n<code>data:<\/code><br \/>\n<code>POSTGRES_DB: postgresdb<\/code><br \/>\n<code>POSTGRES_USER: postgresadmin<\/code><br \/>\n<code>POSTGRES_PASSWORD: admin123<\/code><\/p>\n<p>Let\u2019s now deploy Postgres by applying the YAML configuration.<\/p>\n<figure id=\"attachment_5729\" aria-describedby=\"caption-attachment-5729\" style=\"width: 716px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5729\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/node2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node2.png?fit=716%2C116&amp;ssl=1\" data-orig-size=\"716,116\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node2\" data-image-description=\"&lt;p&gt;Apply Postgres Deployment&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Apply Postgres Deployment&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node2.png?fit=716%2C116&amp;ssl=1\" class=\"size-full wp-image-5729 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node2.png?resize=716%2C116&#038;ssl=1\" alt=\"\" width=\"716\" height=\"116\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node2.png?w=716&amp;ssl=1 716w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node2.png?resize=300%2C49&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node2.png?resize=600%2C97&amp;ssl=1 600w\" data-sizes=\"auto, (max-width: 716px) 100vw, 716px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 716px; --smush-placeholder-aspect-ratio: 716\/116;\" \/><figcaption id=\"caption-attachment-5729\" class=\"wp-caption-text\">Image &#8211; Apply Postgres Deployment<\/figcaption><\/figure>\n<p>You can check all the resources created in the cluster using the following commands<\/p>\n<figure id=\"attachment_5730\" aria-describedby=\"caption-attachment-5730\" style=\"width: 645px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5730\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/node3\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node3.png?fit=645%2C96&amp;ssl=1\" data-orig-size=\"645,96\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node3\" data-image-description=\"&lt;p&gt;Status of Postgres deployment&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Status of Postgres deployment&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node3.png?fit=645%2C96&amp;ssl=1\" class=\"size-full wp-image-5730 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node3.png?resize=645%2C96&#038;ssl=1\" alt=\"\" width=\"645\" height=\"96\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node3.png?w=645&amp;ssl=1 645w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node3.png?resize=300%2C45&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node3.png?resize=638%2C96&amp;ssl=1 638w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node3.png?resize=600%2C89&amp;ssl=1 600w\" data-sizes=\"auto, (max-width: 645px) 100vw, 645px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 645px; --smush-placeholder-aspect-ratio: 645\/96;\" \/><figcaption id=\"caption-attachment-5730\" class=\"wp-caption-text\">Image &#8211; Status of Postgres deployment<\/figcaption><\/figure>\n<figure id=\"attachment_5731\" aria-describedby=\"caption-attachment-5731\" style=\"width: 723px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5731\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/node4\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node4.png?fit=723%2C239&amp;ssl=1\" data-orig-size=\"723,239\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node4\" data-image-description=\"&lt;p&gt;Postgres PV,PVC Deployments&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Postgres PV,PVC Deployments&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node4.png?fit=723%2C239&amp;ssl=1\" class=\"size-full wp-image-5731 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node4.png?resize=723%2C239&#038;ssl=1\" alt=\"\" width=\"723\" height=\"239\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node4.png?w=723&amp;ssl=1 723w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node4.png?resize=300%2C99&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node4.png?resize=600%2C198&amp;ssl=1 600w\" data-sizes=\"auto, (max-width: 723px) 100vw, 723px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 723px; --smush-placeholder-aspect-ratio: 723\/239;\" \/><figcaption id=\"caption-attachment-5731\" class=\"wp-caption-text\">Image &#8211; Postgres PV,PVC Deployments<\/figcaption><\/figure>\n<h2 class=\"p-stepped-list__title col-4\">Step#3.Deploying the Spring Boot app on Kubernetes<\/h2>\n<p>Now that we have the Postgres instance deployed, Let\u2019s proceed with the deployment of the Spring Boot app.<\/p>\n<p>Following is the deployment manifest for the Spring Boot app<\/p>\n<p><code>apiVersion: apps\/v1<\/code><br \/>\n<code>kind: Deployment<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: spring-boot<\/code><br \/>\n<code>namespace: default<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>selector:<\/code><br \/>\n<code>matchLabels:<\/code><br \/>\n<code>app: spring-boot<\/code><\/p>\n<p><code>replicas: 1<\/code><br \/>\n<code>template:<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: spring-boot<\/code><br \/>\n<code>labels:<\/code><br \/>\n<code>app: spring-boot<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>containers:<\/code><br \/>\n<code>- name: spring-boot<\/code><br \/>\n<code>env:<\/code><br \/>\n<code>- name: POSTGRES_USER<\/code><br \/>\n<code>valueFrom:<\/code><br \/>\n<code>configMapKeyRef:<\/code><br \/>\n<code>name: postgres-config<\/code><br \/>\n<code>key: POSTGRES_USER<\/code><br \/>\n<code>- name: POSTGRES_PASSWORD<\/code><br \/>\n<code>valueFrom:<\/code><br \/>\n<code>configMapKeyRef:<\/code><br \/>\n<code>name: postgres-config<\/code><br \/>\n<code>key: POSTGRES_PASSWORD<\/code><br \/>\n<code>- name: POSTGRES_HOST<\/code><br \/>\n<code>valueFrom:<\/code><br \/>\n<code>configMapKeyRef:<\/code><br \/>\n<code>name: hostname-config<\/code><br \/>\n<code>key: postgres_host<\/code><br \/>\n<code>image: karthi4india\/orderapi:latest<\/code><\/p>\n<p><code>---<\/code><\/p>\n<p><code>apiVersion: v1<\/code><br \/>\n<code>kind: Service<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: spring-boot<\/code><br \/>\n<code>labels:<\/code><br \/>\n<code>app: spring-boot<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>type: NodePort<\/code><br \/>\n<code>ports:<\/code><br \/>\n<code>- port: 8080<\/code><br \/>\n<code>selector:<\/code><br \/>\n<code>app: spring-boot<\/code><\/p>\n<p>The above deployment uses the ConfigMaps stored in <code>postgres-config<\/code>\u00a0that we created in the previous section.<\/p>\n<p>Let\u2019s apply the manifest file to create the resources<\/p>\n<figure id=\"attachment_5732\" aria-describedby=\"caption-attachment-5732\" style=\"width: 722px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5732\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/node5\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node5.png?fit=722%2C82&amp;ssl=1\" data-orig-size=\"722,82\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node5\" data-image-description=\"&lt;p&gt;Create SpringBoot Deployment&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Create SpringBoot Deployment&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node5.png?fit=722%2C82&amp;ssl=1\" class=\"size-full wp-image-5732 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node5.png?resize=722%2C82&#038;ssl=1\" alt=\"\" width=\"722\" height=\"82\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node5.png?w=722&amp;ssl=1 722w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node5.png?resize=300%2C34&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node5.png?resize=600%2C68&amp;ssl=1 600w\" data-sizes=\"auto, (max-width: 722px) 100vw, 722px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 722px; --smush-placeholder-aspect-ratio: 722\/82;\" \/><figcaption id=\"caption-attachment-5732\" class=\"wp-caption-text\">Image &#8211; Create SpringBoot Deployment<\/figcaption><\/figure>\n<p>You can check the created deployments like this<\/p>\n<figure id=\"attachment_5733\" aria-describedby=\"caption-attachment-5733\" style=\"width: 641px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5733\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/node6\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node6.png?fit=641%2C94&amp;ssl=1\" data-orig-size=\"641,94\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node6\" data-image-description=\"&lt;p&gt;Status of the deployments&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Status of the deployments&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node6.png?fit=641%2C94&amp;ssl=1\" class=\"size-full wp-image-5733 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node6.png?resize=641%2C94&#038;ssl=1\" alt=\"\" width=\"641\" height=\"94\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node6.png?w=641&amp;ssl=1 641w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node6.png?resize=300%2C44&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node6.png?resize=638%2C94&amp;ssl=1 638w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node6.png?resize=600%2C88&amp;ssl=1 600w\" data-sizes=\"auto, (max-width: 641px) 100vw, 641px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 641px; --smush-placeholder-aspect-ratio: 641\/94;\" \/><figcaption id=\"caption-attachment-5733\" class=\"wp-caption-text\">Image &#8211; Status of the deployments<\/figcaption><\/figure>\n<h2 class=\"p-stepped-list__title col-4\">Step#4.Deploying the Angular app on Kubernetes<\/h2>\n<p>Next step is to deploy the Angular app using Kubernetes, here is the deployment manifest<\/p>\n<p><code>apiVersion: apps\/v1<\/code><br \/>\n<code>kind: Deployment<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: angular<\/code><br \/>\n<code>namespace: default<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>selector:<\/code><br \/>\n<code>matchLabels:<\/code><br \/>\n<code>app: angular<\/code><br \/>\n<code>replicas: 1<\/code><br \/>\n<code>template:<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: angular<\/code><br \/>\n<code>labels:<\/code><br \/>\n<code>app: angular<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>containers:<\/code><br \/>\n<code>- name: angular<\/code><br \/>\n<code>image: 'karthi4india\/orderui:latest'<\/code><br \/>\n<code>imagePullPolicy: Always<\/code><br \/>\n<code>volumeMounts:<\/code><br \/>\n<code>- name: env-vars<\/code><br \/>\n<code>mountPath: \/usr\/local\/apache2\/htdocs\/assets<\/code><br \/>\n<code>volumes:<\/code><br \/>\n<code>- name: env-vars<\/code><br \/>\n<code>configMap:<\/code><br \/>\n<code>name: angular-env-vars<\/code><\/p>\n<p><code>---<\/code><br \/>\n<code>apiVersion: v1<\/code><br \/>\n<code>kind: Service<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: angular<\/code><br \/>\n<code>labels:<\/code><br \/>\n<code>app: angular<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>type: NodePort<\/code><br \/>\n<code>ports:<\/code><br \/>\n<code>- port: 4200<\/code><br \/>\n<code>selector:<\/code><br \/>\n<code>app: angular<\/code><\/p>\n<p>Let\u2019s apply the above manifest file to deploy the Angular app<\/p>\n<figure id=\"attachment_5734\" aria-describedby=\"caption-attachment-5734\" style=\"width: 717px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5734\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/node7\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node7.png?fit=717%2C85&amp;ssl=1\" data-orig-size=\"717,85\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node7\" data-image-description=\"&lt;p&gt;Create Angular Deployment&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Create Angular Deployment&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node7.png?fit=717%2C85&amp;ssl=1\" class=\"size-full wp-image-5734 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node7.png?resize=717%2C85&#038;ssl=1\" alt=\"\" width=\"717\" height=\"85\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node7.png?w=717&amp;ssl=1 717w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node7.png?resize=300%2C36&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node7.png?resize=600%2C71&amp;ssl=1 600w\" data-sizes=\"auto, (max-width: 717px) 100vw, 717px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 717px; --smush-placeholder-aspect-ratio: 717\/85;\" \/><figcaption id=\"caption-attachment-5734\" class=\"wp-caption-text\">Image &#8211; Create Angular Deployment<\/figcaption><\/figure>\n<p>You can check all the created deployments like this<\/p>\n<figure id=\"attachment_5735\" aria-describedby=\"caption-attachment-5735\" style=\"width: 632px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5735\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/node8\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node8.png?fit=632%2C121&amp;ssl=1\" data-orig-size=\"632,121\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node8\" data-image-description=\"&lt;p&gt;Check the deployments&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Check the deployments&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node8.png?fit=632%2C121&amp;ssl=1\" class=\"size-full wp-image-5735 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node8.png?resize=632%2C121&#038;ssl=1\" alt=\"\" width=\"632\" height=\"121\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node8.png?w=632&amp;ssl=1 632w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node8.png?resize=300%2C57&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node8.png?resize=600%2C115&amp;ssl=1 600w\" data-sizes=\"auto, (max-width: 632px) 100vw, 632px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 632px; --smush-placeholder-aspect-ratio: 632\/121;\" \/><figcaption id=\"caption-attachment-5735\" class=\"wp-caption-text\">Image &#8211; Status of all the deployments<\/figcaption><\/figure>\n<figure id=\"attachment_5736\" aria-describedby=\"caption-attachment-5736\" style=\"width: 726px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5736\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/node9\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node9.png?fit=726%2C141&amp;ssl=1\" data-orig-size=\"726,141\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node9\" data-image-description=\"&lt;p&gt;Services List&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Services List&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node9.png?fit=726%2C141&amp;ssl=1\" class=\"size-full wp-image-5736 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node9.png?resize=726%2C141&#038;ssl=1\" alt=\"\" width=\"726\" height=\"141\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node9.png?w=726&amp;ssl=1 726w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node9.png?resize=300%2C58&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node9.png?resize=600%2C117&amp;ssl=1 600w\" data-sizes=\"auto, (max-width: 726px) 100vw, 726px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 726px; --smush-placeholder-aspect-ratio: 726\/141;\" \/><figcaption id=\"caption-attachment-5736\" class=\"wp-caption-text\">Image &#8211; Services List<\/figcaption><\/figure>\n<h2 class=\"p-stepped-list__title col-4\">Step#5.Deploy Ingress<\/h2>\n<p><code>apiVersion: extensions\/v1beta1<\/code><br \/>\n<code>kind: Ingress<\/code><br \/>\n<code>metadata:<\/code><br \/>\n<code>name: ingress-service<\/code><br \/>\n<code>annotations:<\/code><br \/>\n<code>kubernetes.io\/ingress.class: nginx<\/code><br \/>\n<code>nginx.ingress.kubernetes.io\/rewrite-target: \/$1<\/code><\/p>\n<p><code># UPDATE THIS LINE ABOVE<\/code><br \/>\n<code>spec:<\/code><br \/>\n<code>rules:<\/code><br \/>\n<code>- http:<\/code><br \/>\n<code>paths:<\/code><br \/>\n<code>- path: \/?(.*)<\/code><br \/>\n<code># UPDATE THIS LINE ABOVE<\/code><br \/>\n<code>backend:<\/code><br \/>\n<code>serviceName: angular<\/code><br \/>\n<code>servicePort: 4200<\/code><br \/>\n<code>- path: \/api\/?(.*)<\/code><br \/>\n<code># UPDATE THIS LINE ABOVE<\/code><br \/>\n<code>backend:<\/code><br \/>\n<code>serviceName: spring-boot<\/code><br \/>\n<code>servicePort: 8080<\/code><\/p>\n<figure id=\"attachment_5737\" aria-describedby=\"caption-attachment-5737\" style=\"width: 729px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5737\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/node10\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node10.png?fit=729%2C98&amp;ssl=1\" data-orig-size=\"729,98\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node10\" data-image-description=\"&lt;p&gt;Deploy Ingress service&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Deploy Ingress service&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node10.png?fit=729%2C98&amp;ssl=1\" class=\"size-full wp-image-5737 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node10.png?resize=729%2C98&#038;ssl=1\" alt=\"\" width=\"729\" height=\"98\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node10.png?w=729&amp;ssl=1 729w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node10.png?resize=300%2C40&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node10.png?resize=600%2C81&amp;ssl=1 600w\" data-sizes=\"auto, (max-width: 729px) 100vw, 729px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 729px; --smush-placeholder-aspect-ratio: 729\/98;\" \/><figcaption id=\"caption-attachment-5737\" class=\"wp-caption-text\">Image &#8211; Deploy Ingress service<\/figcaption><\/figure>\n<figure id=\"attachment_5738\" aria-describedby=\"caption-attachment-5738\" style=\"width: 595px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5738\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/node11\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node11.png?fit=595%2C87&amp;ssl=1\" data-orig-size=\"595,87\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"node11\" data-image-description=\"&lt;p&gt;Ingress is created&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Ingress is created&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node11.png?fit=595%2C87&amp;ssl=1\" class=\"size-full wp-image-5738 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node11.png?resize=595%2C87&#038;ssl=1\" alt=\"\" width=\"595\" height=\"87\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node11.png?w=595&amp;ssl=1 595w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/node11.png?resize=300%2C44&amp;ssl=1 300w\" data-sizes=\"auto, (max-width: 595px) 100vw, 595px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 595px; --smush-placeholder-aspect-ratio: 595\/87;\" \/><figcaption id=\"caption-attachment-5738\" class=\"wp-caption-text\">Image &#8211; Ingress is created<\/figcaption><\/figure>\n<p>That\u2019s it! Now, you\u2019ll be able to use the frontend app. Here is how the app looks like<\/p>\n<figure id=\"attachment_5739\" aria-describedby=\"caption-attachment-5739\" style=\"width: 392px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5739\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/app1-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/app1.jpg?fit=392%2C496&amp;ssl=1\" data-orig-size=\"392,496\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;S Karthikeyan&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1598177146&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"app1\" data-image-description=\"&lt;p&gt;Create Customer&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Create Customer&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/app1.jpg?fit=392%2C496&amp;ssl=1\" class=\"size-full wp-image-5739 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/app1.jpg?resize=392%2C496&#038;ssl=1\" alt=\"\" width=\"392\" height=\"496\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/app1.jpg?w=392&amp;ssl=1 392w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/app1.jpg?resize=237%2C300&amp;ssl=1 237w\" data-sizes=\"auto, (max-width: 392px) 100vw, 392px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 392px; --smush-placeholder-aspect-ratio: 392\/496;\" \/><figcaption id=\"caption-attachment-5739\" class=\"wp-caption-text\">Image &#8211; Create Customer<\/figcaption><\/figure>\n<figure id=\"attachment_5740\" aria-describedby=\"caption-attachment-5740\" style=\"width: 385px\" class=\"wp-caption aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" data-attachment-id=\"5740\" data-permalink=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/10\/24\/set-up-microk8s-to-run-an-edge-application\/app2-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/app2.jpg?fit=385%2C457&amp;ssl=1\" data-orig-size=\"385,457\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;S Karthikeyan&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1598177192&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"app2\" data-image-description=\"&lt;p&gt;Customer has been created&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Image &amp;#8211; Customer has been created&lt;\/p&gt;\n\" data-large-file=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/app2.jpg?fit=385%2C457&amp;ssl=1\" class=\"size-full wp-image-5740 lazyload\" data-src=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/app2.jpg?resize=385%2C457&#038;ssl=1\" alt=\"\" width=\"385\" height=\"457\" data-srcset=\"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/app2.jpg?w=385&amp;ssl=1 385w, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2020\/08\/app2.jpg?resize=253%2C300&amp;ssl=1 253w\" data-sizes=\"auto, (max-width: 385px) 100vw, 385px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 385px; --smush-placeholder-aspect-ratio: 385\/457;\" \/><figcaption id=\"caption-attachment-5740\" class=\"wp-caption-text\">Image &#8211; Customer has been created<\/figcaption><\/figure>\n<p>MicroK8s gives you troubleshooting\u00a0<a class=\"ext-link\" href=\"https:\/\/microk8s.io\/docs\/troubleshooting\" rel=\"external  noopener\" target=\"_blank\">tools<\/a>\u00a0to check out what has gone wrong. Be sure to check out the\u00a0<a class=\"ext-link\" href=\"https:\/\/microk8s.io\/docs\/troubleshooting#common-issues\" rel=\"external  noopener\" target=\"_blank\">common issues<\/a>\u00a0section for help in resolving the frequently encountered problems.<\/p>\n<p>With its ability to strengthen Kubernetes&#8217; productivity, and reduce complexity MicroK8s is uniquely positioned for accelerating IoT and edge deployments.<\/p>\n<h2>Useful Resources :<\/h2>\n<ul>\n<li><a href=\"https:\/\/microk8s.io\/docs\/\" target=\"_blank\" rel=\"noopener\">MicroK8s Documentation<\/a><\/li>\n<li><a href=\"https:\/\/www.upnxtblog.com\/index.php\/2020\/07\/10\/how-to-setup-2-node-cluster-on-k3s\/\">How to setup 2 node cluster on K3s?<\/a><\/li>\n<li><a href=\"https:\/\/www.upnxtblog.com\/index.php\/2018\/11\/12\/10-best-kubernetes-monitoring-tools\/\">10 BEST Kubernetes monitoring tools<\/a><\/li>\n<li><a href=\"https:\/\/www.upnxtblog.com\/index.php\/2018\/07\/16\/kubernetes-tutorial-distributed-tracing-with-jaeger\/\">Kubernetes Tutorial : Distributed tracing with Jaeger<\/a><\/li>\n<li><a href=\"https:\/\/www.upnxtblog.com\/index.php\/2018\/06\/13\/tutorial-helm-package-manager-for-kubernetes\/\">Tutorial: Helm package manager for Kubernetes<\/a><\/li>\n<li><a href=\"https:\/\/www.upnxtblog.com\/index.php\/2019\/12\/09\/implementing-policies-in-kubernetes\/\">Implementing Policies in Kubernetes<\/a><\/li>\n<li><a class=\"row-title\" href=\"http:\/\/www.upnxtblog.com\/index.php\/2019\/07\/11\/ultimate-guide-to-coursera-specializations-that-will-make-your-career-better-over-100-specializations-covered\/\" aria-label=\"\u201cULTIMATE GUIDE to Coursera Specializations That Will Make Your Career Better (Over 100+ Specializations covered)\u201d (Edit)\">ULTIMATE GUIDE to Coursera Specializations That Will Make Your Career Better (Over 100+ Specializations covered)<\/a><\/li>\n<li><a class=\"row-title\" href=\"http:\/\/www.upnxtblog.com\/index.php\/2019\/08\/14\/google-cloud-courses-collection\/\" aria-label=\"\u201cGoogle Cloud Courses Collection\u201d (Edit)\">Google Cloud Courses Collection<\/a><\/li>\n<\/ul>\n<p><em><strong>Like this post? Don\u2019t forget to share it!<\/strong><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We already know that Kubernetes is the No. 1 orchestration platform for container-based applications, automating the deployment and scaling of these apps, and streamlining maintenance operations. However, Kubernetes comes with its own complexity challenges.\u00a0So how can an enterprise take advantage of containerization to tackle IoT complexity and not end up with yet more complexities of [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1031,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[311],"tags":[149,388],"class_list":["post-5699","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kubernetes","tag-kubernetes","tag-microk8s"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9fbQS-1tV","jetpack-related-posts":[{"id":6985,"url":"https:\/\/www.upnxtblog.com\/index.php\/2022\/10\/03\/why-kubernetes-is-ideal-for-industrial-edge\/","url_meta":{"origin":5699,"position":0},"title":"Why Kubernetes is ideal for Industrial Edge?","author":"Karthik","date":"October 3, 2022","format":false,"excerpt":"Introduction\/Overview Data volumes continue to grow, particularly in industries like manufacturing, oil and gas, energy, and transportation that are undergoing rapid digital transformation. There is need to manage this data explosion at the edge and the many associated challenges including complexity of the systems, data privacy, latency issues, low bandwidth\u2026","rel":"","context":"In &quot;Kubernetes Guides&quot;","block_context":{"text":"Kubernetes Guides","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/kubernetes\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2022\/09\/backpack-ga0350fba3_1920-e1664238657310-800x445-1.jpeg?fit=800%2C445&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2022\/09\/backpack-ga0350fba3_1920-e1664238657310-800x445-1.jpeg?fit=800%2C445&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2022\/09\/backpack-ga0350fba3_1920-e1664238657310-800x445-1.jpeg?fit=800%2C445&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2022\/09\/backpack-ga0350fba3_1920-e1664238657310-800x445-1.jpeg?fit=800%2C445&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4594,"url":"https:\/\/www.upnxtblog.com\/index.php\/2019\/12\/27\/get-smallest-fastest-fully-conformant-microk8s-kubernetes\/","url_meta":{"origin":5699,"position":1},"title":"Get smallest, fastest, fully-conformant MicroK8s Kubernetes","author":"Karthik","date":"December 27, 2019","format":false,"excerpt":"Kubernetes as we know coordinates a highly available cluster of computers that are connected to work as a single unit. Kubernetes contains a number of abstractions that allow the deployment of containerized applications to the cluster without attaching them to individual machines. In short, Kubernetes is - Portable: public, private,\u2026","rel":"","context":"In &quot;Kubernetes Guides&quot;","block_context":{"text":"Kubernetes Guides","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/kubernetes\/"},"img":{"alt_text":"kubernetes logo","src":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":6387,"url":"https:\/\/www.upnxtblog.com\/index.php\/2021\/07\/03\/15-interesting-facts-about-kubernetes-and-cloud-native-operations-report-2021\/","url_meta":{"origin":5699,"position":2},"title":"15 Interesting facts about Kubernetes and cloud-native operations report 2021","author":"Karthik","date":"July 3, 2021","format":false,"excerpt":"Canonical recently conducted a survey to measure the usage of Kubernetes, Cloud-native technologies their goals, benefits, challenges, operators, advanced usage, edge, etc., Detailed report includes responses to 50+ questions from ~1200 respondents and analysis from 7 industry experts(this includes me as well, you can read the report for my commentary).\u2026","rel":"","context":"In &quot;Kubernetes Guides&quot;","block_context":{"text":"Kubernetes Guides","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/kubernetes\/"},"img":{"alt_text":"kubernetes logo","src":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":5633,"url":"https:\/\/www.upnxtblog.com\/index.php\/2020\/07\/10\/how-to-setup-2-node-cluster-on-k3s\/","url_meta":{"origin":5699,"position":3},"title":"How to setup 2 node cluster on k3s?","author":"Karthik","date":"July 10, 2020","format":false,"excerpt":"In this post, we are going to take look at Lightweight Kubernetes engine k3s that can run on edge, IoT, and appliances. Rancher k3s is great for offline development, prototyping, and testing purpose. You can very well use it on a VM as a small, cheap, reliable k8s for CI\/CD.\u2026","rel":"","context":"In &quot;Kubernetes Guides&quot;","block_context":{"text":"Kubernetes Guides","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/kubernetes\/"},"img":{"alt_text":"kubernetes logo","src":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":2996,"url":"https:\/\/www.upnxtblog.com\/index.php\/2018\/10\/15\/managed-kubernetes-platforms-comparison-gke-vs-aks-vs-eks\/","url_meta":{"origin":5699,"position":4},"title":"Managed Kubernetes Platforms Comparison: GKE vs AKS vs EKS","author":"Karthik","date":"October 15, 2018","format":false,"excerpt":"Kubernetes coordinates a highly available cluster of computers that are connected to work as a single unit. The abstractions in Kubernetes allow you to deploy containerized applications to a cluster without tying them specifically to individual machines. The effort required to set up a single node cluster is different from\u2026","rel":"","context":"In &quot;Cloud Computing&quot;","block_context":{"text":"Cloud Computing","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/cloud\/"},"img":{"alt_text":"kubernetes logo","src":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":6893,"url":"https:\/\/www.upnxtblog.com\/index.php\/2022\/05\/23\/15-interesting-facts-about-kubernetes-and-cloud-native-operations-report-2022\/","url_meta":{"origin":5699,"position":5},"title":"15 Interesting facts about Kubernetes and cloud-native operations report 2022","author":"Karthik","date":"May 23, 2022","format":false,"excerpt":"Canonical is back again with their annual survey to measure the usage of Kubernetes, Cloud-native technologies their goals, benefits, challenges, operators, advanced usage, edge, etc., Detailed report includes responses to 50+ questions from ~1300 respondents and analysis from 8 industry experts(this includes insights from my side as well, you can\u2026","rel":"","context":"In &quot;Kubernetes Guides&quot;","block_context":{"text":"Kubernetes Guides","link":"https:\/\/www.upnxtblog.com\/index.php\/category\/kubernetes\/"},"img":{"alt_text":"kubernetes logo","src":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.upnxtblog.com\/wp-content\/uploads\/2017\/11\/kubernetes.jpg?fit=722%2C612&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/posts\/5699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/comments?post=5699"}],"version-history":[{"count":3,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/posts\/5699\/revisions"}],"predecessor-version":[{"id":6110,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/posts\/5699\/revisions\/6110"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/media\/1031"}],"wp:attachment":[{"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/media?parent=5699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/categories?post=5699"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.upnxtblog.com\/index.php\/wp-json\/wp\/v2\/tags?post=5699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}