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.
What are the benefits of using Kubernetes?
- 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.
- Workload optimization – Monitoring your Kubernetes cluster can help you manage workloads better and optimize resource usage. This can lead to better performance and reliability.
- 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.
- 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.
- 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.
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
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.
Kubernetes / Compute Resources / Namespace (Pods)
Displays the resource demand for each individual pod, broken down per namespace.