Overview
Yotascale’s Kubernetes Integration requires the installation of an agent, which is essentially a Kubernetes POD, in each of your clusters that you want onboarded onto Yotascale. This document describes how to install the agent onto your cluster. The document also lists some pre-requisites that are required by Yotascale.
Follow the steps below for installing the agent onto each of your Kubernetes clusters.
Installing the Agent
Step 1: Download the Deployment Descriptor
Login to Yotascale and click on Manage Cloud Services from the Settings menu
Once on the Manage Cloud Services page, click on the Kubernetes Cluster Button
Click the Download button to save the Deployment Descriptor.
Step 2: Update the Environment Variables for your Cluster
The deployment descriptor lists multiple environment variables in the last few lines of the file. You would need to configure some of them according to your environment.
Environment Variable | Description | Value needs to be specified |
---|---|---|
KUBERNETES_CLUSTER_ID | Give your cluster a unique name in order to identify clusters within Yotascale. | Yes |
PROMETHEUS_API_ENDPOINT | Point the agent to the Prometheus API by providing the URL. | Yes |
YOTASCALE_API_KEY | This Environment variable authenticates (and identifies) this agent against a Service Role that your administrators have subscribed to by default. This will be pre-populated in the deployment descriptor and does not need to be updated by the user. | No |
YOTASCALE_KUBERNETES_API_ENDPOINT | This is the URL of the Yotascale API that allows the agent to authenticate iteself with Yotascale, and send frequent heartbeats for monitoring. This URL will be pre-populated in the deployment descriptor. | No |
Step 3: Deploy Yotascale Agent on Kubernetes
Once you have updated the deployment descriptor, apply the updated file onto your cluster
kubectl apply -f yotascale-kubernetes-agent-deployment.yaml
Step 4: Verifying the Installation
Once you have applied the deployment descriptor to your cluster, you will see it appear in the List of Clusters widget in the Manage Cloud Services Page.
You can also look at the logs from the agent to ensure there are no error logs.
kubectl logs -l app=yotascale-kubernetes-agent -n yotascale
Metric Ingestion from Prometheus
The Yotascale Kubernetes Agent assumes the existence of a Prometheus installation for your cluster. Furthermore, it assumes that Prometheus is scraping kube-state-metrics and cAdvisor, two common tools for capturing cluster and container level metrics.
The Yotascale agent uses the following metrics:
kube-state-metrics Metrics
The following metrics enable Yotascale to build a layout of your Kubernetes cluster, determine relationship between various Kubernetes objects and understand resource requirements.
Metric Name | Description |
---|---|
kube_node_info | Provides information on the nodes running in the cluster. This includes the "provider id" which contains the resource id of the AWS EC2 instance which corresponds to the kubernetes node. |
kube_node_labels | Provides information about the node such as the instance type e.g c4.xlarge, the region, the availability zone, the os and the role (master/node) |
kube_pod_info | Provides information on the pods running on the clusters including the name of the nodes the pods are running on |
kube_pod_container_info | Provides information on the containers running under each pod. |
kube_pod_container_resource_requests_memory_bytes | Requested memory for the container |
kube_pod_container_resource_requests_cpu_cores | Requested CPU cores for the container |
kube_pod_container_resource_limits_memory_bytes | Upper limit usage for memory usage for the container |
kube_pod_container_resource_limits_cpu_cores | Upper limit usage for CPU cores for the container |
kube_deployment_labels | The list of deployments and their basic metadata such as namespace |
kube_replicaset_owner | Name of the deployment that creates each replica set. |
kube_pod_owner | Name of the replica set or daemon set that creates each pods |
kube_hpa_labels | Identify the HPA. Map to namespace. |
kube_hpa_spec_max_replicas | Max Replicas configured in the HPA |
kube_hpa_spec_min_replicas | Min Replicas configured in the HPA |
cAdvisor Metrics
The following metrics enable Yotascale determine actual resource usage for each of your containers.
Metric Name | Description |
---|---|
container_memory_usage_bytes | Actual memory usage by a container |
container_cpu_usage_seconds_total | Actual CPU core usage by a container |