목표

이 프로젝트의 목표는 다음과 같습니다.

  1. 수평적으로 쉽게 확장 가능해야 합니다.
  2. 배포, 업그레이드, 유지 관리가 쉬워야 합니다.
  3. 다양한 클라우드 서비스 제공업체를 넓게 지원해야 합니다.
  4. 쿠버네티스 및 헬름의 초기 지원을 통해, 향후 다른 스케줄러를 지원할 수 있는 유연성을 가지고 있어야 합니다.

스케줄러

우리는 산업 전반에서 성숙하고 널리 지원되는 Kubernetes를 지원하여 출시할 것입니다. 그러나 우리의 설계 일부로, 다른 스케줄러의 지원을 배제하는 결정을 피하려고 노력할 것입니다. 이는 특히 OpenShift와 Tectonic과 같은 하위 Kubernetes 프로젝트에도 적용됩니다. 향후에는 Docker Swarm 및 Mesosphere와 같은 다른 스케줄러도 지원될 수 있습니다.

우리의 목표는 Kubernetes의 확장 및 자가 치유 능력을 지원하는 것입니다:

  • 포드가 작동 중인지 확인하고 그렇지 않으면 재활용하기 위한 중요성과 건강 상태 확인
  • 검토를 지원하여 안정적인 롤링 배포를 지원합니다.
  • 자동 확장을 위한 추적

우리는 표준 Kubernetes 기능을 활용하려고 노력할 것입니다:

  • 구성을 관리하기 위한 ConfigMaps. 이는 다음으로 도커 컨테이너에 매핑되거나 전달될 것입니다.
  • 민감한 데이터를 위한 Secrets

우리는 Consul을 사용할 수도 있기 때문에, 다른 설치 방법과 일관성을 유지하기 위해 이것을 대신 사용할 수도 있습니다.

헬름 차트

헬름 차트는 각 GitLab 특정 컨테이너/서비스의 배포를 관리하기 위해 생성될 것입니다. 그런 다음, 전반적인 배포를 쉽게 만들기 위해 번들 차트를 포함할 것입니다. 이는 이 노력에서 특히 중요합니다. 왜냐하면 도커와 쿠버네티스 레이어에는 올인원 오미버스 기반 솔루션보다 훨씬 더 많은 복잡성이 있기 때문입니다. 헬름은 이 복잡성을 관리하고 values.yaml 파일을 통해 설정을 쉽게 관리할 수 있는 간단한 최상위 인터페이스를 제공할 수 있습니다.

우리는 세 가지 계층으로 된 헬름 차트 세트를 제공할 계획입니다:

헬름 차트 구조