Breeze DaemonSet for Cloud-Managed Kubernetes Cluster

This article explains 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.

Prerequisites

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.

 

Steps

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

 

2. Log in to Cloudaware account → Admin.

Breeze agent - DaemonSet for cloud-managed Kubernetes Cluster - admin.png

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

Breeze agent - DaemonSet for cloud-managed Kubernetes Cluster - admin - 1 configured.png

4. Select the file for Linux*:

Breeze agent - DaemonSet for cloud-managed Kubernetes Cluster - Breeze integrations - versions.png

*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

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 .

 

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
docker push <CONTAINER_REGISTRY_HOSTNAME>/ca-breeze-ds:latest 

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

 

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

kubectl get ds