From 4f4fa6125af9c876703046c56af0ec226322e612 Mon Sep 17 00:00:00 2001 From: "J. B. Crawford" Date: Wed, 20 Sep 2023 18:47:24 +0000 Subject: [PATCH 1/2] Expand on issues with in-cluster Gitaly --- doc/administration/reference_architectures/index.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index 2ad9380a00fa67..250bf343a251c6 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -101,7 +101,7 @@ In most cases the downtime required for doing an upgrade shouldn't be substantia ### Cloud Native Hybrid (Kubernetes HA) -As an additional layer of HA resilience you can deploy select components in Kubernetes, known as a Cloud Native Hybrid Reference Architecture. +As an additional layer of HA resilience you can deploy select components in Kubernetes, known as a Cloud Native Hybrid Reference Architecture. Stateful components like Gitaly [cannot be deployed in Kubernetes](#stateful-components-in-kubernetes) for stability reasons. This is an alternative and more **advanced** setup compared to a standard Reference Architecture. Running services in Kubernetes is well known to be complex. **This setup is only recommended** if you have strong working knowledge and experience in Kubernetes. @@ -384,8 +384,7 @@ While we endeavour to try and have a good range of support for GitLab environmen [Running stateful components in Kubernetes, such as Gitaly Cluster, is not supported](https://docs.gitlab.com/charts/installation/#configure-the-helm-chart-to-use-external-stateful-data). -Gitaly Cluster is only supported to be run on VMs as Git itself doesn't match well with the Kubernetes design and attempting to run it can lead to significant and complex issues. -[Refer to epic 6127 for more information](https://gitlab.com/groups/gitlab-org/-/epics/6127). +Gitaly Cluster is only supported on conventional virtual machines. Kubernetes enforces strict memory restrictions, but Git memory usage is unpredictable. This can cause sporadic OOM termination of Gitaly pods, leading to significant disruptions and potential data loss. For this reason and others, Gitaly is not tested or supported in Kubernetes. [Refer to epic 6127 for more information](https://gitlab.com/groups/gitlab-org/-/epics/6127). This also applies to other third-party stateful components such as Postgres and Redis, but you can explore other third-party solutions for those components if desired such as supported Cloud Provider services unless called out specifically as unsupported. -- GitLab From 934afb5777292d9f3f36924cc2dc23cc5dab9dfd Mon Sep 17 00:00:00 2001 From: Evan Read Date: Wed, 20 Sep 2023 22:56:58 +0000 Subject: [PATCH 2/2] Apply 2 suggestion(s) to 1 file(s) --- doc/administration/reference_architectures/index.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/doc/administration/reference_architectures/index.md b/doc/administration/reference_architectures/index.md index 250bf343a251c6..c325c706c94360 100644 --- a/doc/administration/reference_architectures/index.md +++ b/doc/administration/reference_architectures/index.md @@ -101,7 +101,8 @@ In most cases the downtime required for doing an upgrade shouldn't be substantia ### Cloud Native Hybrid (Kubernetes HA) -As an additional layer of HA resilience you can deploy select components in Kubernetes, known as a Cloud Native Hybrid Reference Architecture. Stateful components like Gitaly [cannot be deployed in Kubernetes](#stateful-components-in-kubernetes) for stability reasons. +As an additional layer of HA resilience you can deploy select components in Kubernetes, known as a Cloud Native Hybrid Reference Architecture. For stability +reasons, stateful components such as Gitaly [cannot be deployed in Kubernetes](#stateful-components-in-kubernetes). This is an alternative and more **advanced** setup compared to a standard Reference Architecture. Running services in Kubernetes is well known to be complex. **This setup is only recommended** if you have strong working knowledge and experience in Kubernetes. @@ -384,7 +385,9 @@ While we endeavour to try and have a good range of support for GitLab environmen [Running stateful components in Kubernetes, such as Gitaly Cluster, is not supported](https://docs.gitlab.com/charts/installation/#configure-the-helm-chart-to-use-external-stateful-data). -Gitaly Cluster is only supported on conventional virtual machines. Kubernetes enforces strict memory restrictions, but Git memory usage is unpredictable. This can cause sporadic OOM termination of Gitaly pods, leading to significant disruptions and potential data loss. For this reason and others, Gitaly is not tested or supported in Kubernetes. [Refer to epic 6127 for more information](https://gitlab.com/groups/gitlab-org/-/epics/6127). +Gitaly Cluster is only supported on conventional virtual machines. Kubernetes enforces strict memory restrictions but Git memory usage is unpredictable, which +can cause sporadic OOM termination of Gitaly pods, leading to significant disruptions and potential data loss. For this reason and others, Gitaly is not tested +or supported in Kubernetes. For more information, see [epic 6127](https://gitlab.com/groups/gitlab-org/-/epics/6127). This also applies to other third-party stateful components such as Postgres and Redis, but you can explore other third-party solutions for those components if desired such as supported Cloud Provider services unless called out specifically as unsupported. -- GitLab