{"id":23774,"date":"2023-03-22T10:16:02","date_gmt":"2023-03-22T09:16:02","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=23774"},"modified":"2023-03-22T10:16:04","modified_gmt":"2023-03-22T09:16:04","slug":"windows-server-container-on-an-aks-cluster","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/","title":{"rendered":"Windows Server container on an AKS cluster"},"content":{"rendered":"\n<p>A few weeks ago I participated at the <a href=\"https:\/\/www.dbi-services.com\" target=\"_blank\" rel=\"noreferrer noopener\">dbi services<\/a> bootcamp. All new employees are gathered for a refreshment of dbi services best practices. This is also an opportunity to ask questions directly to our CEO <strong>David Hueber<\/strong> as well as provide feedback on our enrolment experience in the company. dbi services is very keen on continuously improving his integration process.<\/p>\n\n\n\n<p>As part of this 1.5 days, we are grouped in teams and have to face some challenges like building famous monuments with LEGO with some weight limitations in the number of pieces we can pick. It is a good opportunity to be creative, work as a team and have a good laugh in the process!<\/p>\n\n\n\n<p>The final part of this bootcamp is to work together on a last minute request from a fictitious client. This request is very challenging and the time is limited. We get the instructions around 5:00pm and have to be ready by the next morning at 9:00am to present our solution. It requires all the brain power of each freshly hired dbi services employee to work together as an emergency task force to tackle this new project. We split the work between us to match our specialty at the best and thus give us all the chances to present a working solution. I took care of building the Kubernetes infrastructure on which we had to create Windows Server 2019 containers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The challenge<\/h2>\n\n\n\n<p>Yes you&#8217;ve read correctly: Windows in a container&#8230;really? I&#8217;ve never bothered to try it or even think about it. However the <a href=\"https:\/\/www.dbi-services.com\/products\/omrun\/\" target=\"_blank\" rel=\"noreferrer noopener\">OMrun<\/a> product (from <a href=\"https:\/\/www.omrun.ch\/en\/\" target=\"_blank\" rel=\"noreferrer noopener\">OMIS<\/a> that has been integrated in dbi services) of our colleagues is working on Windows Server 2019 and so we had the challenge to make it run in a container&#8230; so a Windows one! We also needed to connect it to a MySQL Server instance and provide some redundancy.<\/p>\n\n\n\n<p>The time is short, so using a managed Kubernetes solution for orchestrating those Windows containers seemed right. Also as we needed Windows and MySQL Server then Azure AKS (the Microsoft managed Kubernetes solution) sounded like the right choice. Let&#8217;s see how to configure that, it&#8217;s kind of a LEGO but in a digitalised form!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">AKS cluster creation with Windows workers<\/h2>\n\n\n\n<p>A quick research in the Microsoft documentation and you find a useful <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/aks\/learn\/quick-windows-container-deploy-cli\" target=\"_blank\" rel=\"noreferrer noopener\">article<\/a> for this very purpose. This is the configuration I&#8217;ve set for our project, directly from the Bash Azure Cloud Shell:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ az group create --name BootCampOmrun --location westeurope\n\n$ echo &quot;Please enter the username to use as administrator credentials for Windows Server nodes on your cluster: &quot; &amp;&amp; read WINDOWS_USERNAME\n<\/pre><\/div>\n\n\n<p>The first command creates a resource group which is like a folder in Azure that will contain all the resources you will create in it for this project. The second command asks you for a Windows username that will be stored in the variable WINDOWS_USERNAME. We will use it in the next command:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ az aks create \\\n    --resource-group BootCampOmrun \\\n    --name AKSBootCamp \\\n    --node-count 3 \\\n    --enable-addons monitoring \\\n    --generate-ssh-keys \\\n    --windows-admin-username $WINDOWS_USERNAME \\\n    --vm-set-type VirtualMachineScaleSets \\\n    --network-plugin azure\n<\/pre><\/div>\n\n\n<p>This command creates the AKS cluster in our resource group with 3 worker nodes. We are now asked to set the password for the parameter <strong>windows-admin-password<\/strong>. This username and password parameter set the administrator credentials for any Windows Server nodes on the cluster. Also the parameter <strong>generate-ssh-keys<\/strong> will create a private and public key used to connect to this AKS cluster.<\/p>\n\n\n\n<p>Those workers created with the AKS cluster are Linux workers. Now we need to add a Windows node pool that will create Windows workers on which we can create Windows containers (our goal!):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ az aks nodepool add \\\n    --resource-group BootCampOmrun \\\n    --cluster-name AKSBootCamp \\\n    --os-type Windows \\\n    --name npwin \\\n    --node-count 2 \\\n    --node-vm-size Standard_A4m_v2\n<\/pre><\/div>\n\n\n<p>So we choose the <strong>os-type<\/strong> Windows and the <strong>node-vm-size<\/strong>. Those workers (like the Linux ones) are virtual machines in Azure and you have to select the proper size according to your requirement. OMrun needs 32G of memory so I&#8217;ve checked the Microsoft <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/virtual-machines\/av2-series\" target=\"_blank\" rel=\"noreferrer noopener\">documentation<\/a> to choose the correct one at a decent price (yes cost budget is also a parameter to take into account for this project!).<\/p>\n\n\n\n<p>We can now see all the worker nodes in our AKS cluster:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ kubectl get nodes -owide\nNAME                                STATUS   ROLES   AGE     VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                         KERNEL-VERSION     CONTAINER-RUNTIME\naks-nodepool1-25638203-vmss000000   Ready    agent   4h24m   v1.24.9   10.224.0.62    &lt;none&gt;        Ubuntu 18.04.6 LTS               5.4.0-1103-azure   containerd:\/\/1.6.15+azure-1\naks-nodepool1-25638203-vmss000001   Ready    agent   4h24m   v1.24.9   10.224.0.33    &lt;none&gt;        Ubuntu 18.04.6 LTS               5.4.0-1103-azure   containerd:\/\/1.6.15+azure-1\naks-nodepool1-25638203-vmss000002   Ready    agent   4h24m   v1.24.9   10.224.0.4     &lt;none&gt;        Ubuntu 18.04.6 LTS               5.4.0-1103-azure   containerd:\/\/1.6.15+azure-1\naksnpwin000000                      Ready    agent   172m    v1.24.9   10.224.0.91    &lt;none&gt;        Windows Server 2019 Datacenter   10.0.17763.4010    containerd:\/\/1.6.14+azure\naksnpwin000001                      Ready    agent   172m    v1.24.9   10.224.0.122   &lt;none&gt;        Windows Server 2019 Datacenter   10.0.17763.4010    containerd:\/\/1.6.14+azure\n<\/pre><\/div>\n\n\n<p>There are 3 Linux worker nodes and 2 Windows ones in our AKS cluster in version 1.24.9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Creation of a Windows container on a Windows worker<\/h2>\n\n\n\n<p>That is the last step to do and I&#8217;ve used the information from this <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/windows\/user-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">website<\/a> in order to quickly create a Windows pod and container. I&#8217;ve used the following yaml file and saved it as podwin.yaml:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\napiVersion: v1\nkind: Pod\nmetadata:\n  creationTimestamp: null\n  labels:\n    app: omrun-bc\n  name: omrun-bc\nspec:\n  containers:\n  - name: omrun-bc\n    image: mcr.microsoft.com\/windows\/servercore:ltsc2019\n    command:\n     - powershell.exe\n     - -command\n     - &quot;&lt;#code used from https:\/\/gist.github.com\/19WAS85\/5424431#&gt; ; $$listener = New-Object System.Net.HttpListener ; $$listener.Prefixes.Add(&#039;http:\/\/*:80\/&#039;) ; $$listener.Start() ; $$callerCounts = @{} ; Write-Host(&#039;Listening at http:\/\/*:80\/&#039;) ; while ($$listener.IsListening) { ;$$context = $$listener.GetContext() ;$$requestUrl = $$context.Request.Url ;$$clientIP = $$context.Request.RemoteEndPoint.Address ;$$response = $$context.Response ;Write-Host &#039;&#039; ;Write-Host(&#039;&gt; {0}&#039; -f $$requestUrl) ;  ;$$count = 1 ;$$k=$$callerCounts.Get_Item($$clientIP) ;if ($$k -ne $$null) { $$count += $$k } ;$$callerCounts.Set_Item($$clientIP, $$count) ;$$ip=(Get-NetAdapter | Get-NetIpAddress); $$header=&#039;&lt;html&gt;&lt;body&gt;&lt;H1&gt;Windows Container Web Server&lt;\/H1&gt;&#039; ;$$callerCountsString=&#039;&#039; ;$$callerCounts.Keys | % { $$callerCountsString+=&#039;&lt;p&gt;IP {0} callerCount {1} &#039; -f $$ip&#x5B;1].IPAddress,$$callerCounts.Item($$_) } ;$$footer=&#039;&lt;\/body&gt;&lt;\/html&gt;&#039; ;$$content=&#039;{0}{1}{2}&#039; -f $$header,$$callerCountsString,$$footer ;Write-Output $$content ;$$buffer = &#x5B;System.Text.Encoding]::UTF8.GetBytes($$content) ;$$response.ContentLength64 = $$buffer.Length ;$$response.OutputStream.Write($$buffer, 0, $$buffer.Length) ;$$response.Close() ;$$responseStatus = $$response.StatusCode ;Write-Host(&#039;&lt; {0}&#039; -f $$responseStatus)  } ; &quot;\n  nodeSelector:\n    kubernetes.io\/os: windows\n  dnsPolicy: ClusterFirst\n  restartPolicy: Always\nstatus: {}\n<\/pre><\/div>\n\n\n<p>Now all is ready and we can apply this yaml file to be scheduled on one of our Windows worker and connect to this Windows container in command line:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ kubectl apply -f podwin.yaml \n\n$ kubectl exec -it omrun-bc -- cmd\n<\/pre><\/div>\n\n\n<p>And voil\u00e0! I couldn&#8217;t believe my eyes to be connected to Windows CLI into a container!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to install OMrun in it?<\/h2>\n\n\n\n<p>So this is all good but here comes the tricky part. We have to install OMrun executables in this Windows Server 2019 container and I&#8217;ve tried several options.<\/p>\n\n\n\n<p>The first thing is to connect to this AKS cluster from my Mac laptop and install the Azure CLI:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n% brew install azure-cli\n<\/pre><\/div>\n\n\n<p>It took a while and I could then copy the private and public key generated previously into my .ssh folder and test my connection:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n% az login\n\n% az aks get-credentials --resource-group BootCampOmrun --name AKSBootCamp\n\n% kubectl get nodes\nNAME                                STATUS   ROLES   AGE     VERSION\naks-nodepool1-25638203-vmss000000   Ready    agent   4h15m   v1.24.9\naks-nodepool1-25638203-vmss000001   Ready    agent   4h15m   v1.24.9\naks-nodepool1-25638203-vmss000002   Ready    agent   4h15m   v1.24.9\naksnpwin000000                      Ready    agent   163m    v1.24.9\naksnpwin000001                      Ready    agent   163m    v1.24.9\n<\/pre><\/div>\n\n\n<p>I&#8217;m now connected and can use kubectl (install the package first on your Mac) to interact with the AKS cluster.<\/p>\n\n\n\n<p>From there it got messy because AKS is nice but it is meant to manage your cluster so you can&#8217;t easily connect to the workers and containers from your machine as you would with a vanilla Kubernetes. The idea was to upload the OMrun executables to the Windows worker then the container and launch the installation in it. There are ways to connect to the workers through a Linux VM or through RDP in a Windows VM (my colleague <strong>Pierre Thanasack<\/strong> configured it successfully) in the resource group but that was not the proper way to go. We sticked with the DevOps best practice and created a Docker image we pushed on Docker Hub. Then in the yaml file of our pod we simply referenced that image and voil\u00e0&#8230; again!<\/p>\n\n\n\n<p>This is my colleague <strong>Ryan Bada\u00ef<\/strong> (one of our rising star in our DevOps Team) that took care of that part and installed all the OMrun executables over a Windows Server 2019 image and built the final docker image. So we had the complete OMrun product as an image that could be made available for our Windows container. Brilliant!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>What a journey! Thanks to this challenge we were able to push our limits, learn something new and present a working solution for such projects. We are now ready to respond to requests of real clients having such requirement. Of course we will need to work out all the details and make this configuration clean. We will also have to try to build Windows Server containers on other Kubernetes platform to have several options to offer for this solution.<\/p>\n\n\n\n<p>Real LEGO or containers are both fun and can be used to build great projects!<\/p>\n\n\n\n<p>Note for future newcomers, the challenges and project are different at each Bootcamp so be prepared to be amazed by this unique experience! Thank you dbi services for organising such event! #greatplacetowork<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A few weeks ago I participated at the dbi services bootcamp. All new employees are gathered for a refreshment of dbi services best practices. This is also an opportunity to ask questions directly to our CEO David Hueber as well as provide feedback on our enrolment experience in the company. dbi services is very keen [&hellip;]<\/p>\n","protected":false},"author":109,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[955,1320,1504,1522],"tags":[1597,1338,762,89,2751,763],"type_dbi":[],"class_list":["post-23774","post","type-post","status-publish","format-standard","hentry","category-cloud","category-devops","category-docker","category-kubernetes","tag-aks","tag-azure","tag-containers","tag-kubernetes","tag-omrun","tag-windows-containers"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Windows Server container on an AKS cluster - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Windows Server container on an AKS cluster\" \/>\n<meta property=\"og:description\" content=\"A few weeks ago I participated at the dbi services bootcamp. All new employees are gathered for a refreshment of dbi services best practices. This is also an opportunity to ask questions directly to our CEO David Hueber as well as provide feedback on our enrolment experience in the company. dbi services is very keen [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-22T09:16:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-22T09:16:04+00:00\" \/>\n<meta name=\"author\" content=\"DevOps\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DevOps\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/\"},\"author\":{\"name\":\"DevOps\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"headline\":\"Windows Server container on an AKS cluster\",\"datePublished\":\"2023-03-22T09:16:02+00:00\",\"dateModified\":\"2023-03-22T09:16:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/\"},\"wordCount\":1161,\"commentCount\":0,\"keywords\":[\"AKS\",\"Azure\",\"Containers\",\"kubernetes\",\"OMrun\",\"Windows Containers\"],\"articleSection\":[\"Cloud\",\"DevOps\",\"Docker\",\"Kubernetes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/\",\"name\":\"Windows Server container on an AKS cluster - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2023-03-22T09:16:02+00:00\",\"dateModified\":\"2023-03-22T09:16:04+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Windows Server container on an AKS cluster\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735\",\"name\":\"DevOps\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g\",\"caption\":\"DevOps\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/devops\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Windows Server container on an AKS cluster - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/","og_locale":"en_US","og_type":"article","og_title":"Windows Server container on an AKS cluster","og_description":"A few weeks ago I participated at the dbi services bootcamp. All new employees are gathered for a refreshment of dbi services best practices. This is also an opportunity to ask questions directly to our CEO David Hueber as well as provide feedback on our enrolment experience in the company. dbi services is very keen [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/","og_site_name":"dbi Blog","article_published_time":"2023-03-22T09:16:02+00:00","article_modified_time":"2023-03-22T09:16:04+00:00","author":"DevOps","twitter_card":"summary_large_image","twitter_misc":{"Written by":"DevOps","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/"},"author":{"name":"DevOps","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"headline":"Windows Server container on an AKS cluster","datePublished":"2023-03-22T09:16:02+00:00","dateModified":"2023-03-22T09:16:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/"},"wordCount":1161,"commentCount":0,"keywords":["AKS","Azure","Containers","kubernetes","OMrun","Windows Containers"],"articleSection":["Cloud","DevOps","Docker","Kubernetes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/","url":"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/","name":"Windows Server container on an AKS cluster - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2023-03-22T09:16:02+00:00","dateModified":"2023-03-22T09:16:04+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/windows-server-container-on-an-aks-cluster\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Windows Server container on an AKS cluster"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4cd1b5f8a3de93f05a16ab8d7d2b7735","name":"DevOps","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cdd2dd7441774355062c0f0f68612296b059cd1e2ff6c7af0b15dba0ed64a85f?s=96&d=mm&r=g","caption":"DevOps"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/devops\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/23774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/109"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=23774"}],"version-history":[{"count":25,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/23774\/revisions"}],"predecessor-version":[{"id":23800,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/23774\/revisions\/23800"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=23774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=23774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=23774"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=23774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}