Difference between revisions of "MediaWiki on Kubernetes"

From Freephile Wiki
Jump to navigation Jump to search
(draft)
 
m (draft)
Line 6: Line 6:
 
* multi-cloud compatibility
 
* multi-cloud compatibility
  
To do so, we'll need to implement Kubernetes.
+
To do so, we'll need to implement [[Kubernetes]].
  
 
We will almost certainly leverage [[Ansible]] as an orchestration tool. In a recent blog post on ansible.com, Jeff Geerling (@geerlingguy) answers the question: "[https://www.ansible.com/blog/how-useful-is-ansible-in-a-cloud-native-kubernetes-environment How Useful is Ansible in a Cloud-native Kubernetes Environment?] The short answer is that Ansible can be used for:
 
We will almost certainly leverage [[Ansible]] as an orchestration tool. In a recent blog post on ansible.com, Jeff Geerling (@geerlingguy) answers the question: "[https://www.ansible.com/blog/how-useful-is-ansible-in-a-cloud-native-kubernetes-environment How Useful is Ansible in a Cloud-native Kubernetes Environment?] The short answer is that Ansible can be used for:

Revision as of 18:04, 4 August 2020

We will provide a MediaWiki platform with the following characteristics:

  • self-healing infrastructure
  • auto-scaling
  • high-availability with multi-server failover
  • flexible storage backends
  • multi-cloud compatibility

To do so, we'll need to implement Kubernetes.

We will almost certainly leverage Ansible as an orchestration tool. In a recent blog post on ansible.com, Jeff Geerling (@geerlingguy) answers the question: "How Useful is Ansible in a Cloud-native Kubernetes Environment? The short answer is that Ansible can be used for:

  1. Container Build (Ansible-bender)
  2. Cluster Management (Kubespray)
  3. Application Lifecycle (Use Ansible to build Operators with the Operator SDK to handle deployment, upgrades, backups, etc.)

High-level outline[edit | edit source]

  1. Build image. The WMF official images at Docker Hub do not even include a true database; never mind the extensions we need.
    1. With ansible-bender we can use ansible-playbook + buildah to create our image.
  2. Publish images to Docker Hub
    1. Create organization account at Docker Hub; add freephile
    2. Create service account at GitHub - to prevent access to private repos through Docker Hub
    3. Add automated builds and automated testing

Docker (default in kublet [1]) is just one of many container runtimes that can be used with Kubernetes. The others include containerd and CRI-O.