Install >

Kubernetes


Prerequisites

1

Install Kubernetes client and a Kubernetes cluster that is already setup with NGINX Ingress Controller enabled.

2

A pre-configured Network File System (NFS) to be used as the persistent volume for artifact sharing and persistence.

In the NFS server instance, create a Linux system user account named wso2carbon with user id 802 and a system group named wso2 with group id 802. Add the wso2carbon user to the group wso2.

groupadd --system -g 802 wso2
useradd --system -g 802 -u 802 wso2carbon

Fully Distributed Deployment of WSO2 Stream Processor


1

Download installation archive for WSO2 Stream Processor Kubernetes resources. In the context of this document, KUBERNETES_HOME will refer to a local extracted archive.

2

Setup a Network File System (NFS) to be used for persistent storage.

Create and export unique directories within the NFS server instance for each Kubernetes Persistent Volume resource defined in the <KUBERNETES_HOME>/pattern-distributed/volumes/persistent-volumes.yaml file.

Grant ownership to the wso2carbon user and wso2 group, for each of the previously created directories.

sudo chown -R wso2carbon:wso2 <directory_name>

Grant read-write-execute permissions to the wso2carbon user, for each of the previously created directories.

chmod -R 700 <directory_name>

Then, update each Kubernetes Persistent Volume resource with the corresponding NFS server IP (NFS_SERVER_IP) and exported, NFS server directory path (NFS_LOCATION_PATH).

3

Setup product database(s) using MySQL in Kubernetes. Here, a NFS is needed for persisting MySQL DB data.

Create and export a directory within the NFS server instance.

Provide read-write-execute permissions to other users for the created folder.

Then, update the Kubernetes Persistent Volume resource with the corresponding NFS server IP (NFS_SERVER_IP) and exported, NFS server directory path (NFS_LOCATION_PATH) in <KUBERNETES_HOME>/pattern-distributed/extras/rdbms/volumes/persistent-volumes.yaml.

For a serious deployment (e.g. production grade setup), it is recommended to connect product instances to a user owned and managed RDBMS instance.

4

Move to <KUBERNETES_HOME>/pattern-distributed/scripts and deploy the Kubernetes resources by executing the <KUBERNETES_HOME>/pattern-distributed/scripts/deploy.sh file.

cd <KUBERNETES_HOME>/pattern-distributed/scripts
./deploy.sh 

5

Access product management consoles.

Obtain the external IP (EXTERNAL-IP) of the Ingress resources by listing down the Kubernetes Ingresses.

kubectl get ing

The external IP can be found under the ADDRESS column of the output.

Add the above host as an entry in /etc/hosts file as shown below:

<EXTERNAL-IP> wso2sp-dashboard
<EXTERNAL-IP> wso2sp-manager-1
<EXTERNAL-IP> wso2sp-manager-2

Try navigating to https://wso2sp-dashboard/monitoring from your favorite browser.