GitLab 헬름 차트 3.0

우리는 차트 의존성에서 몇 가지 주요 변경 사항을 수용하기 위해 차트 버전을 3.0으로 상향 조정했습니다. 일부 변경 사항은 업그레이드를 완료하기 위해 매뉴얼 조치가 필요합니다.

주요 변경 내용 요약

문제가 있는 Helm 2.15

Helm v2.15.x에는 심각한 버그가 있어서 절대 사용해서는 안 됩니다.

Helm 2를 사용해야 하는 경우 2.14.3 또는 >= 2.16.1을 사용하세요.

2.x에서의 업그레이드 경로

차트의 3.0 버전으로 업그레이드하려면 먼저 차트의 최신 2.6.x 릴리스로 업그레이드해야 합니다. 최신 패치에 대한 버전 매핑 세부 정보를 확인하세요.

최신 2.6.x 패치로 업그레이드하지 않으면 helm upgrade에서 다음과 같은 오류가 발생합니다.

Error: UPGRADE FAILED: Job failed: BackoffLimitExceeded

그러면 이름에 gitlab-upgrade-check 텍스트가 포함된 오류가 있는 pod을 찾아 이 상황인지 확인할 수 있습니다.

이 상황에서 해당 pod의 로그를 확인하면 다음과 같은 버전 업그레이드 오류 메시지가 표시됩니다.

이제 GitLab Helm 차트를 X (GitLab X)에서 3.0.0 (GitLab 12.7.0)으로 업그레이드하고 있다는 것으로 보입니다.
다음 주요 버전으로 이동하기 전에 해당 주요 버전 시리즈에서 마지막 소수 버전으로 업그레이드해야 합니다.
다음 링크(https://docs.gitlab.com/charts/releases/3_0.html)에 있는 업그레이드 문서를 따라가고 GitLab Helm 차트 버전 2.6.0으로 업그레이드하세요.

2.6.x에서의 업그레이드

3.0 차트로 업그레이드하려면 일부 컴포넌트를 업데이트하기 위해 매뉴얼 업그레이드 단계가 필요합니다. 3.0 릴리스를 위한 업그레이드 단계를 따르세요.

주요 변경 사항

PostgreSQL

이 차트의 3.0.0 릴리스의 일환으로 번들로 제공되는 PostgreSQL 차트가 0.11.0에서 7.7.3으로 업그레이드되었습니다. 이로 인해 데이터베이스 버전이 9.6에서 10.9로 업그레이드되었습니다. 이는 단순히 대체할 수 없는 업그레이드가 아닙니다. 데이터베이스를 업그레이드하려면 매뉴얼 단계가 필요합니다.

3.0 업그레이드 단계에는 업그레이드 중 필요한 매뉴얼 단계가 포함되어 있습니다.

자세한 내용은 PostgreSQL 업그레이드 이슈에서 찾을 수 있습니다.

note
외부 PostgreSQL 차트를 사용하는 경우 이 릴리스를 위해 데이터베이스를 변경할 필요가 없습니다. 9.6은 여전히 지원되지만 PostgreSQL을 10으로 업그레이드하는 것을 권장합니다.

NGINX Ingress

우리는 이슈 #1710를 해결하고자 했습니다. 이 변경 사항은 _미래_의 업그레이드를 수정하지만 3.0 이전 버전의 차트에서 업그레이드할 때 매뉴얼 개입이 필요합니다.

3.0 업그레이드 단계에는 업그레이드 중 필요한 매뉴얼 단계가 포함되어 있습니다.

이에 대한 자세한 내용은 Immutable Field Error, spec.clusterIP 하에서 문제 해결 문서에서 찾을 수 있습니다.

Redis

우리의 Redis 업그레이드의 일환으로 Redis 및 Redis HA 차트의 포크를 삭제하고 대신 상위 버전 Redis 차트를 사용하도록 전환했습니다. 이렇게 함으로써 Redis 5.x를 사용하게 되었으며 성능이 향상되었습니다.

  • 이전 번들 Redis 차트 사용자의 경우, 새로운 Redis 버전으로 업그레이드하려면 추가적인 변경 사항이 필요하지 않습니다.
  • 이전 Redis HA 차트 사용자의 경우 Redis를 HA 구성으로 사용하도록 하려면 추가 플래그를 활성화해야 합니다.
  • 외부 Redis 데이터베이스 사용자의 경우 번들로 제공되는 데이터베이스 비활성화 구문이 redis.enabled=false에서 redis.install=false로 변경되었습니다.
note
번들로 제공되는 Redis는 이전 설치보다 다른 Persistent Volume을 사용합니다. 이는 업그레이드 중에 다운타임이 발생하며 모든 사용자 세션이 완료되면 로그아웃될 것을 의미합니다.

Prometheus

Prometheus 차트가 10.0.0으로 업데이트되었습니다. 이로써 차트의 최신 변경 사항이 포함되었으며 Kubernetes 1.16에 설치를 방지했던 사용되지 않는 API를 삭제했습니다.

이 컴포넌트는 매뉴얼 업그레이드 단계가 필요하지 않지만, 사용자가 이미 9.0 Prometheus 차트로 업그레이드했는지 확인해야 합니다. 저희는 2.5.0에서 9.0을 포함시켰기 때문에, 이 3.0 릴리스에 새로운 버전을 추가했으므로 업그레이드하는 사용자는 2.6.0 릴리스 이상의 GitLab Helm 차트를 사용해야 합니다.

자세한 내용은 Prometheus 업그레이드 이슈를 참조하세요.

Sidekiq Selector

이전에 Sidekiq 차트는 배포에 고유한 선택기를 할당하지 않았습니다. 이로 인해 배포는 자신의 Sidekiq pod을 올바르게 식별하지 못하고 필요한 경우 정리하지 못했습니다.

이 선택기는 Deployment Spec의 변경할 수 없는 필드이므로 이를 업데이트하려면 Sidekiq 배포를 삭제한 다음 다시 만들어야 합니다. 이 3.0.0 릴리스의 일환으로 Helm이 Sidekiq Deployments,HPAs, 및 Pods 이름에 -v1을 추가하여 자동으로 수행됩니다.

특정 문서에서의 Immutable Field Error에 대한 자세한 내용을 확인할 수 있습니다.

1.x에서의 업그레이드 경로

3.0으로 업그레이드하려면 먼저 차트의 2.6.x 릴리스로 업그레이드해야 합니다. 2.0 업그레이드 문서를 따르세요.

이미 알려진 문제 및 제약 사항

아래는 알려진 문제 및 제약 사항의 디렉터리입니다. 물론 모두를 나열한 것은 아닐 수 있습니다.

Helm 차트 문제/제약 사항:

현재 범위를 벗어난 기능:

릴리스 주기

우리는 각 새로운 GitLab 패치와 함께 차트의 새 버전을 릴리스할 것입니다.

차트의 버전 관리 방법에 대한 자세한 정보는 릴리스 문서에서 찾을 수 있습니다.

이 리포지터리의 이슈 및 Merge Request과 함께 변경 로그를 사용하여 업데이트를 더 쉽게 따라갈 수 있습니다.

Kubernetes 배포 지원

GitLab은 다음과 같이 테스트됩니다:

기타 Kubernetes 배포도 작동할 것으로 예상됩니다. 구체적인 비 GKE 배포 문제가 발생할 경우, 이슈를 올려주시기 바랍니다.

자동화된 테스트에서는 현재 Kubernetes 버전 1.12.10을 사용하고 있으며, 개발에는 1.13.11을 사용하고 있습니다.

기술 지원

이슈를 열기 전에 알려진 이슈 및 제한 사항을 검토하시고, 유사한 문제가 이미 존재하는지 검색해 보시기 바랍니다.

커뮤니티에 의한 폭넓은 테스트를 감사히 여기며, 문제를 보고해 주시면 성의껏 대응하겠습니다.

우리는 Merge Request 형태로 기여된 어떠한 개선 사항도 환영합니다.