This article instructs on how to create a DaemonSet in order to install and run one sample of Cloudaware Breeze agent on every node of a cloud-managed Kubernetes cluster (Amazon EKS, Azure AKS, Google GKE). Linux only.

Pre-requisites

Amazon EKS: ensure that Cloudaware has required permissions using this guide

Azure AKS: ensure that Cloudaware has required permissions using this guide.

Description

DaemonSet starts the container with Breeze agent installer. The container has two bind mounts:

  • host:/opt > container:/opt used for the Breeze agent installation from container to the host file system

  • host:/ > container:/var/root used for launching the agent in the chroot environment

The container runs two commands:

  1. Install the Breeze agent to the /opt directory.

  2. Run the simple daemon which runs the Breeze agent every 15 minutes.

Step-by-step guide

1. Open Cloudaware GitHub repo with Kubernetes files. Clone the repo to your Github using the following command:

git clone https://github.com/cloudaware/breeze-tools.git
CODE

2. Log in to Cloudaware account. Select Admin under your username in the upper right corner.

3. Locate Breeze in the list of DevOps Integrations. Click 1 Configured.

4. Select Linux* Agent version to download the Breeze agent.

*This integration is for Linux only.

5. Untar the Breeze installer and copy the extracted files (./breeze-agent folder) into kubernetes/daemonset folder of the cloned repo:

cd breeze-tools/kubernetes/daemonset && tar xzvf <DOWNLOADS_PATH>/breeze-agent.example.version.0.x86_64.linux.tgz
CODE

WHERE

breeze-agent.example.version.0.x86_64.linux.tgz should be replaced by the name of the dowloaded installer file (e.g. breeze-agent.1x11xx1xxxx11x11111x1x1x.11111111.0.x86_64.linux.tgz).

docker build -t ca-breeze-ds .
CODE

6. Create a repository in your private container registry (e.g. AWS ECR, Azure ACR, Google GCR, etc.) named ca-breeze-ds. Upload the result image to your private container registry.

docker tag ca-breeze-ds:latest <CONTAINER_REGISTRY_HOSTNAME>/ca-breeze-ds:latest
CODE
docker push <CONTAINER_REGISTRY_HOSTNAME>/ca-breeze-ds:latest 
CODE

WHERE

<CONTAINER_REGISTRY_HOSTNAME> is a placeholder that needs to be replaced by your private container registry URI (e.g. 111111111111.dkr.ecr.us-east-1.amazonaws.com/breeze-agent).

7. Edit the DaemonSet configuration file ds-breeze-agent.yaml replacing the placeholders with valid values. Ensure that image pull secret is added to Kubernetes Secrets.

8. Create the DaemonSet using the following command:

kubectl create -f ds-breeze-agent.yaml
CODE

9. To verify that the DaemonSet has been created, you may run the following command:

kubectl get ds
CODE