8 KiB
stage | group | info |
---|---|---|
Configure | Configure | To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments |
Cluster integrations (DEPRECATED) (FREE)
- Deprecated in GitLab 14.5.
- Disabled on self-managed in GitLab 15.0.
WARNING: This feature was deprecated in GitLab 14.5.
FLAG:
On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to enable the feature flag named certificate_based_clusters
.
GitLab provides several ways to integrate applications to your Kubernetes cluster.
To enable cluster integrations, first add a Kubernetes cluster to a GitLab project or group or instance.
You can install your applications manually as shown in the following sections, or use the Cluster management project template that automates the installation.
Although, the Cluster management project template still requires that you manually do the last steps of these sections, Enable Prometheus integration for your cluster or Enable Elastic Stack integration for your cluster depending on which application you are installing. An issue exists to automate this step.
Prometheus and Elastic Stack cluster integrations can only be enabled for clusters connected through cluster certificates.
To enable Prometheus for your cluster connected through the GitLab agent, you can integrate it manually.
There is no option to enable Elastic Stack for your cluster if it is connected with the GitLab agent. Follow this issue for updates.
Prometheus cluster integration
Introduced in GitLab 13.11.
WARNING: This feature was deprecated in GitLab 14.5. However, you can still use Prometheus for Kubernetes clusters connected to GitLab through the agent by enabling Prometheus manually.
You can integrate your Kubernetes cluster with Prometheus for monitoring key metrics of your apps directly from the GitLab UI.
Once enabled, you can see metrics from services available in the metrics library.
Prometheus Prerequisites
To use this integration:
- Prometheus must be installed in your cluster in the
gitlab-managed-apps
namespace. - The
Service
resource for Prometheus must be namedprometheus-prometheus-server
.
You can manage your Prometheus however you like, but as an example, you can set it up using Helm as follows:
# Create the required Kubernetes namespace
kubectl create ns gitlab-managed-apps
# Download Helm chart values that is compatible with the requirements above.
# These are included in the Cluster Management project template.
wget https://gitlab.com/gitlab-org/project-templates/cluster-management/-/raw/master/applications/prometheus/values.yaml
# Add the Prometheus community Helm chart repository
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# Install Prometheus
helm install prometheus prometheus-community/prometheus -n gitlab-managed-apps --values values.yaml
Alternatively, you can use your preferred installation method to install Prometheus as long as you meet the requirements above.
Enable Prometheus integration for your cluster
To enable the Prometheus integration for your cluster:
- Go to the cluster's page:
- For a project-level cluster, navigate to your project's Infrastructure > Kubernetes clusters.
- For a group-level cluster, navigate to your group's Kubernetes page.
- For an instance-level cluster, navigate to your instance's Kubernetes page.
- Select the Integrations tab.
- Check the Enable Prometheus integration checkbox.
- Click Save changes.
- Go to the Health tab to see your cluster's metrics.
Elastic Stack cluster integration (FREE SELF)
- Introduced in GitLab 13.12.
- Deprecated in GitLab 14.7.
- Moved behind a feature flag named
monitor_logging
in GitLab 15.0. Disabled by default.
WARNING: This feature is in its end-of-life process. It is deprecated in GitLab 14.7. It will be removed completely in GitLab 15.2.
FLAG:
On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to enable the feature flag named monitor_logging
.
On GitLab.com, this feature is not available.
This feature is not recommended for production use.
You can integrate your cluster with Elastic Stack to index and query your pod logs.
Elastic Stack Prerequisites
To use this integration:
- Elasticsearch 7.x or must be installed in your cluster in the
gitlab-managed-apps
namespace. - The
Service
resource must be calledelastic-stack-elasticsearch-master
and expose the Elasticsearch API on port9200
. - The logs are expected to be Filebeat container logs following the 7.x log structure and include Kubernetes metadata.
You can manage your Elastic Stack however you like, but as an example, you can use this Elastic Stack chart to get up and running:
# Create the required Kubernetes namespace
kubectl create namespace gitlab-managed-apps
# Download Helm chart values that is compatible with the requirements above.
# These are included in the Cluster Management project template.
wget https://gitlab.com/gitlab-org/project-templates/cluster-management/-/raw/master/applications/elastic-stack/values.yaml
# Add the GitLab Helm chart repository
helm repo add gitlab https://charts.gitlab.io
# Install Elastic Stack
helm install elastic-stack gitlab/elastic-stack -n gitlab-managed-apps --values values.yaml
Enable Elastic Stack integration for your cluster
To enable the Elastic Stack integration for your cluster:
- Go to the cluster's page:
- For a project-level cluster, navigate to your project's Infrastructure > Kubernetes clusters.
- For a group-level cluster, navigate to your group's Kubernetes page.
- For an instance-level cluster, navigate to your instance's Kubernetes page.
- Select the Integrations tab.
- Check the Enable Elastic Stack integration checkbox.
- Click Save changes.
- Go to the Health tab to see your cluster's metrics.