기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Flux
Flux는 GitOps 원칙을 고유한 방식으로 구현하는 Kubernetes용 또 다른 도구입니다.
GitOps 지원
| 영역 | 도구 기능 |
|---|---|
Git을 신뢰할 수 있는 단일 소스로 사용 |
Flux는 Git 리포지토리를 시스템의 원하는 상태를 정의하기 위한 최종 소스로 사용합니다. 애플리케이션 및 인프라에 대한 모든 구성은 Git에 저장됩니다. |
선언적 구성 |
Flux는 클러스터의 원하는 상태에 대한 선언적 설명과 함께 작동합니다. 이러한 설명은 일반적으로 Kubernetes 매니페스트, 차트 Helm 또는 Kustomize 오버레이입니다. |
자동 비동기화 |
Flux는 Git 리포지토리의 변경 사항을 지속적으로 모니터링합니다. 변경 사항을 감지하면 클러스터에 자동으로 적용됩니다. |
Kubernetes 네이티브 |
Flux는 Kubernetes 컨트롤러 및 사용자 지정 리소스 세트로 빌드됩니다. Kubernetes의 확장 메커니즘을 사용하여 GitOps 기능을 제공합니다. |
풀 기반 배포 모델 |
기존 푸시 기반 CI/CD 시스템과 달리 Flux는 풀 기반 모델을 사용합니다. 클러스터는 외부 시스템을 사용하여 변경 사항을 푸시하는 대신 Git에서 원하는 상태를 가져옵니다. |
지속적 조정 |
Flux는 클러스터의 실제 상태를 Git의 원하는 상태와 지속적으로 비교합니다. 이러한 상태 간에 감지된 모든 드리프트를 자동으로 수정합니다. |
멀티테넌시 |
Flux는 Kustomizations 및 HelmReleases 개념을 통해 다중 테넌시를 지원합니다. 팀마다 구성의 자체 부분을 독립적으로 관리할 수 있습니다. |
점진적 전달 |
Flux는 Flagger 구성 요소를 통해 canary 릴리스 및 A/B 테스트와 같은 고급 배포 전략을 지원합니다. |
Helm 통합 |
Flux에는 Helm에 대한 기본 지원이 포함되어 있으므로 GitOps를 통해 Helm 릴리스를 쉽게 관리할 수 있습니다. |
이미지 업데이트 자동화 |
Flux는 컨테이너 레지스트리에서 새 버전을 사용할 수 있을 때 Git에서 컨테이너 이미지를 자동으로 업데이트할 수 있습니다. |
Kustomize 지원 |
Flux for Kustomize에서 제공하는 기본 지원을 사용하여 Kubernetes 매니페스트를 사용자 지정하고 패치할 수 있습니다. |
보안 및 RBAC |
Flux는 액세스 제어를 위해 Kubernetes RBAC와 통합됩니다. 다양한 백엔드를 통한 보안 암호 관리를 지원합니다. |
관찰성 |
Flux는 조정 및 작업에 대한 상태 정보와 지표를 제공합니다. 향상된 관찰성을 위해 모니터링 도구와 통합됩니다. |
이벤트 중심 아키텍처 |
Flux는 이벤트 기반 접근 방식을 사용하여 조정 및 업데이트를 구현합니다. |
확장성 |
이 도구는 확장 가능하도록 설계되었으므로 사용자 지정 컨트롤러와 리소스를 추가할 수 있습니다. |
클러스터 간 동기화 |
Flux는 단일 리포지토리 세트에서 여러 클러스터의 관리를 지원합니다. |
종속성 관리 |
이를 통해 시스템의 여러 부분 간에 종속성을 정의할 수 있으며 올바른 작업 순서를 보장할 수 있습니다. |
Webhook 수신기 |
Git 공급자 또는 기타 시스템으로부터 웹후크를 수신하여 즉시 조정을 시작하도록 Flux를 구성할 수 있습니다. |
Flux는 이러한 GitOps 원칙을 구현하여 Kubernetes 클러스터 및 애플리케이션을 관리하기 위한 강력하고 유연한 시스템을 제공합니다. 이를 통해 인프라 및 애플리케이션이 항상 Git 리포지토리와 동기화되고 복잡한 Kubernetes 환경에서 일관성, 안정성 및 관리 용이성을 제공할 수 있습니다. 이 도구의 Kubernetes 네이티브 접근 방식과 자동화에 초점을 맞추면 클라우드 네이티브 환경에 특히 적합합니다.
Flux가 해결할 수 있는 시나리오 및 요구 사항은이 가이드 뒷부분의 Flux 사용 사례를 참조하세요. Argo CD와 Flux 간의 비교는이 가이드 뒷부분의 기능 비교를 참조하세요.
자세한 내용은 Flux 설명서를
아키텍처
다음 다이어그램은 EKS 클러스터 내에서 Flux를 사용하는 GitOps 기반 CD 워크플로를 보여줍니다. 자세한 내용은 Flux 설명서를
여기서 각 항목은 다음과 같습니다.
-
1단계: 풀 요청(PR) 병합. 개발자는 Git 리포지토리에 저장된 Kubernetes 매니페스트 또는 차트 Helm에 변경 사항을 커밋합니다. PR을 검토하고 기본 브랜치에 병합하면 소스 제어에서 애플리케이션의 원하는 상태가 업데이트됩니다.
-
2단계: 리포지토리 동기화. Flux는 EKS 클러스터의 전용 네임스페이스 내에서 실행되며 구성된 Git 리포지토리를 지속적으로 모니터링합니다. 변경 사항을 감지하면 최신 업데이트를 가져와 선언된 상태를 조정합니다.
-
3단계: 대상 네임스페이스에 배포. Flux는 Git의 원하는 상태를 클러스터의 라이브 상태와 비교합니다. 그런 다음 애플리케이션이 적절히 배포되거나 업데이트되도록 대상 워크로드 네임스페이스에 필요한 변경 사항을 적용합니다.