Clusters
A cluster is a collection of autonomous environments that can each execute its own workloads and applications. A cluster typically has its own set of resources, including virtual computers, storage, and a network, enabling the creation of distinct environments that can function independently.
The Kubeark platform requires the use of a Kubernetes cluster as the fundamental unit of organisation. The platform's scalability and flexibility can be improved by adding clusters. As the number of clusters included in a license dictates the price and level of functionality of the platform, they are a key component of the licensing model.
The Kubernetes cluster is a collection of physical or virtual machines that are connected and operate together to run containerized applications. The Kubeark Platform was designed to support multiple Kubernetes clusters by remotely connecting via an API Kubernetes server and allowing for the execution of CRUD (Create, Read, Update, and Delete) operations via the Kubeark platform.
Kubeark's multi-clustering functionality is achieved through the use of contexts, which represent a configuration that defines the cluster, user, and the API server's credentials for the specified cluster. The context allows the platform to communicate and perform operations on the specified cluster.
The number of active clusters that a license includes is one of the key factors that determine the cost of the license, and the usage of clusters is subject to the terms and limitations of the license.
The Kubeark platform offers a centralized management system for clusters, which allows you to perform various tasks such as adding and editing your clusters on the Clusters page. This page provides a user-friendly interface that allows you to easily manage your clusters.
The following attributes are available when creating a cluster:
Cluster Name - the desired name of the new cluster
Status - the status toggle can be set to Active or Disabled
Prometheus URL- specify the URL of the Prometheus server used to monitor the Kubernetes cluster. Prometheus is an open-source monitoring and alerting tool that is commonly used to monitor Kubernetes clusters.
Usage Service URL - specify the URL of the usage service used to track the usage of resources within the Kubernetes cluster
Details - additional information about the Kubernetes cluster, such as the number of nodes, pods, and services in the cluster
Description - an optional field that allows you to enter a description or notes about the cluster
Cluster Config - the option for uploading a custom configuration file (supported formats are .json and .yaml)
API Config - this category requires the necessary information to connect to the Kubernetes API server for a specific cluster, and includes the following editable fields:
The Kubeark Platform also offers a drag-and-drop functionality for uploading your Cluster Configuration (we will call this kubeconfig), represented by the YAML or JSON file. This feature allows you to easily and quickly upload your existing clusters to the platform, without the need for manual configuration or command line interface. Simply drag and drop your Cluster Config file onto the designated area of the Clusters page and the platform will handle the rest, allowing you to focus on managing and scaling your clusters.
Kubeark provides the means to verify that the cluster can be reached by the Kubeark platform services, validating your credentials and the network status.
After setting the attributes on the Cluster page, the next step in monitoring your clusters is to provide a Prometheus URL. This URL consists of four parts:
- the Prometheus service name
- the namespace
- the security protocol
- the port number.
The URL should be in the format of "prometheus-service.namespace.svc:port".
For example, the Prometheus URL for a service named "prometheus-service" within the "monitoring" namespace and using the "http" protocol on port "8080" would be: "prometheus-service.monitoring.svc:8080". This URL is used to connect to the Prometheus server, which is responsible for collecting and analyzing metrics from your clusters, and providing real-time visibility into the performance and resource usage of your clusters. With this URL you can monitor and analyze your clusters to help detect potential issues and optimize performance, as well as build visualizations and alerts to notify you of any critical events happening in your clusters.