Refactor the GitLab k8s installation method
This commit is contained in:
parent
57ca2340ed
commit
80ea0e5dc1
|
@ -5,69 +5,82 @@ description: Read through the GitLab installation methods.
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
|
GitLab can be installed in most GNU/Linux distributions and in a number
|
||||||
|
of cloud providers.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
Before installing GitLab, make sure to check the [requirements documentation](install/requirements.md)
|
Before installing GitLab, make sure to check the [requirements documentation](requirements.md)
|
||||||
which includes useful information on the supported Operating Systems as well as
|
which includes useful information on the supported Operating Systems as well as
|
||||||
the hardware requirements.
|
the hardware requirements.
|
||||||
|
|
||||||
## Installation methods
|
## Installation methods
|
||||||
|
|
||||||
### Choose the best installation method for your needs
|
|
||||||
|
|
||||||
To get the best experience from GitLab you need to balance:
|
To get the best experience from GitLab you need to balance:
|
||||||
|
|
||||||
1. performance
|
1. Performance
|
||||||
1. reliability
|
1. Reliability
|
||||||
1. ease of administration (backups, upgrades and troubleshooting)
|
1. Ease of administration (backups, upgrades and troubleshooting)
|
||||||
1. cost of hosting
|
1. Cost of hosting
|
||||||
|
|
||||||
TIP: **If in doubt, choose Omnibus:**
|
TIP: **If in doubt, choose Omnibus:**
|
||||||
For nearly all GitLab installations we recommend using an Omnibus package **GitLab can support up to 40,000 users on a single box Omnibus installation** with enough CPU and RAM. (See [requirements documentation](install/requirements.md))
|
Our Omnibus GitLab packages are mature, scalable, support
|
||||||
|
[high availability](../administration/high_availability/README.md) and are used
|
||||||
|
today on GitLab.com. Our Helm charts are recommended for those who are familiar
|
||||||
|
with Kubernetes.
|
||||||
|
|
||||||
### Omnibus (recommended)
|
### Install GitLab using the Omnibus GitLab package (recommended)
|
||||||
|
|
||||||
- [Installation using the Omnibus packages](https://about.gitlab.com/downloads/) -
|
This installation method [uses the Omnibus GitLab package](https://about.gitlab.com/install/),
|
||||||
Install GitLab using our official deb/rpm repositories. This is the
|
using our official deb/rpm repositories. This is the recommended way.
|
||||||
recommended way.
|
|
||||||
|
|
||||||
If you need additional flexibility and resilience you can scale GitLab Omnibus as described in our [Scaling and High Availability docs](administration/high_availability/README.md).
|
If you need additional flexibility and resilience, we recommend deploying
|
||||||
|
GitLab as described in our [High Availability documentation](../administration/high_availability/README.md).
|
||||||
|
|
||||||
### Alternative Omnibus
|
### Alternative to Omnibus GitLab
|
||||||
|
|
||||||
- [Installation from source](installation.md) - Install GitLab from source.
|
If the GitLab Omnibus package is not available in your distribution, you can
|
||||||
|
choose between:
|
||||||
|
|
||||||
|
- [Installation from source](installation.md): Install GitLab from source.
|
||||||
Useful for unsupported systems like *BSD. For an overview of the directory
|
Useful for unsupported systems like *BSD. For an overview of the directory
|
||||||
structure, read the [structure documentation](structure.md).
|
structure, read the [structure documentation](structure.md).
|
||||||
- [Docker](docker.md) - Install GitLab Omnibus using Docker.
|
While the recommended database is PostgreSQL, we provide information to install
|
||||||
|
GitLab [using MySQL](database_mysql.md).
|
||||||
|
- [Docker](docker.md): Install Omnibus GitLab using Docker.
|
||||||
|
|
||||||
### Kubernetes via GitLab Helm charts
|
### Install GitLab on Kubernetes via the GitLab Helm charts
|
||||||
|
|
||||||
CAUTION: **If in doubt, choose Omnibus:**
|
NOTE: **If in doubt, choose Omnibus:**
|
||||||
Installing GitLab in Kubernetes is not currently recommended unless you're experienced with Kubernetes and you know why you need GitLab to be installed in Kubernetes.
|
We recommend being familiar with Kubernetes before using it to deploy GitLab in
|
||||||
|
production. The methods for management, observability, and some concepts are
|
||||||
|
different than traditional deployments.
|
||||||
|
|
||||||
GitLab is committed to Kubernetes as a foundational technology. There are three areas where Kubernetes intersects with GitLab:
|
GitLab is committed to Kubernetes as a foundational technology. There are three
|
||||||
|
areas where Kubernetes intersects with GitLab:
|
||||||
|
|
||||||
1. Deploying your applications from GitLab projects to Kubernetes (e.g. see [Auto DevOps](autodevops/index.md))
|
1. Deploying your applications from GitLab projects to Kubernetes (e.g., see [Auto DevOps](../topics/autodevops/index.md)).
|
||||||
1. [Running GitLab CI Runners in a Kubernetes Cluster](runner/install/kubernetes.md)
|
1. [Running GitLab CI/CD Runners in a Kubernetes Cluster](https://docs.gitlab.com/runner/install/kubernetes.html).
|
||||||
1. Installing GitLab in Kubernetes
|
1. Installing GitLab in Kubernetes.
|
||||||
|
|
||||||
While we recommend using GitLab for the first two points above, for most scenarios we do not currently recommend installing GitLab in Kubernetes. There are a number of trade-offs that you need to be aware of that may not be immediately obvious and could prevent you getting the best experience from GitLab:
|
While we recommend using GitLab for the first two points above, for most scenarios
|
||||||
|
we do not currently recommend installing GitLab in Kubernetes. There are a number
|
||||||
|
of trade-offs that you need to be aware of that may not be immediately obvious
|
||||||
|
and could prevent you getting the best experience from GitLab:
|
||||||
|
|
||||||
1. Configuration of features such as object storage, backups and certificates can be more challenging
|
- Configuration of features such as object storage and backups can be more challenging.
|
||||||
1. Administration and troubleshooting requires Kubernetes knowledge
|
- Administration and troubleshooting requires Kubernetes knowledge.
|
||||||
1. It can be more expensive for smaller installations. You need multiple nodes for a basic installation when a single box Omnibus installation would work well
|
- It can be more expensive for smaller installations. The default installation
|
||||||
1. There are some feature [limitations to be aware of](install/kubernetes/gitlab_chart.md#limitations)
|
requires more resources than a single node Omnibus deployment, as most services
|
||||||
|
are deployed in a redundant fashion.
|
||||||
|
- There are some feature [limitations to be aware of](kubernetes/gitlab_chart.md#limitations).
|
||||||
|
|
||||||
Unless you are experienced with Kubernetes and have a very large user-base (thousands of users) we recommend an Omnibus installation at this time.
|
If you're happy with the trade-offs, you can use our official Helm charts to get
|
||||||
|
started and [install GitLab in Kubernetes](kubernetes/index.md).
|
||||||
|
|
||||||
Over time Kubernetes will mature, hosting options will improve, and GitLab Helm charts and documentation will be refined in production environments. We'll update our recommendations as conditions change.
|
### Install GitLab on cloud providers
|
||||||
|
|
||||||
If you're happy with the trade-offs, you can use our official Helm charts to get started with GitLab on Kubernetes:
|
GitLab can be installed on a variety of cloud providers:
|
||||||
|
|
||||||
- [Install in Kubernetes](kubernetes/index.md): Install GitLab into a Kubernetes
|
|
||||||
Cluster using our official Helm Chart Repository.
|
|
||||||
|
|
||||||
### Guides to install GitLab on cloud providers
|
|
||||||
|
|
||||||
- [Install on AWS](aws/index.md): Install GitLab on AWS using the community AMIs that GitLab provides.
|
- [Install on AWS](aws/index.md): Install GitLab on AWS using the community AMIs that GitLab provides.
|
||||||
- [Install GitLab on Google Cloud Platform](google_cloud_platform/index.md)
|
- [Install GitLab on Google Cloud Platform](google_cloud_platform/index.md)
|
||||||
|
@ -78,13 +91,5 @@ If you're happy with the trade-offs, you can use our official Helm charts to get
|
||||||
the full process of installing GitLab on Google Kubernetes Engine (GKE), pushing an application to GitLab, building the app with GitLab CI/CD, and deploying to production.
|
the full process of installing GitLab on Google Kubernetes Engine (GKE), pushing an application to GitLab, building the app with GitLab CI/CD, and deploying to production.
|
||||||
- [Getting started with GitLab and DigitalOcean](https://about.gitlab.com/2016/04/27/getting-started-with-gitlab-and-digitalocean/): requirements, installation process, updates.
|
- [Getting started with GitLab and DigitalOcean](https://about.gitlab.com/2016/04/27/getting-started-with-gitlab-and-digitalocean/): requirements, installation process, updates.
|
||||||
- [Demo: Cloud Native Development with GitLab](https://about.gitlab.com/2017/04/18/cloud-native-demo/): video demonstration on how to install GitLab on Kubernetes, build a project, create Review Apps, store Docker images in Container Registry, deploy to production on Kubernetes, and monitor with Prometheus.
|
- [Demo: Cloud Native Development with GitLab](https://about.gitlab.com/2017/04/18/cloud-native-demo/): video demonstration on how to install GitLab on Kubernetes, build a project, create Review Apps, store Docker images in Container Registry, deploy to production on Kubernetes, and monitor with Prometheus.
|
||||||
- _Testing only!_ [DigitalOcean and Docker Machine](digitaloceandocker.md) -
|
- _Testing only!_ [DigitalOcean and Docker Machine](digitaloceandocker.md):
|
||||||
Quickly test any version of GitLab on DigitalOcean using Docker Machine.
|
Quickly test any version of GitLab on DigitalOcean using Docker Machine.
|
||||||
|
|
||||||
## Database
|
|
||||||
|
|
||||||
While the recommended database is PostgreSQL, we provide information to install
|
|
||||||
GitLab using MySQL. Check the [MySQL documentation](database_mysql.md) for more
|
|
||||||
information.
|
|
||||||
|
|
||||||
[methods]: https://about.gitlab.com/installation/
|
|
||||||
|
|
|
@ -3,8 +3,11 @@
|
||||||
This is the official way to install GitLab on a cloud native environment.
|
This is the official way to install GitLab on a cloud native environment.
|
||||||
For more information on other available GitLab Helm Charts, see the [charts overview](index.md#chart-overview).
|
For more information on other available GitLab Helm Charts, see the [charts overview](index.md#chart-overview).
|
||||||
|
|
||||||
TIP: **If in doubt, choose Omnibus:**
|
TIP: **If in doubt, choose Omnibus GitLab:**
|
||||||
For nearly all GitLab installations we recommend using an Omnibus package. **GitLab can support up to 40,000 users on a single box Omnibus installation** with enough CPU and RAM. (See [requirements documentation](install/requirements.md)). Before starting to install GitLab in Kubernetes, please read [Choose the best installation method for your needs](install/README.md)
|
Our [Omnibus GitLab packages](../README.md#install-gitlab-using-the-omnibus-gitlab-package-recommended)
|
||||||
|
are mature, scalable, support [high availability](../../administration/high_availability/README.md)
|
||||||
|
and are used today on GitLab.com. Our Helm charts are recommended for those who
|
||||||
|
are familiar with Kubernetes.
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
|
|
|
@ -4,14 +4,17 @@ description: 'Read through the different methods to deploy GitLab on Kubernetes.
|
||||||
|
|
||||||
# Installing GitLab on Kubernetes
|
# Installing GitLab on Kubernetes
|
||||||
|
|
||||||
TIP: **If in doubt, choose Omnibus:**
|
TIP: **If in doubt, choose Omnibus GitLab:**
|
||||||
For nearly all GitLab installations we recommend using an Omnibus package. **GitLab can support up to 40,000 users on a single box Omnibus installation** with enough CPU and RAM. (See [requirements documentation](install/requirements.md)). Before starting to install GitLab in Kubernetes, please read [Choose the best installation method for your needs](install/README.md)
|
Our [Omnibus GitLab packages](../README.md#install-gitlab-using-the-omnibus-gitlab-package-recommended)
|
||||||
|
are mature, scalable, support [high availability](../../administration/high_availability/README.md)
|
||||||
|
and are used today on GitLab.com. Our Helm charts are recommended for those who
|
||||||
|
are familiar with Kubernetes.
|
||||||
|
|
||||||
The easiest method to deploy GitLab on [Kubernetes](https://kubernetes.io/) is
|
The easiest method to deploy GitLab on [Kubernetes](https://kubernetes.io/) is
|
||||||
to take advantage of GitLab's Helm charts. [Helm] is a package
|
to take advantage of GitLab's Helm charts. [Helm](https://github.com/kubernetes/helm/blob/master/README.md)
|
||||||
management tool for Kubernetes, allowing apps to be easily managed via their
|
is a package management tool for Kubernetes, allowing apps to be easily managed via their
|
||||||
Charts. A [Chart] is a detailed description of the application including how it
|
Charts. A [Chart](https://github.com/kubernetes/charts) is a detailed description
|
||||||
should be deployed, upgraded, and configured.
|
of the application including how it should be deployed, upgraded, and configured.
|
||||||
|
|
||||||
## GitLab Chart
|
## GitLab Chart
|
||||||
|
|
||||||
|
@ -40,24 +43,21 @@ Learn more about [gitlab-runner chart](gitlab_runner_chart.md).
|
||||||
|
|
||||||
CAUTION: **Deprecated:**
|
CAUTION: **Deprecated:**
|
||||||
These charts are **deprecated**. We recommend using the [GitLab Chart](gitlab_chart.md)
|
These charts are **deprecated**. We recommend using the [GitLab Chart](gitlab_chart.md)
|
||||||
instead. (**Note:** Omnibus is still the recommended installation for most use cases - only the Omnibus Helm chart is deprecated.)
|
instead.
|
||||||
|
|
||||||
### GitLab-Omnibus Chart
|
### GitLab-Omnibus Chart
|
||||||
|
|
||||||
This chart is based on the [GitLab Omnibus Docker images](https://docs.gitlab.com/omnibus/docker/).
|
This chart is based on the [GitLab Omnibus Docker images](https://docs.gitlab.com/omnibus/docker/).
|
||||||
It deploys and configures nearly all features of GitLab, including:
|
It deploys and configures nearly all features of GitLab, including:
|
||||||
|
|
||||||
- a [GitLab Runner](https://docs.gitlab.com/runner/)
|
- [A GitLab Runner](https://docs.gitlab.com/runner/)
|
||||||
- [Container Registry](../../user/project/container_registry.html#gitlab-container-registry)
|
- [Container Registry](../../user/project/container_registry.html#gitlab-container-registry)
|
||||||
- [Mattermost](https://docs.gitlab.com/omnibus/gitlab-mattermost/)
|
- [Mattermost](https://docs.gitlab.com/omnibus/gitlab-mattermost/)
|
||||||
- [automatic SSL](https://github.com/kubernetes/charts/tree/master/stable/kube-lego)
|
- [Automatic SSL](https://github.com/kubernetes/charts/tree/master/stable/kube-lego)
|
||||||
- and an [NGINX load balancer](https://github.com/kubernetes/ingress/tree/master/controllers/nginx).
|
- [An NGINX load balancer](https://github.com/kubernetes/ingress/tree/master/controllers/nginx)
|
||||||
|
|
||||||
Learn more about the [gitlab-omnibus chart](gitlab_omnibus.md).
|
Learn more about the [gitlab-omnibus chart](gitlab_omnibus.md).
|
||||||
|
|
||||||
### Community Contributed Charts
|
### Community Contributed Charts
|
||||||
|
|
||||||
The community has also contributed GitLab [CE](https://github.com/kubernetes/charts/tree/master/stable/gitlab-ce) and [EE](https://github.com/kubernetes/charts/tree/master/stable/gitlab-ee) charts to the [Helm Stable Repository](https://github.com/kubernetes/charts#repository-structure). These charts are [deprecated](https://github.com/kubernetes/charts/issues/1138) in favor of the [official Chart](gitlab_chart.md).
|
The community has also contributed GitLab [CE](https://github.com/kubernetes/charts/tree/master/stable/gitlab-ce) and [EE](https://github.com/kubernetes/charts/tree/master/stable/gitlab-ee) charts to the [Helm Stable Repository](https://github.com/kubernetes/charts#repository-structure). These charts are [deprecated](https://github.com/kubernetes/charts/issues/1138) in favor of the [official Chart](gitlab_chart.md).
|
||||||
|
|
||||||
[chart]: https://github.com/kubernetes/charts
|
|
||||||
[helm]: https://github.com/kubernetes/helm/blob/master/README.md
|
|
||||||
|
|
Loading…
Reference in New Issue