- Clusters infrastructure
- Benefit from the GitLab-Kubernetes integration
- Supported cluster versions
- Add and remove clusters
- View your clusters
- Configuring your Kubernetes cluster
- Multiple Kubernetes clusters
- Cluster integrations
- Cluster management project
- GitLab-managed clusters
- Auto DevOps
- Deploying to a Kubernetes cluster
- Monitoring your Kubernetes cluster
Kubernetes clusters
- Introduced in GitLab 10.1 for projects.
- Introduced in GitLab 11.6 for groups.
- Introduced in GitLab 11.11 for instances.
We offer extensive integrations to help you connect and manage your Kubernetes clusters from GitLab.
Read through this document to get started.
Clusters infrastructure
Use Infrastructure as Code to create and manage your clusters with the GitLab integration with Terraform.
Benefit from the GitLab-Kubernetes integration
Using the GitLab-Kubernetes integration, you can benefit of GitLab features such as:
- Create CI/CD Pipelines to build, test, and deploy to your cluster.
- Use Auto DevOps to automate the CI/CD process.
- Use role-based or attribute-based access controls.
- Run serverless workloads on Kubernetes with Knative.
- Connect GitLab to in-cluster applications using cluster integrations.
- Use Deploy Boards to see the health and status of each CI environment running on your Kubernetes cluster.
- Use Canary deployments to update only a portion of your fleet with the latest version of your application.
- View your Kubernetes podlogs directly in GitLab.
- Connect to your cluster through GitLab web terminals.
Supported cluster versions
GitLab is committed to support at least two production-ready Kubernetes minor versions at any given time. We regularly review the versions we support, and provide a three-month deprecation period before we remove support of a specific version. The range of supported versions is based on the evaluation of:
- The versions supported by major managed Kubernetes providers.
- The versions supported by the Kubernetes community.
GitLab supports the following Kubernetes versions, and you can upgrade your Kubernetes version to any supported version at any time:
- 1.19 (support ends on February 22, 2022)
- 1.18 (support ends on November 22, 2021)
- 1.17 (support ends on September 22, 2021)
- 1.16 (support ends on July 22, 2021)
- 1.15 (support ends on May 22, 2021)
Some GitLab features may support versions outside the range provided here.
Add and remove clusters
You can create new or add existing clusters to GitLab:
- On the project-level, to have a cluster dedicated to a project.
- On the group level, to use the same cluster across multiple projects within your group.
- On the instance level, to use the same cluster across multiple groups and projects.
To create new clusters, use one of the following methods:
- Infrastructure as Code (recommended).
- Cluster certificates (deprecated).
You can also add existing clusters to GitLab.
View your clusters
To view your project-level Kubernetes clusters, to go Infrastructure > Kubernetes clusters from your project. On this page, you can add a new cluster and view information about your existing clusters, such as:
- Nodes count.
- Rough estimates of memory and CPU usage.
Configuring your Kubernetes cluster
Use the GitLab Kubernetes Agent to safely configure your clusters. Otherwise, there are security implications.
Security implications
The default cluster configuration grants access to a wide set of functionalities needed to successfully build and deploy a containerized application. Bear in mind that the same credentials are used for all the applications running on the cluster.
Multiple Kubernetes clusters
See how to associate multiple Kubernetes clusters with your GitLab project.
Cluster integrations
See the available cluster integrations to integrate third-party applications with your clusters through GitLab.
Cluster management project
Attach a Cluster management project
to your cluster to manage shared resources requiring cluster-admin
privileges for
installation, such as an Ingress controller.
GitLab-managed clusters
See how to allow GitLab to manage your cluster for you.
Auto DevOps
You can use Auto DevOps to automatically detect, build, test, deploy, and monitor your applications.
Deploying to a Kubernetes cluster
See how to deploy to your Kubernetes cluster from GitLab.
Monitoring your Kubernetes cluster
Automatically detect and monitor Kubernetes metrics. Automatic monitoring of NGINX Ingress is also supported.
Read more about Kubernetes monitoring
Visualizing cluster health
- Introduced in GitLab Ultimate 10.6.
- Moved to GitLab Free in 13.2.
When the Prometheus cluster integration is enabled, GitLab monitors the cluster’s health. At the top of the cluster settings page, CPU and Memory utilization is displayed, along with the total amount available. Keeping an eye on cluster resources can be important, if the cluster runs out of memory pods may be shutdown or fail to start.