gitlab-org--gitlab-foss/doc/install/kubernetes/index.md

59 lines
4.3 KiB
Markdown
Raw Normal View History

# Installing GitLab on Kubernetes
> Officially supported cloud providers are Google Container Service and Azure Container Service.
2017-05-09 13:33:09 -04:00
The easiest method to deploy GitLab in [Kubernetes](https://kubernetes.io/) is
2017-08-28 14:18:25 -04:00
to take advantage of GitLab's Helm charts. [Helm] is a package
2017-05-09 13:33:09 -04:00
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
should be deployed, upgraded, and configured.
2017-09-01 00:29:53 -04:00
GitLab provides [official Helm Charts](#official-gitlab-helm-charts-recommended) which are the recommended way to run GitLab within Kubernetes.
2017-08-28 14:18:25 -04:00
2017-08-28 16:03:42 -04:00
There are also two other sets of charts:
2017-08-28 14:18:25 -04:00
* Our [upcoming cloud native Charts](#upcoming-cloud-native-helm-charts), which are in development but will eventually replace the current official charts.
2017-08-29 09:33:38 -04:00
* [Community contributed charts](#community-contributed-helm-charts). These charts should be considered deprecated, in favor of the official charts.
2017-08-28 14:18:25 -04:00
2017-09-01 00:29:53 -04:00
## Official GitLab Helm Charts
2017-08-29 14:39:06 -04:00
These charts utilize our [GitLab Omnibus Docker images](https://docs.gitlab.com/omnibus/docker/README.html). You can report any issues and feedback related to these charts at
https://gitlab.com/charts/charts.gitlab.io/issues.
2017-09-01 00:29:53 -04:00
### Deploying GitLab on Kubernetes
2017-09-02 01:00:16 -04:00
> **Note**: This chart will eventually be replaced by the [cloud native charts](#upcoming-cloud-native-helm-charts), which are presently in development.
2017-05-09 13:33:09 -04:00
2017-09-01 00:29:53 -04:00
The best way to deploy GitLab on Kubernetes is to use the [gitlab-omnibus](gitlab_omnibus.md) chart.
It includes everything needed to run GitLab, including: a [Runner](https://docs.gitlab.com/runner/), [Container Registry](https://docs.gitlab.com/ee/user/project/container_registry.html#gitlab-container-registry), [automatic SSL](https://github.com/kubernetes/charts/tree/master/stable/kube-lego), and an [Ingress](https://github.com/kubernetes/ingress/tree/master/controllers/nginx). This chart is in beta while [additional features](https://gitlab.com/charts/charts.gitlab.io/issues/68) are being completed.
2017-08-28 14:18:25 -04:00
2017-08-29 14:39:06 -04:00
### Deploying just the GitLab Runner
2017-09-01 00:29:53 -04:00
To deploy just the [GitLab Runner](https://docs.gitlab.com/runner/), utilize the [gitlab-runner](gitlab_runner_chart.md) chart.
2017-08-28 14:18:25 -04:00
2017-09-01 00:29:53 -04:00
It offers a quick way to configure and deploy the Runner on Kubernetes, regardless of where your GitLab server may be running.
### Advanced deployment of GitLab
2017-09-02 01:00:16 -04:00
> **Note**: This chart will be replaced by the [gitlab-omnibus](gitlab_omnibus.md) chart, once it supports [additional configuration options](https://gitlab.com/charts/charts.gitlab.io/issues/68).
2017-08-28 14:18:25 -04:00
2017-08-29 14:39:06 -04:00
If advanced configuration of GitLab is required, the beta [gitlab](gitlab_chart.md) chart can be used which deploys the GitLab service along with optional Postgres and Redis. It offers extensive configuration, but requires deep knowledge of Kubernetes and Helm to use.
2017-05-09 13:33:09 -04:00
2017-09-01 00:29:53 -04:00
For most deployments we recommend using our [gitlab-omnibus](gitlab_omnibus.md) chart.
2017-08-28 14:18:25 -04:00
## Upcoming Cloud Native Helm Charts
2017-05-09 13:33:09 -04:00
2017-08-28 16:03:42 -04:00
GitLab is working towards a building a [cloud native deployment method](https://gitlab.com/charts/helm.gitlab.io/blob/master/README.md). A key part of this effort is to isolate each service into it's [own Docker container and Helm chart](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/2420), rather than utilizing the all-in-one container image of the [current charts](#official-gitlab-helm-charts-recommended).
By offering individual containers and charts, we will be able to provide a number of benefits:
* Easier horizontal scaling of each service
* Smaller more efficient images
* Potential for rolling updates and canaries within a service
* and plenty more.
This is a large project and will be worked on over the span of multiple releases. For the most up to date status and release information, please see our [tracking issue](https://gitlab.com/gitlab-org/omnibus-gitlab/issues/2420).
2017-05-09 13:33:09 -04:00
2017-08-28 14:18:25 -04:00
## Community Contributed Helm Charts
2017-08-28 22:44:12 -04:00
The community has also [contributed GitLab charts](https://github.com/kubernetes/charts/tree/master/stable/gitlab-ce) to the [Helm Stable Repository](https://github.com/kubernetes/charts#repository-structure). These charts should be considered [deprecated](https://github.com/kubernetes/charts/issues/1138) in favor of the [official Charts](#official-gitlab-helm-charts-recommended).
2017-08-28 16:03:42 -04:00
2017-05-09 13:33:09 -04:00
[chart]: https://github.com/kubernetes/charts
[helm]: https://github.com/kubernetes/helm/blob/master/README.md