Shipping Kubernetes monitoring data to FusionReactor Cloud

Five biggest performance issues in C#
Ingesting data into FusionReactor with the Observability Agent

Shipping Kubernetes monitoring data to FusionReactor Cloud

Introduction to Kubernetes  

 

Kubernetes (pronounced coo-ber-net-ees)  is a Greek word meaning “helmsman” or “pilot”.  Kubernetes (also known as K8s) is an open-source container orchestration platform that automates containerized applications’ deployment, scaling, and management. Is an open-source container orchestration platform that automates containerized applications’ deployment, scaling, and management. Google originally developed it and is now maintained by the Cloud Native Computing Foundation (CNCF).

Kubernetes is highly modular and extensible, with a large ecosystem of plugins and tools that can be used to customize and extend its functionality. 

Shipping Kubernetes monitoring data to FusionReactor Cloud, FusionReactor

What are the benefits of using Kubernetes?

  1. Real-time alerts –  Monitoring Kubernetes clusters in real-time can detect errors early and send alerts to you immediately. This saves your brand’s reputation and reduces service restoration time.
  2. Workload optimization – Monitoring your Kubernetes cluster can help you manage workloads better and optimize resource usage. This can lead to better performance and reliability.
  3. Troubleshoot with ease –  Monitoring can assist in troubleshooting by accessing logs and discovering root causes of issues. This can minimize downtime and reduce the workload for developers.
  4. Real time visibility –  Monitoring your Kubernetes cluster helps you track costs in real-time. It lets you see how many nodes, load balancers, and persistent volumes are deployed and the cost incurred from each.
  5. Powerful insights –  Kubernetes monitoring provides unique insights into how users interact with your application, helping you improve future product decisions. It also helps in identifying features that need expansion or improvement.

Should you use clusters or pods in Kubernetes?

A Kubernetes cluster and a pod are two different concepts in Kubernetes architecture.

A Kubernetes cluster is a group of nodes that work together to run containerized applications. The cluster consists of a master node that manages the cluster, and one or more worker nodes that run the containers. The master node is responsible for scheduling containers, monitoring their health, and managing their lifecycle. The worker nodes are where the containers actually run and execute their processes. The cluster provides a high-level abstraction for managing and scaling containerized applications and provides features such as load balancing, service discovery, and automatic failover.

A pod, on the other hand, is the smallest deployable unit in Kubernetes. It is a logical host for one or more containers and represents a single running process instance. Pods are used to encapsulate and manage the runtime environment for a container, including its network and storage resources. Multiple containers can be co-located within a pod and share the same network namespace, allowing them to communicate with each other using localhost.

In summary, a Kubernetes cluster is a group of nodes that work together to run containerized applications, while a pod is the smallest deployable unit in Kubernetes that represents a single instance of a running process and encapsulates the runtime environment for one or more containers.

Shipping Kubernetes monitoring data to FusionReactor Cloud

This guide explains deploying the Kubernetes-Prometheus-Stack to send metric data from your Kubernetes cluster(s) directly to FusionReactor Cloud.  This data can then be visualized in the Kubernetes dashboard set.

The Kubernetes-Prometheus-Stack is a deployable Helm

chart that enables the monitoring of Kubernetes clusters in FusionReactor Cloud. Many aspects of the deployment can be customized using the Helm `values` input file. 

Shipping Kubernetes monitoring data to FusionReactor Cloud, FusionReactor

Prerequisites

Prior to beginning, ensure you have the following:

  •  Access to your cluster via `kubectl` and `helm`.
  • A valid FusionReactor Cloud account and an API key for the account.
  •  A valid FusionReactor Cloud user in your account with access to FusionReactor Cloud.

 API keys can be managed under FusionReactor Cloud \> User Menu \> Account\> API Keys

Procedure

This is the procedure for configuring the Kubernetes-Prometheus-Stack to ship metrics data directly to FusionReactor Cloud.

Step 1: Download files 

Download the following files from our GitHub repo:
  •  `fr-cloud-kps-values.yaml`
  •  `fr-cloud-kps-authentication-secret.yaml`

Step 2: Customize the two files for installation

    `fr-cloud-kps-values.yaml`

Change CLUSTER_NAME to your Kubernetes cluster name.

     `fr-cloud-authentication-secret.yaml`

Change PASSWORD to your FR Cloud API key. Ensure you copy and paste the entire key.

Step 3: Create new namespace to hold & deploy stack 

Run the following commands to create a new namespace to hold & deploy the stack 

 

``` bash
kubectl create namespace kube-prometheus-stack
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
kubectl apply -n kube-prometheus-stack -f fr-cloud-kps-authentication-secret.yaml
helm upgrade --install -n kube-prometheus-stack -f fr-cloud-kps-values.yaml kube-prometheus-stack prometheus-community/kube-prometheus-stack
```

If the stack deploys correctly, it will begin shipping data to FusionReactor Cloud. Check this using `kubectl get pods -n kube-prometheus-stack`.

Step 4: View your data

This data can be viewed in FusionReactor Cloud \>

Dashboards \> Kubernetes

 The Kubernetes Node Exporter for Clusters dashboard allows you to troubleshoot cluster problems right down to the VM level.

FusionReactor K8s dashboard spotlight

Our FusionReactor Kubernetes monitoring integration gives you visibility into your Kubernetes clusters and workloads within minutes, whether your clusters are hosted on-premises or in the cloud. Below are just two of our Kubernetes dashboards that will allow you to monitor your telemetry data by navigating through your nodes and pods to evaluate their health.  

Kubernetes / Compute Resources / Cluster  

An easy-to-scan overview of the performance and resource demands of the different tenants in a cluster.

Shipping Kubernetes monitoring data to FusionReactor Cloud, FusionReactor

Kubernetes / Compute Resources / Namespace (Pods)

Displays the resource demand for each individual pod, broken down per namespace.

Shipping Kubernetes monitoring data to FusionReactor Cloud, FusionReactor