Azure Arc 지원 Kubernetes를 사용하는 GitOps Flux v1 구성

Important

이 섹션의 문서는 Flux v1을 사용하는 GitOps용입니다. Flux v2가 포함된 GitOps는 이제 Azure Arc 지원 Kubernetes 및 AKS(Azure Kubernetes Service) 클러스터에서 사용할 수 있습니다. Flux v2가 포함된 GitOps에 대해 알아봅니다. 가능한 한 빨리 Flux v2로 마이그레이션하는 것이 좋습니다.

2024년 1월 1일 이전에 생성된 Flux v1 기반 클러스터 구성 리소스에 대한 지원은 2025년 5월 24일에 종료됩니다. 2024년 1월 1일부터는 새 Flux v1 기반 클러스터 구성 리소스를 만들 수 없습니다.

Kubernetes와 관련하여 GitOps는 Git 리포지토리에서 Kubernetes 클러스터 구성(배포, 네임스페이스 등)의 원하는 상태를 선언하는 방법입니다. 이 선언 뒤에는 연산자를 사용하여 이러한 클러스터 구성의 폴링 및 끌어오기 기반 배포가 수행됩니다. Git 리포지토리에는 다음이 포함될 수 있습니다.

  • 네임스페이스, 구성지도, 배포, 디먼셋 등 유효한 Kubernetes 리소스를 설명하는 YAML 형식 매니페스트입니다.
  • 애플리케이션 배포를 위한 Helm 차트입니다.

GitOps 공간에서 널리 사용되는 오픈 소스 도구인 Flux는 Git 리포지토리에서 Kubernetes 클러스터로의 구성 흐름을 용이하게 하기 위해 Kubernetes 클러스터에 배포할 수 있습니다. Flux는 클러스터 및 네임스페이스 범위 모두에서 해당 연산자의 배포를 지원합니다. 네임스페이스 범위를 사용하여 배포된 flux 연산자는 해당 특정 네임스페이스 내에서 Kubernetes 개체만 배포할 수 있습니다. 클러스터 또는 네임스페이스 범위 중에 선택하는 기능은 동일한 Kubernetes 클러스터에서 다중 테넌트 배포 패턴을 구현하는 데 도움이 됩니다.

구성

Configurations architecture

클러스터와 Git 리포지토리 간 연결은 Azure Resource Manager에서 Azure Arc 지원 Kubernetes 리소스(Microsoft.Kubernetes/connectedClusters로 표시됨)의 위쪽에 구성 리소스(Microsoft.KubernetesConfiguration/sourceControlConfigurations)로 생성됩니다.

구성 리소스 속성은 매니페스트를 끌어올 Git 리포지토리 및 폴링 간격과 같은 적절한 매개 변수를 사용하여 클러스터에 Flux 연산자를 배포하는 데 사용됩니다. 구성 리소스 데이터는 데이터 기밀을 보장하기 위해 Azure Cosmos DB 데이터베이스에 미사용 암호화 상태로 저장됩니다.

클러스터에서 실행되는 것은 config-agent 다음을 담당합니다.

  • Azure Arc 지원 Kubernetes 리소스에서 새로운 또는 업데이트된 구성 리소스 추적.
  • 각 구성 리소스에 대한 Git 리포지토리를 감시하기 위해 Flux 연산자 배포.
  • 구성 리소스에 대한 업데이트 적용.

동일한 Azure Arc 지원 Kubernetes 클러스터에 여러 네임스페이스 범위 구성 리소스를 만들어 다중 테넌트를 획득할 수 있습니다.

참고 항목

  • config-agent는 새로운 또는 업데이트된 구성 리소스를 Azure Arc 지원 Kubernetes 리소스에서 사용할 수 있는지 모니터링합니다. 따라서 에이전트는 클러스터로 끌어올 수 있도록 원하는 상태를 연결해야 합니다. 에이전트가 Azure에 연결할 수 없는 경우 원하는 상태를 클러스터로 전파하는 데 지연이 있습니다.
  • 프라이빗 키, 알려진 호스트 콘텐츠, HTTPS 사용자 이름 및 토큰/암호와 같은 중요한 고객 입력은 Azure Arc 지원 Kubernetes 서비스에 48시간 넘게 저장되지 않습니다. 구성에 중요한 입력을 사용하는 경우 가능한 한 정기적으로 클러스터를 온라인 상태로 설정합니다.

대규모 구성 적용

Azure Resource Manager에서 구성을 관리하므로 구독 또는 리소스 그룹의 범위 내에서 Azure Policy를 사용하여 모든 Azure Arc 지원 Kubernetes 리소스에 대해 동일한 구성 만들기를 자동화할 수 있습니다.

이 대규모 적용을 통해 일반적인 기준 구성(ClusterRoleBindings, RoleBindings, NetworkPolicy와 같은 구성 포함)을 Azure Arc 지원 설정된 Kubernetes 클러스터의 전체 집합 또는 인벤토리에서 적용할 수 있습니다.

다음 단계