Yes… I still prefer WordPress! Just like how I prefer running MacOS these days for its relative simplicity and minimal operating overheads, so to have I come to the realisation that WordPress is still the best choice of platform for this blog. I have toyed with Ghost and in fact I am running a few of my other websites with Ghost. However 12+ years of WordPress use along with it’s plug-in ecosystem means that for Virtualization is Life!, the future remains powered by WordPress. That said, the underlying technology platform running WordPress is set for an overhaul and this has come to a head with my Ubuntu 12.04 Server that currently powers this blog being at a stage where upgrading it to the latest Ubuntu builds to support the latest versions of PHP etc are more trouble than it’s worth.

With that, I’m migrating the site to a containerised based WordPress Bitnami Application running on Kubernetes… somewhere.

Choosing Kubernetes

I could have taken the easy path here and migrated the site to a new platform that’s similar to the current LAMP stack, but as part of continued learning, it was a lot more of a challenge to try get this thing migrated to get the WordPress Application running on Kubernetes. To get a feel for the process, I am starting off by creating a Kubernetes staging instance of WordPress on my HomeLab and have been tinkering with the getting used to WordPress on Kubernetes. This post isn’t so much about WordPress on Kubernetes, but it is the final destination for this migration process.

Choosing the right Migration Tool

There are literally a thousand ways to migrate WordPress and I have already done one major migration of this very site instance from what was a Windows Based PHP/MSSQL hosting platform to the current LAMP stack which has served me well for the best part of 8 years. For that migration I literally took a copy of the WordPress site folder along with all the content along with a backup of the MSSQL database and importing/converted that data to the Linux server. If you search the Plug-in Library in the WordPress Admin Dashboard you will come up pages worth of options.

After trying a few, the one that I would highly recommend is the All-in-One WP Migration Plugin, which should load up as the top pick from the search.

Export

Once activated, the menu will appear on the Dashboard view. From here you can choose to export the current site.

There is a very complete set of advanced options when looking to export elements of the current site. For me, given I wanted to copy across the whole site in its entirety, I didn’t exclude anything. The Export To options are plenty, but be aware that all apart from FILE are a paid for service provided by ServMask. There are some benefits to using the ServMask mechanisms for export and import, but I was happy to use the FILE option.

Nearly 20,000 media files over 12 years exported along with all content, comments and other date for about 2GB worth of file.

Import

Heading to the Kubernetes Staging WordPress instance, and having deployed a vanilla WordPress site using the Bitnami HELM Chart, all that’s required is to install the All-in-One Migration Plug-in again and this time click on Import.

The only problem that will likely be encountered at this time is that the default Maximum upload file size will be set too low (at 80MB) to complete the import.

I posted how to fix this with a custom .htaccess file using Config Maps for WordPress on Kubernetes yesterday. With that fix in place, we can begin to upload the export. This will take a little time to import depending on the size of your export and number of items. As you can see in the image below, I did get a warning about PHP5 to PHP7 migration, however this is ok and actually one of the reasons for the migration as a number of my Plug-ins won’t update anymore.

Once complete the import process results in the WordPress site being migrated across and ready for some final configuration tweaks. JetPack will also detect that this site is an exact copy and will place the imported instance into Safe Mode.

Quick Wrap

As far as migrations go, using this tool easily offered the smoothest transition from LAMP to my Kubernetes homelab for the migration of my WordPress blog. The All-in-One WP Migration plug-in is highly recommended and takes out a lot of the manual fiddly tasks that be associated with migrations of web applications. The fact that I was able to move the site from an older LAMP stack to a modern Kubernetes platform shows the portability of the WordPress application its self. By using the file export/import method it’s a very easy process to undertake and now I can focus on tweaking the site on Kubernetes… ready for production.