{"id":75913,"date":"2019-03-13T06:24:33","date_gmt":"2019-03-13T13:24:33","guid":{"rendered":""},"modified":"2025-06-27T10:19:04","modified_gmt":"2025-06-27T17:19:04","slug":"scaling-wordpress-using-rook-azure-kubernetes-service","status":"publish","type":"post","link":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/","title":{"rendered":"Scaling a WordPress application using Rook on Azure Kubernetes Service"},"content":{"rendered":"\n<p>WordPress is a popular free and open source content management system based on PHP and MySQL. One of the major benefits of using cloud computing is having the ability to better support your application by scaling based on user traffic. There are currently many ways to support WordPress scaling, including reverse proxy caching, persistent object caching, database distribution, using CDN, and more.<\/p>\n\n\n\n<p>However, there are challenges with elastic (horizontal) scaling related to stateful configurations. A WordPress application is comprised of plugins, themes, content images, and many PHP files. All of these must be centrally shared for the same application and are not hosted on the MySQL DB tier. The quick tutorial below walks through how we can address this challenge, using Rook and AKS.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"azure-kubernetes-service-aks\">Azure Kubernetes Service (AKS)<\/h2>\n\n\n\n<p>Azure Kubernetes Service supports several storage options. All of them provide a central persistent storage layer with different performance capabilities. Using Azure&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/azure-disks-dynamic-pv\">Managed Disk<\/a>&nbsp;provided adequate performance but by nature, a disk is bound to a single Pod, hence not supporting Pod scaling. Also, a virutal machine (a Kubernetes node, specifically) can support only up to a certain number of attached disks. Azure&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/azure-files-dynamic-pv\">Files<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/github.com\/Azure\/azure-storage-fuse\">Blob Fuse<\/a>&nbsp;can serve multiple Kubernetes pods simultaneously. However, we opted for even better performance levels while leveraging Kubernetes\u2019s extensive stack and plugins (in Kubernetes storage solutions).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"rook\">Rook<\/h2>\n\n\n<figure class=\"wp-block-image alignleft\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/rook-logo-snip-2-e1552483450748.webp\" alt=\"rook logo\" class=\"wp-image-75955 webp-format\" srcset=\"\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/03\/rook-logo-snip-2-e1552483450748.png\"><\/figure>\n\n\n\n<p><a href=\"https:\/\/rook.io\/\">Rook<\/a>&nbsp;is an open source \u201cincubating level\u201d CNCF project that runs as a native Kubernetes service. Automating Ceph (open source software-defined storage), Rook offers storage for your Kubernetes applications through persistent volumes, providing optimal integration with applications in need of storage. Rook handles the heavy lifting behind the scenes, such as provisioning and management.&nbsp;We\u2019ll use Rook as our persistent storage layer for the WordPress frontend.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"prerequisites\">Prerequisites<\/h2>\n\n\n\n<p>If you don\u2019t already have an Azure account,&nbsp;<a href=\"https:\/\/azure.microsoft.com\/en-us\/free\/\">create a free Azure account<\/a>&nbsp;with&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/aks\/kubernetes-walkthrough-portal\">Azure Kubernetes Service (AKS)<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"the-process\">The Process<\/h2>\n\n\n\n<p>Installing Rook is quite easy and consists of four steps. The official installation guide can be found&nbsp;<a href=\"https:\/\/rook.io\/docs\/rook\/v0.9\/ceph-quickstart.html\">here<\/a>.<\/p>\n\n\n\n<p>1. Install FlexVolume for AKS:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nkubectl apply -f https:\/\/raw.githubusercontent.com\/Azure\/kubernetes-keyvault-flexvol\/master\/deployment\/kv-flexvol-installer.yaml\n<\/pre><\/div>\n\n\n<p>2. Install the Rook Operator:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nkubectl apply -f https:\/\/raw.githubusercontent.com\/shayshahak\/Rook-for-AKS\/master\/operator.yaml\n\n# verify the rook-ceph-operator, rook-ceph-agent, and rook-discover pods are in the `Running` state before proceeding (should take about two minutes):\n\nkubectl -n rook-ceph-system get pod\n<\/pre><\/div>\n\n\n<p>3. Install the Rook Cluster:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><\/ol>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nkubectl apply -f https:\/\/raw.githubusercontent.com\/shayshahak\/Rook-for-AKS\/master\/cluster.yaml\n\n# Use kubectl to list pods in the rook namespace. You should be able to see the following pods once they are all running:\n\nkubectl -n rook-ceph get pod\n\nNAME                                                   READY     STATUS      RESTARTS\nrook-ceph-mgr-a-5977cffcf8-vsmqz                       1\/1       Running     0\nrook-ceph-mon-a-74dc9d4bcd-62g8s                       1\/1       Running     0\nrook-ceph-mon-b-558cf6f9d4-7sh24                       1\/1       Running     0\nrook-ceph-osd-0-585bf769cc-jp5sw                       1\/1       Running     0\nrook-ceph-osd-1-76576b697f-v9zwz                       1\/1       Running     0\nrook-ceph-osd-prepare-aks-agentpool-19295063-0-btkbb   0\/2       Completed   0\nrook-ceph-osd-prepare-aks-agentpool-19295063-1-2fsfz   0\/2       Completed   0\n\n<\/pre><\/div>\n\n\n<p>4. Install the Shared File System:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nkubectl apply -f https:\/\/raw.githubusercontent.com\/shayshahak\/Rook-for-AKS\/master\/filesystem.yaml\n\n# To confirm the file system is configured, wait for the mds pods to start:\n\nkubectl -n rook-ceph get pod -l app=rook-ceph-mds\n\n# You should be able to see the following pods once they are all running:\n\nNAME                                    READY  STATUS    AGE  Node\nrook-ceph-mds-myfs-a-5b7cbd4977-6tgv2   1\/1    Running   1m   aks-agentpool-33026748-0\nrook-ceph-mds-myfs-b-85dc94778c-8qfkb   1\/1    Running   1m   aks-agentpool-33026748-1\n<\/pre><\/div>\n\n\n<p>That\u2019s it! The Rook cluster and the shared file system are ready. Let\u2019s deploy a simple\u00a0WordPress application using what we just created:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nkubectl apply -f https:\/\/raw.githubusercontent.com\/shayshahak\/Rook-for-AKS\/master\/deploy.yaml\n\nkubectl apply -f https:\/\/raw.githubusercontent.com\/shayshahak\/Rook-for-AKS\/master\/service.yaml\n<\/pre><\/div>\n\n\n<p>-service<\/p>\n\n\n\n<p>Next, connect to the WordPress application and configure its initial MySQL configuration. Notice that \/var\/www\/html is hosted on the shared file system. Change the \u2018replicas\u2019 under the deployment YAML and verify that in fact all of your Kubernetes pods are using the same persistent storage<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"summary\">Summary<\/h2>\n\n\n\n<p>By using Rook on AKS, we achieved:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Scaling WordPress Frontend with a centralized persistent storage<\/li>\n\n\n\n<li>Gained HA for the Frontend without data being bound to a single Pod or Node<\/li>\n\n\n\n<li>Great performance in terms of end-to-end site response time<\/li>\n\n\n\n<li>Used a well known Kubernetes integrated plugin without using an additional external storage layer for the Kubernetes cluster<\/li>\n<\/ul>\n\n\n\n<p>In this example we used Rook for a shared file system, but there are additional things you can achieve with Rook, including object and block storage for your containerized applications running on Kubernetes. Rook also provides helpful operations tools, such as its Ceph&nbsp;<a href=\"https:\/\/rook.io\/docs\/rook\/v0.9\/ceph-dashboard.html\">Dashboard<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/rook.io\/docs\/rook\/v0.9\/ceph-monitoring.html\">Monitoring<\/a>.<\/p>\n\n\n\n<p>Questions or feedback? Let us know in the comments.<\/p>\n\n\n\n<p><em>Note: these configurations examples are for testing and learning purposes. Do not use these configurations examples for production. For production consider changing the cluster properties, filesystem properties as well as the namespaces in which your cluster and application resides.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress is a popular free and open source content management system based on PHP and MySQL. One of the major benefits of using cloud computing is having the ability to better support your application by scaling based on user traffic.<\/p>\n","protected":false},"author":5562,"featured_media":95491,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"msxcm_post_with_no_image":false,"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[2272],"content-type":[340],"topic":[2240,2241],"programming-languages":[],"coauthors":[520],"class_list":["post-75913","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-microsoft","content-type-tutorials-and-demos","topic-application-development","topic-cloud","review-flag-1593580428-734","review-flag-1-1593580432-963","review-flag-2-1593580437-411","review-flag-3-1593580442-169","review-flag-4-1593580448-609","review-flag-free-1593619513-693"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Scaling a WordPress application using Rook on Azure Kubernetes Service | Microsoft Open Source 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:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Scaling a WordPress application using Rook on Azure Kubernetes Service | Microsoft Open Source Blog\" \/>\n<meta property=\"og:description\" content=\"WordPress is a popular free and open source content management system based on PHP and MySQL. One of the major benefits of using cloud computing is having the ability to better support your application by scaling based on user traffic.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Open Source Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-13T13:24:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-27T17:19:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/SUR22_Laptop4_COMMR_HigherEd_Contextual_192_RGB.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Shay Shahak\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:site\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shay Shahak\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/\"},\"author\":[{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/shay-shahak\/\",\"@type\":\"Person\",\"@name\":\"Shay Shahak\"}],\"headline\":\"Scaling a WordPress application using Rook on Azure Kubernetes Service\",\"datePublished\":\"2019-03-13T13:24:33+00:00\",\"dateModified\":\"2025-06-27T17:19:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/\"},\"wordCount\":596,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/SUR22_Laptop4_COMMR_HigherEd_Contextual_192_RGB.webp\",\"keywords\":[\"Microsoft\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/\",\"name\":\"Scaling a WordPress application using Rook on Azure Kubernetes Service | Microsoft Open Source Blog\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/SUR22_Laptop4_COMMR_HigherEd_Contextual_192_RGB.webp\",\"datePublished\":\"2019-03-13T13:24:33+00:00\",\"dateModified\":\"2025-06-27T17:19:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#primaryimage\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/SUR22_Laptop4_COMMR_HigherEd_Contextual_192_RGB.webp\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/SUR22_Laptop4_COMMR_HigherEd_Contextual_192_RGB.webp\",\"width\":1170,\"height\":640,\"caption\":\"Three people collaborating in an office on laptops.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/opensource.microsoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Scaling a WordPress application using Rook on Azure Kubernetes Service\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"name\":\"Microsoft Open Source Blog\",\"description\":\"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability\",\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\",\"name\":\"Microsoft Open Source Blog\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft Open Source Blog\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/OpenAtMicrosoft\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Scaling a WordPress application using Rook on Azure Kubernetes Service | Microsoft Open Source 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:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/","og_locale":"en_US","og_type":"article","og_title":"Scaling a WordPress application using Rook on Azure Kubernetes Service | Microsoft Open Source Blog","og_description":"WordPress is a popular free and open source content management system based on PHP and MySQL. One of the major benefits of using cloud computing is having the ability to better support your application by scaling based on user traffic.","og_url":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/","og_site_name":"Microsoft Open Source Blog","article_published_time":"2019-03-13T13:24:33+00:00","article_modified_time":"2025-06-27T17:19:04+00:00","og_image":[{"width":1170,"height":640,"url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/SUR22_Laptop4_COMMR_HigherEd_Contextual_192_RGB.png","type":"image\/png"}],"author":"Shay Shahak","twitter_card":"summary_large_image","twitter_creator":"@OpenAtMicrosoft","twitter_site":"@OpenAtMicrosoft","twitter_misc":{"Written by":"Shay Shahak","Est. reading time":"3 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#article","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/"},"author":[{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/shay-shahak\/","@type":"Person","@name":"Shay Shahak"}],"headline":"Scaling a WordPress application using Rook on Azure Kubernetes Service","datePublished":"2019-03-13T13:24:33+00:00","dateModified":"2025-06-27T17:19:04+00:00","mainEntityOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/"},"wordCount":596,"commentCount":3,"publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/SUR22_Laptop4_COMMR_HigherEd_Contextual_192_RGB.webp","keywords":["Microsoft"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/","url":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/","name":"Scaling a WordPress application using Rook on Azure Kubernetes Service | Microsoft Open Source Blog","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#primaryimage"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/SUR22_Laptop4_COMMR_HigherEd_Contextual_192_RGB.webp","datePublished":"2019-03-13T13:24:33+00:00","dateModified":"2025-06-27T17:19:04+00:00","breadcrumb":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#primaryimage","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/SUR22_Laptop4_COMMR_HigherEd_Contextual_192_RGB.webp","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/SUR22_Laptop4_COMMR_HigherEd_Contextual_192_RGB.webp","width":1170,"height":640,"caption":"Three people collaborating in an office on laptops."},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.microsoft.com\/blog\/2019\/03\/13\/scaling-wordpress-using-rook-azure-kubernetes-service\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.microsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Scaling a WordPress application using Rook on Azure Kubernetes Service"}]},{"@type":"WebSite","@id":"https:\/\/opensource.microsoft.com\/blog\/#website","url":"https:\/\/opensource.microsoft.com\/blog\/","name":"Microsoft Open Source Blog","description":"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability","publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/opensource.microsoft.com\/blog\/#organization","name":"Microsoft Open Source Blog","url":"https:\/\/opensource.microsoft.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft Open Source Blog"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/OpenAtMicrosoft"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Open Source Blog","distributor_original_site_url":"https:\/\/opensource.microsoft.com\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/75913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/users\/5562"}],"replies":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=75913"}],"version-history":[{"count":2,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/75913\/revisions"}],"predecessor-version":[{"id":97802,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/75913\/revisions\/97802"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media\/95491"}],"wp:attachment":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=75913"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/post_tag?post=75913"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/content-type?post=75913"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/topic?post=75913"},{"taxonomy":"programming-languages","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/programming-languages?post=75913"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/coauthors?post=75913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}