Skip to content

nickveenhof/drupal-docker-with-volume

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# Drupal container

# Tutorials: 
# https://cloud.google.com/container-engine/docs/quickstart
# adapted from https://cloud.google.com/container-engine/docs/tutorials/persistent-disk/#wordpress_pod

# Follow https://developers.google.com/identity/protocols/application-default-credentials to get credentials and store the json file in this folder

# Set environment variable to this set of creds
export GOOGLE_APPLICATION_CREDENTIALS=DrupalContainerEngine-f8ef8a6dc869.json

# Update gcloud
gcloud components update

# install kubernetes command line
gcloud components install kubectl

# Set to europe for all future commands
gcloud config set compute/zone europe-west1-b

# List properties
gcloud config list

# Set to our project. Make sure this exists in the UI.
gcloud config set project drupalcontainerengine

# initialize the cluster
gcloud container clusters create drupalpd \
--machine-type "f1-micro" \
--image-type "GCI" \
--disk-size "100" \
--scopes "https://www.googleapis.com/auth/compute","https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" --num-nodes 2 \
--network "default" \
--enable-cloud-logging \
--no-enable-cloud-monitoring \
--enable-autoupgrade

# Log in to our kubernetes panel
gcloud container clusters get-credentials drupalpd \
    --zone europe-west1-b --project drupalcontainerengine

kubectl proxy
# Browse to http://localhost:8001/ui

# mysql
# Set up a managed mysql instance and import a database into it. Next, copy the nickveenhofbe folder and modify the information in pods.yaml to match your setup.

# Create NFS Server PV & Claim
kubectl create -f nfs-shared1-pv.yaml

# Create NFS Server
kubectl create -f nfs-shared1-server.yaml

# Create a folder for your site
kubectl exec -it nfs-shared1-server-rxlfk mkdir /exports/nickveenhofbe

# Create NFS Service
kubectl create -f nfs-shared1-service.yaml

# Get the IP Address for our NFS Shared1 server
kubectl describe service nfs-shared1-server

# Replace IP address in nickveenhofbe/nfs-pv.yaml
# And Create NFS folder volume to mount for our site
kubectl create -f nickveenhofbe/nfs-pv.yaml

# Claim this NFS folder volume
kubectl create -f nickveenhofbe/nfs-pv-claim.yaml

# Start the pods (2 of them)
kubectl create -f nickveenhofbe/pods.yaml

# Update the Drupal pod
kubectl replace -f nickveenhofbe/pods.yaml

# Create drupal service
kubectl create -f nickveenhofbe/lb.yaml

# verify that it points to defined endpoints (eg, ip's)
kubectl describe service nickveenhofbe

# Get our properties in order to visit our site. Wait till it mentions a property like: "LoadBalancer Ingress". It might take a while before the load balancer is created.
kubectl describe service nickveenhofbe

# Visit the site on the Public IP that is found in the load balancer
# and behold the beauty of your own HA site.

# Caveats & TODOs
# It does not properly use the NFS voluem yet to share files for sites/default/files so file uploads will only be seen in 1 of the 2 pods.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages