{"id":46771,"date":"2023-08-04T00:00:00","date_gmt":"2023-08-04T07:00:00","guid":{"rendered":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/"},"modified":"2025-11-13T12:56:41","modified_gmt":"2025-11-13T20:56:41","slug":"deploy-and-scale-your-griddb-app-on-azure-with-kubernetes","status":"publish","type":"post","link":"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/","title":{"rendered":"Deploy and Scale your GridDB App on Azure with Kubernetes"},"content":{"rendered":"<p>This article is a direct continuation of a previous <a href=\"https:\/\/griddb.net\/en\/blog\/creating-a-kubernetes-application-using-griddb-and-go\/\">effort<\/a> in which we deployed a GridDB application to a local kubernetes (single node) cluster. We will take the knowledge gained from that deployment and use it to help us deploy that same cluster onto Microsoft&#8217;s cloud computing services: <a href=\"https:\/\/azure.microsoft.com\/en-us\">Azure<\/a>. Because most of the work is already done, we will simply be going over the Azure-specific changes needed to get this project up and running on Azure.<\/p>\n<p>First and foremost, you will of course need to create an account with Azure; luckily setting up an <a href=\"\">AKS<\/a> cluster is free. Once you have an account, you can follow along with this article; if followed all the way through, you will have the simple todo app discussed in our previous blog hosted on Azure and accessible from wherever you have access to the internet.<\/p>\n<h2>Getting Started<\/h2>\n<p>To begin, please create an account with Microsoft Azure and perhaps read the previous entries about this project. Also please clone the source code from GitHub to be able to use the provided .yaml files. You may also need to create a Dockerhub account to store your own images, though for now you can use the images I have pushed onto Dockerhub.<\/p>\n<ol>\n<li><a href=\"https:\/\/hub.docker.com\/repository\/docker\/imru\/griddb-server\">GridDB<\/a><\/li>\n<li><a href=\"https:\/\/hub.docker.com\/repository\/docker\/imru\/auth\">Auth<\/a><\/li>\n<li><a href=\"https:\/\/hub.docker.com\/repository\/docker\/imru\/web-server\/general\">Web-Server<\/a><\/li>\n<\/ol>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\"> $ git clone https:\/\/github.com\/griddbnet\/Blogs.git --branch azure_kubernetes<\/code><\/pre>\n<\/div>\n<p>Another optional step is to install the <a href=\"https:\/\/learn.microsoft.com\/en-us\/cli\/azure\/install-azure-cli\">Azure CLI<\/a> so that you can run Azure commands from your machine and not deal with using their cloud shell, but again, this is optional.<\/p>\n<h2>Changes from Local Cluster to Azure<\/h2>\n<p>Let&#8217;s first discuss the small amounts of changes needed to run this project on Azure&#8217;s managed AKS cluster rather than a local K3s single node; first, the container images will need to be publically available on Dockerhub (or some other container image repository) for ease of use &#8212; in our previous article, we were simply pushing our images onto a locally running registry. And then there&#8217;s not much else to it &#8212; the last difference will be in how we handle persistent storage.<\/p>\n<h2>Creating an AKS Cluster<\/h2>\n<p>To begin, we are following along with the guide provided directly from the Microsoft team: <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/aks\/learn\/quick-kubernetes-deploy-cli\">https:\/\/learn.microsoft.com\/en-us\/azure\/aks\/learn\/quick-kubernetes-deploy-cli<\/a>. Following this, we will create our resource group, create our AKS cluster, and then connect to the cluster. From there, we can step in with our own containers.<\/p>\n<p>Connect to either the Azure cloud shell or to your local Azure CLI and connect to your Azure account.<\/p>\n<h3>Create Azure Resources<\/h3>\n<p>First let&#8217;s create the resource group<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ az group create --name myResourceGroup --location westus<\/code><\/pre>\n<\/div>\n<p>And then let&#8217;s create the actual AKS cluster<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ az aks create -g myResourceGroup -n myAKSCluster --enable-managed-identity --node-count 1 --enable-addons monitoring --enable-msi-auth-for-monitoring  --generate-ssh-keys<\/code><\/pre>\n<\/div>\n<p>And note, to keep this simple and free, I personally removed the addons for monitoring, but you can choose whether you&#8217;d like to keep it or not.<\/p>\n<p>And now let&#8217;s connect to our cluster by installing <a href=\"https:\/\/kubernetes.io\/docs\/reference\/kubectl\/\">kubectl<\/a> (not necessary if using the Cloud Shell)<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ az aks install-cli<\/code><\/pre>\n<\/div>\n<p>And connect it:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ az aks get-credentials --resource-group myResourceGroup --name myAKSCluster<\/code><\/pre>\n<\/div>\n<p>And test it:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ kubectl get nodes<\/code><\/pre>\n<\/div>\n<pre><code>NAME                       STATUS   ROLES   AGE     VERSION\naks-nodepool1-31718369-0   Ready    agent   6m44s   v1.12.8\n<\/code><\/pre>\n<p>And with that, we should be ready to directly add resources onto our Azure AKS cluster with our command line.<\/p>\n<h3>Creating Kubernetes Resources<\/h3>\n<p>In your azure resource, git is already installed, so please clone the repo with all of the source code for this project: <a href=\"https:\/\/github.com\/griddbnet\/Blogs\/tree\/azure_kubernetes\">https:\/\/github.com\/griddbnet\/Blogs\/tree\/kubernetes<\/a>. The three unique directories correspond to the different containers\/microservices we intend to run as contains in our AKS cluster.<\/p>\n<p>If you read our previous effort of running this project on a local instance of K3s, most of this will be familiar; almost no changes were necessary from our .yaml files. One of the few changes was to where we are pull the image from &#8212; we are now pulling from Dockerhub rather than pushing to a local registry.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">    spec:\n      containers:\n        - name: griddbcontainer\n          image: imru\/griddb-server:latest<\/code><\/pre>\n<\/div>\n<p>I have already tagged and pushed these images to Dockerhub for use, but if you are curious as to the process:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ docker build -t griddb-server .\n$ docker tag griddb-server imru\/griddb-server:latest\n$ docker push imru\/griddb-server:latest<\/code><\/pre>\n<\/div>\n<p>If you make any changes to your image and would like to update your pods, you can simply push an updated image to dockerhub and delete your deployment and re-set it to create a new, updated pod.<\/p>\n<p>So, basically you can go in to each directory and run the create command with kubectl to create our services.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ kubectl create -f griddb-server.yaml<\/code><\/pre>\n<\/div>\n<h4>Persistent Storage on Azure<\/h4>\n<p>One thing mentioned at the top was that the persistent storage was changed. If you try to use the method of using the host machine as the persistent storage as we did with the local K3s cluster, your AKS deployment will fail. We will need to first create an azure disk and then use that as our persistent storage for our GridDB storage.<\/p>\n<p>Because our application is very straight forward and small, we will utilizing static provision of volume on Azure as seen here: <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/aks\/azure-csi-disk-storage-provision#statically-provision-a-volume\">Statically provision a volume<\/a>.<\/p>\n<p>You can follow along with the link above, but here are the commands needed to create a disk and then apply that storage to our GridDB pod.<\/p>\n<p>First, let&#8217;s grab the node resource group<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv\n\nOutput\nMC_myResourceGroup_myAKSCluster_eastus<\/code><\/pre>\n<\/div>\n<p>Once we have this, let&#8217;s create the disk using our commands:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ az disk create \n  --resource-group MC_myResourceGroup_myAKSCluster_eastus \n  --name myAKSDisk \n  --size-gb 1 \n  --query id --output tsv<\/code><\/pre>\n<\/div>\n<p>Here we are creating a small 1 GB disk and then it will output the disk resource ID which is needed for our yaml files:<\/p>\n<pre><code>\/subscriptions\/&lt;subscriptionID&gt;\/resourceGroups\/MC_myAKSCluster_myAKSCluster_eastus\/providers\/Microsoft.Compute\/disks\/myAKSDisk\n<\/code><\/pre>\n<p>And now we need to create our persisent volume, our persistent volume claim, and lastly attach to our griddb deployment yaml file.<\/p>\n<p>let&#8217;s create <code>pv-azuredisk.yaml<\/code><\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">apiVersion: v1\nkind: PersistentVolume\nmetadata:\n  annotations:\n    pv.kubernetes.io\/provisioned-by: disk.csi.azure.com\n  name: pv-azuredisk\nspec:\n  capacity:\n    storage: 1Gi\n  accessModes:\n    - ReadWriteOnce\n  persistentVolumeReclaimPolicy: Retain\n  storageClassName: managed-csi\n  csi:\n    driver: disk.csi.azure.com\n    readOnly: false\n    volumeHandle: \/subscriptions\/<subscriptionID>\/resourceGroups\/MC_myAKSCluster_myAKSCluster_eastus\/providers\/Microsoft.Compute\/disks\/myAKSDisk\n    volumeAttributes:\n      fsType: ext4<\/code><\/pre>\n<\/div>\n<p>And our pvc: <code>pvc-azuredisk.yaml<\/code><\/p>\n<p>You will notice that here the storageClassName is <code>managed-csi<\/code> rather than <code>standard<\/code>. This is what we want!<\/p>\n<p>And create<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ kubectl apply -f pv-azuredisk.yaml\n$ kubectl apply -f pvc-azuredisk.yaml<\/code><\/pre>\n<\/div>\n<p>output<\/p>\n<pre><code>NAME            STATUS   VOLUME         CAPACITY    ACCESS MODES   STORAGECLASS   AGE\npvc-azuredisk   Bound    pv-azuredisk   1Gi        RWO                           5s\n<\/code><\/pre>\n<p>And then in our GridDB deployment yaml:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">      volumes:\n        - name: azure\n          persistentVolumeClaim:\n            claimName: pvc-azuredisk<\/code><\/pre>\n<\/div>\n<p>And in the container section of our yaml<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">      containers:\n        - name: griddbcontainer\n          image: imru\/griddb-server:latest\n          ports:\n            - containerPort: 10001\n          securityContext:\n            runAsUser: 0\n            runAsGroup: 0\n          volumeMounts:\n            - name: azure\n              mountPath: \/mnt\/azure<\/code><\/pre>\n<\/div>\n<p>If you delete your GridDB deployment and re-deploy it, it will now have a persistent storage on your Azure AKS.<\/p>\n<p>If you look in your Azure Portal (rather than sticking only with the command line), you will your resource<\/p>\n<p><a href=\"https:\/\/griddb.net\/wp-content\/uploads\/2023\/08\/aks-storage.png\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2023\/08\/aks-storage.png\" alt=\"\" width=\"1512\" height=\"162\" class=\"aligncenter size-full wp-image-29721\" srcset=\"\/wp-content\/uploads\/2023\/08\/aks-storage.png 1512w, \/wp-content\/uploads\/2023\/08\/aks-storage-300x32.png 300w, \/wp-content\/uploads\/2023\/08\/aks-storage-1024x110.png 1024w, \/wp-content\/uploads\/2023\/08\/aks-storage-768x82.png 768w, \/wp-content\/uploads\/2023\/08\/aks-storage-600x64.png 600w\" sizes=\"(max-width: 1512px) 100vw, 1512px\" \/><\/a><\/p>\n<h2>Closing Thoughts<\/h2>\n<p>And with minimal effort, we have now migrated from a local instance of our application, onto a robust and powerful cloud-based cluster on Azure for little to no credits. And if you are new to Azure, you will be able to see your cluster in an online portal with all of your nodes, services, etc.<\/p>\n<p><a href=\"https:\/\/griddb.net\/wp-content\/uploads\/2023\/08\/aks-services.png\"><img decoding=\"async\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2023\/08\/aks-services.png\" alt=\"\" width=\"1445\" height=\"287\" class=\"aligncenter size-full wp-image-29720\" srcset=\"\/wp-content\/uploads\/2023\/08\/aks-services.png 1445w, \/wp-content\/uploads\/2023\/08\/aks-services-300x60.png 300w, \/wp-content\/uploads\/2023\/08\/aks-services-1024x203.png 1024w, \/wp-content\/uploads\/2023\/08\/aks-services-768x153.png 768w, \/wp-content\/uploads\/2023\/08\/aks-services-600x119.png 600w\" sizes=\"(max-width: 1445px) 100vw, 1445px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is a direct continuation of a previous effort in which we deployed a GridDB application to a local kubernetes (single node) cluster. We will take the knowledge gained from that deployment and use it to help us deploy that same cluster onto Microsoft&#8217;s cloud computing services: Azure. Because most of the work is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":29727,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[121],"tags":[],"class_list":["post-46771","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Deploy and Scale your GridDB App on Azure with Kubernetes | GridDB: Open Source Time Series Database for IoT<\/title>\n<meta name=\"description\" content=\"This article is a direct continuation of a previous effort in which we deployed a GridDB application to a local kubernetes (single node) cluster. We will\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploy and Scale your GridDB App on Azure with Kubernetes | GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"og:description\" content=\"This article is a direct continuation of a previous effort in which we deployed a GridDB application to a local kubernetes (single node) cluster. We will\" \/>\n<meta property=\"og:url\" content=\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/griddbcommunity\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-04T07:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-13T20:56:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/griddb.net\/wp-content\/uploads\/2023\/08\/Kubernetes_Azure.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1160\" \/>\n\t<meta property=\"og:image:height\" content=\"653\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Israel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:site\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Israel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/\"},\"author\":{\"name\":\"Israel\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740\"},\"headline\":\"Deploy and Scale your GridDB App on Azure with Kubernetes\",\"datePublished\":\"2023-08-04T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:56:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/\"},\"wordCount\":1021,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2023\/08\/Kubernetes_Azure.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/\",\"url\":\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/\",\"name\":\"Deploy and Scale your GridDB App on Azure with Kubernetes | GridDB: Open Source Time Series Database for IoT\",\"isPartOf\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2023\/08\/Kubernetes_Azure.png\",\"datePublished\":\"2023-08-04T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:56:41+00:00\",\"description\":\"This article is a direct continuation of a previous effort in which we deployed a GridDB application to a local kubernetes (single node) cluster. We will\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#primaryimage\",\"url\":\"\/wp-content\/uploads\/2023\/08\/Kubernetes_Azure.png\",\"contentUrl\":\"\/wp-content\/uploads\/2023\/08\/Kubernetes_Azure.png\",\"width\":1160,\"height\":653},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"name\":\"GridDB: Open Source Time Series Database for IoT\",\"description\":\"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL\",\"publisher\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization\",\"name\":\"Fixstars\",\"url\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"contentUrl\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"width\":200,\"height\":83,\"caption\":\"Fixstars\"},\"image\":{\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/griddbcommunity\/\",\"https:\/\/x.com\/GridDBCommunity\",\"https:\/\/www.linkedin.com\/company\/griddb-by-toshiba\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740\",\"name\":\"Israel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g\",\"caption\":\"Israel\"},\"url\":\"https:\/\/griddb.net\/en\/author\/israel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deploy and Scale your GridDB App on Azure with Kubernetes | GridDB: Open Source Time Series Database for IoT","description":"This article is a direct continuation of a previous effort in which we deployed a GridDB application to a local kubernetes (single node) cluster. We will","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:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/","og_locale":"en_US","og_type":"article","og_title":"Deploy and Scale your GridDB App on Azure with Kubernetes | GridDB: Open Source Time Series Database for IoT","og_description":"This article is a direct continuation of a previous effort in which we deployed a GridDB application to a local kubernetes (single node) cluster. We will","og_url":"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/","og_site_name":"GridDB: Open Source Time Series Database for IoT","article_publisher":"https:\/\/www.facebook.com\/griddbcommunity\/","article_published_time":"2023-08-04T07:00:00+00:00","article_modified_time":"2025-11-13T20:56:41+00:00","og_image":[{"width":1160,"height":653,"url":"https:\/\/griddb.net\/wp-content\/uploads\/2023\/08\/Kubernetes_Azure.png","type":"image\/png"}],"author":"Israel","twitter_card":"summary_large_image","twitter_creator":"@GridDBCommunity","twitter_site":"@GridDBCommunity","twitter_misc":{"Written by":"Israel","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#article","isPartOf":{"@id":"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/"},"author":{"name":"Israel","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740"},"headline":"Deploy and Scale your GridDB App on Azure with Kubernetes","datePublished":"2023-08-04T07:00:00+00:00","dateModified":"2025-11-13T20:56:41+00:00","mainEntityOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/"},"wordCount":1021,"commentCount":0,"publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2023\/08\/Kubernetes_Azure.png","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/","url":"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/","name":"Deploy and Scale your GridDB App on Azure with Kubernetes | GridDB: Open Source Time Series Database for IoT","isPartOf":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2023\/08\/Kubernetes_Azure.png","datePublished":"2023-08-04T07:00:00+00:00","dateModified":"2025-11-13T20:56:41+00:00","description":"This article is a direct continuation of a previous effort in which we deployed a GridDB application to a local kubernetes (single node) cluster. We will","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb.net\/en\/blog\/deploy-and-scale-your-griddb-app-on-azure-with-kubernetes\/#primaryimage","url":"\/wp-content\/uploads\/2023\/08\/Kubernetes_Azure.png","contentUrl":"\/wp-content\/uploads\/2023\/08\/Kubernetes_Azure.png","width":1160,"height":653},{"@type":"WebSite","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#website","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","name":"GridDB: Open Source Time Series Database for IoT","description":"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL","publisher":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#organization","name":"Fixstars","url":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/","url":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","contentUrl":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","width":200,"height":83,"caption":"Fixstars"},"image":{"@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/griddbcommunity\/","https:\/\/x.com\/GridDBCommunity","https:\/\/www.linkedin.com\/company\/griddb-by-toshiba"]},{"@type":"Person","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/c8a430e7156a9e10af73b1fbb46c2740","name":"Israel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4df8cfc155402a2928d11f80b0220037b8bd26c4f1b19c4598d826e0306e6307?s=96&d=mm&r=g","caption":"Israel"},"url":"https:\/\/griddb.net\/en\/author\/israel\/"}]}},"_links":{"self":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts\/46771","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/comments?post=46771"}],"version-history":[{"count":1,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts\/46771\/revisions"}],"predecessor-version":[{"id":51437,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/posts\/46771\/revisions\/51437"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/media\/29727"}],"wp:attachment":[{"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/media?parent=46771"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/categories?post=46771"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/griddb.net\/en\/wp-json\/wp\/v2\/tags?post=46771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}