Deploy WordPress on Kubernetes using Kubeapps


WordPress is one of the world's most popular web publishing platforms for building blogs and websites. It can be customized via a wide selection of themes, extensions and plug-ins.

This guide walks you through the process of deploying and setting up WordPress in a Kubernetes cluster using Helm and Kubeapps.

Watch the following video or keep reading this tutorial to learn more:


Once you've got WordPress running on Kubernetes, read our guide on performing more complex post-deployment tasks, including setting up TLS with Let's Encrypt certificates and performing rolling updates.

Assumptions and Prerequisites

This tutorial assumes you have the following:

Step 1: Deploy WordPress

Once you have installed Kubeapps and are logged into the web UI, you will be taken to the "Applications" page where Kubeapps lists the currently running applications.

To deploy a new application, click the "Catalog" link in the navigation bar:

The "Catalog" page lists the charts from different Helm repositories that are ready to be deployed in the cluster. By default, Kubeapps will display charts from the Bitnami repository.

Enter "wordpress" in the search field and click the "Wordpress" tile to go to the chart page.

Kubeapps Catalog WordPress tile

On this page you can learn about the WordPress chart, review older versions, and any related links. Click "Deploy" to deploy the chart:

Kubeapps WordPress chart page

This will take you to a page where you can configure your WordPress deployment. You can give your release a name, change the version you want to deploy, or configure Helm values.


You can optionally check out the chart README for advanced configuration options, such as configuring an Ingress.

Set the name of the deployment to "wordpress" and click "Submit" to create the deployment:

Kubeapps WordPress deployment form

Once submitted, you will be redirected to a page that describes the state of your deployment. The status will be "Not ready" until WordPress is up and running. Eventually, a "Ready" state can be seen on this page, once all the containers to run WordPress are running and healthy.

Kubeapps WordPress deployment status

Step 2: Access WordPress using the Service Load Balancer

By default, WordPress creates a Service with LoadBalancer type to provide an externally accessible URL for its web interface. Depending on your cloud provider of choice, the load balancer can take some time to provision and will stay in a "Pending" state until it is available. If using Minikube, you will need to run minikube tunnel in a new terminal window in order for an IP address to be assigned.

After some time, the URL should be visible in the Access URL table:

Kubeapps WordPress access URL

Once it is visible, click one of the URLs shown to access your freshly deployed WordPress blog.

Step 3: Login to WordPress

On the WordPress blog home page, click "Log in" to log in to the admin interface.

As described in the "Notes" section on the deployment status page in Kubeapps, the username for the WordPress blog is "user" and the password is stored in a Secret. You can retrieve the password from the "Application Secrets" section on the deployment status page by clicking the corresponding icon:

Kubeapps WordPress reveal credential

Copy the revealed password and enter it in the WordPress login form to login:

WordPress login form

Once logged in, you will be taken to the WordPress admin interface where you can create content and manage your blog.

WordPress admin interface

Useful links

To learn more about the topics discussed in this guide, use the links below: