Launch Node in Kubernetes

Version 5 by Robin Shen
on Mar 09, 2019 15:27.

compared with
Version 6 by Robin Shen
on Mar 09, 2019 15:28.

These lines were removed. This word was removed.
These lines were added. This word was added.

View page history

There are 1 changes. View first change.

 h2. Configure server to access Kubernetes cluster
 On the machine running QuickBuild server, make sure that the OS account [running QuickBuild service|Install As System Service] is set up appropriately so that it can run below command to connect to desired Kubernetes cluster:
 {code}kubectl cluster-info{code}
 h2. Set up firewall rule to allow node ports
 Build agents are running as pods in Kubernetes cluster, and these pods are exposed as services with type "NodePort". QuickBuild server has to access these node ports, so appropriate firewall rule should be set up to allow this. For Google Kubernetes Engine, an example firewall rule can be as following:
 {anchor:create build agent image}
 h2. Create build agent image
 Build agent docker image needs to be configured with your build environment as well as QuickBuild build agent. Below is an example to create a Debian Linux image only with OpenJDK and build agent installed.
 # Assume we have build agent installed at _/path/to/buildagent_. First run the build agent to make sure it can connect with the build server.
 # Create file _/path/to/buildagent/Dockerfile_ with below content:
 FROM openjdk:8-jdk
 ADD . /app
 EXPOSE 8811
 CMD ["/app/bin/wrapper-linux-x86-64", "/app/conf/wrapper.conf"]
 # Change to directory _/path/to/buildagent_, and run below command
 sudo docker build -t youraccount/qbagent:latest .
 # Then publish the built image:
 sudo docker push youraccount/qbagent:latest
 h2. Enable Kubernetes plugin in QuickBuild
 Login to QuickBuild server, and enable the Kubernetes plugin in _Administration/Plugin Management_ page as demonstrated below:
 h2. Add Kubernetes cloud profile in QuickBuild
 Then one can follow the [cloud profiles|Working with Cloud Profiles] guide to create cloud profiles using Kubernetes launchers like below: