More info can be found in following WSO2 Official documentation.
Kubernetes Artifacts
Puppet Modules
1) Download and Install
Google Cloud SDK
kubectl
2) Subscribe
Subscribe to 'Google Cloud Trial'
3) Setup / Configure
i) A container cluster
WHAT : This is the cluster of container hosts.
HOW :
- Go to Google Container Engine
- Create a container cluster. (Change the machine type and node count if you need)
ii) kubectl
WHY : kubectl should be configured with Google Container Cloud, so that the kubectl commands can be invoked against the cloud.
HOW : Instructions can be found by clicking on 'connect' on container cluster entry we just created in the previous step.
4) Git Clone
i) https://github.com/wso2/kubernetes-artifacts
WHAT : The repo of services and replication controllers for WSO2 products
ii) https://github.com/wso2/dockerfiles
WHAT : Docker files to build WSO2 product images.
iii) https://github.com/wso2/puppet-modules
WHAT : Puppet scripts to deploy WSO2 products in a host.
WHY : These puppet scripts are used by the docker files to build an image with WSO2 product deployments.
5) Build Images
WSO2 Kubernetes clustering scheme talks to the Kubernetes API to get node data. Because of the JVM version difference in WSO2 Docker Images (Java 7) and Google VMs (Java 8), we need to add the following line to PUPPET_MODULES_GIT_REPO/modules/<product>/templates/<version>/bin/wso2server.sh.erb
-Ddeployment.security.SSLv2Hello=false \
-Ddeployment.security.SSLv3=false \
-Ddeployment.security.TLSv1=false \
-Ddeployment.security.TLSv1.1=true \
-Ddeployment.security.TLSv1.2=true \
-Dhttps.protocols=TLSv1.2 \
6) Push the Images
7) Deploy Services and Replication Controllers
HOW :
- Go to KUBERNETES_ARTIFACTS_GIT_REPO/<product>
- ./deploy sh
TWEAK :
The image names in the deployed replication controllers are not valid in the Google Container Cloud env. So we have to amend the replication controller definitions to refer to the image names in the Google container registry.
We can do it from the Google Kubernetes Dashboard
Select 'View/edit YAML' of the desired replication controller.
Edit the spec/containers/image element with the correct image name.
e.g. gcr.io/dazzling-bruin-148110/wso2am-kubernetes:1.10.0
In order to make the change effective you can scale the nodes to 0 and then scale up.
8) Open Firewall Ports
WHY : By default the ports of Google cloud nodes are closed for traffic from outside.