In this Code Pattern, we will setup a Drupal site using Kubernetes and Postgres. Drupal is a popular free and open source content management system used as the backend for millions of web sites worldwide. By splitting out the services into containers, we have the ability to leverage the power of Kubernetes.
When the reader has completed this Code Pattern, they will understand how to:
- Configure an app running multiple containers in Kubernetes
- Run a website hosted via Kubernetes
- Use Kubernetes persistent volumes to maintain Drupal configurations between container restarts
Flow
- User interacts with the Drupal web interface.
- The Drupal container uses its persistent volume to store website data (but not content).
- Drupal container connects to PostgreSQL container to access website content.
- PostgreSQL container uses its persistent volume to store the database contents.
Included components
- Kubernetes Cluster: Create and manage your own cloud infrastructure and use Kubernetes as your container orchestration engine.
- PostgreSQL: Sophisticated open-source Object-Relational DBMS supporting almost all SQL constructs.
Featured technologies
- Cloud: Accessing computer and information technology resources through the Internet.
Watch the video
Steps
Follow these steps to run Drupal on Kubernetes.
1. Clone the repo
Clone the drupal-on-kubernetes-sample locally. In a terminal, run:
$ git clone https://github.com/IBM/drupal-on-kubernetes-sample
2. Create Kubernetes cluster
Note: Minimum version 1.10 is required for both Kubernetes server and kubectl client.
2.1 Locally
Follow the instructions for running Kubernetes locally via Minikube.
2.2 Hosted on IBM Cloud
Follow the instructions for creating a Kubernetes cluster in IBM Cloud.
3. Create the service and deployment
Either run 'scripts/quickstart.sh', or run the individual commands listed in it:
kubectl create -f kubernetes/local-volumes.yaml
kubectl create -f kubernetes/postgres.yaml
kubectl create -f kubernetes/drupal.yaml
4. Access Drupal
After deploying, we need to be sure that all pods are running. Check on the status via:
kubectl get pods -l app=drupal
Once all pod are running we need to know the IP adress of our Drupal.
If you are running in Minikube, run the following:
$ minikube service drupal --url
If you are running in IBM Cloud, we will need to run the following:
$ bx cs workers "$CLUSTER_NAME"
OK
ID Public IP Private IP Machine Type State Status
kube-dal13-cr896f6348d71b4fd1ba151bc7c32abd46-w1 <REDACTED> 10.187.85.198 free normal Ready
Access the newly deployed Drupal site via http://<IP_ADDRESS>:30080
Learn more
- Kubernetes on IBM Cloud: Deliver your apps with the combined the power of Kubernetes and Docker on IBM Cloud
License
This code pattern is licensed under the Apache Software License, Version 2. Separate third party code objects invoked within this code pattern are licensed by their respective providers pursuant to their own separate licenses. Contributions are subject to the Developer Certificate of Origin, Version 1.1 (DCO) and the Apache Software License, Version 2.
'프로그램 활용 > 클라우드 가상화 도커' 카테고리의 다른 글
쿠버네티스 설치 (0) | 2023.07.27 |
---|---|
Kubernetes Tools (0) | 2023.07.27 |
Kubernetes Drupal Deployment Guide (0) | 2023.07.27 |
Drupal and Kubernetes (K8s) getting started (0) | 2023.07.27 |
Drupal portal setup using docker image (0) | 2023.07.27 |