Kubernetes 클러스터와 함께 GitOps 사용
GitLab과 Flux를 사용하여 Kubernetes 클러스터에 GitOps 배포를 구성하는 방법.
GitLab은 GitOps를 위해 Flux 를 통합합니다. Flux를 시작하려면 GitOps를 위한 Flux 튜토리얼 을 참고합니다. GitOps를 사용하면 다음과 같은 Git 리포지터리에서 컨테이너화된 클러스터와 애플리케이션을 관리할 수 있습니다: 시스템의 단일 진실 공급원(Single Source Of Truth, SSOT)인 리포지터리. 시스템을 운영하는 단일 장소인 리포지터리. GitLab, Kubernetes, GitOps를 결합하면 다음을 갖출 수 있습니다: GitOps 오퍼레이터로서의 GitLab. 자동화 및 수렴 시스템으로서의 Kubernetes. 지속적 통합을 위한 GitLab CI/CD. 지속적 배포와 클러스터 관측을 담당하는 에이전트. 기본으로 제공되는 자동 드리프트 교정. 여러 주체의 필드 관리를 투명하게 다루는 서버 사이드 적용 기반 리소스 관리. 배포 순서 # 다음 다이어그램은 GitOps 배포의 리포지터리와 주요 주체를 보여 줍니다: Mermaid 다이어그램 (23줄) 소스 코드 보기 %%{init: { "fontFamily": "GitLab Sans" }}%% sequenceDiagram accTitle: Deployment sequence accDescr: Shows the repositories and main actors in a GitOps deployment. participant D as Developer participant A as Application code repository participant M as Deployment repository participant R as OCI registry participant C as Agent configuration repository participant K as GitLab agent participant F as Flux loop Regularly K-->>C: Grab the configuration end D->>+A: Pushing code changes A->>M: Updating manifest M->>R: Build an OCI artifact M->>K: Notify K->>F: Notify and watch sync R-->>F: Pulling and applying changes K->>M: Notify after sync GitOps 배포에는 Flux와 agentk 를 함께 사용해야 합니다. Flux는 클러스터 상태를 소스와 동기화된 상태로 유지하고, agentk 는 Flux 설정을 단순화하고 클러스터와 GitLab 사이의 액세스 관리를 제공하며 GitLab UI에서 클러스터 상태를 시각화합니다. 소스 제어를 위한 OCI # Flux의 소스 컨트롤러로는 Git 리포지터리 대신 OCI 이미지를 사용해야 합니다. GitLab 컨테이너 레지스트리 는 OCI 이미지를 지원합니다. OCI 레지스트리 Git 리포지터리 대규모로 컨테이너 이미지를 제공하도록 설계됨. 소스 코드를 버전 관리하고 저장하도록 설계됨. 변경 불가, 보안 스캔