Flux v2 구성을 사용하여 대규모로 애플리케이션을 일관되게 배포하고 Azure Policy

Azure Policy를 사용하여 Azure Arc 활성화 Kubernetes(Microsoft.Kubernetes/connectedClusters) 또는 AKS(Microsoft.ContainerService/managedClusters) 클러스터에 Flux v2 구성(Microsoft.KubernetesConfiguration/fluxConfigurations 리소스 종류)을 대규모로 적용할 수 있습니다.

Azure Policy를 사용하려면 기본 제공 정책 정의를 선택하고 정책 할당을 만듭니다. Flux를 검색하여 Flux v2 정책 정의를 모두 찾을 수 있습니다. 정책 할당을 만들 때:

  1. 할당의 범위를 설정합니다.
    • 이 범위에는 구독 또는 관리 그룹 또는 특정 리소스 그룹의 모든 리소스 그룹이 해당됩니다.
  2. 생성될 Flux v2 구성의 매개 변수를 설정합니다.

할당이 만들어지면 Azure Policy 엔진은 범위 내에 있는 모든 Azure Arc 활성화 Kubernetes 클러스터를 식별하고 각 클러스터에 GitOps 구성을 적용합니다.

문제를 분할하기 위해 각각 다른 원본을 가리키는 다른 Flux v2 구성이 있는 여러 정책 할당을 만들 수 있습니다. 예를 들어 클러스터 관리자가 하나의 Git 리포지토리를 사용하고 애플리케이션 팀에서 기타 리포지토리를 사용할 수 있습니다.

이러한 시나리오에는 기본으로 제공되는 정책 정의가 있습니다.

  • Flux 확장 설치(모든 시나리오에 필요): Configure installation of Flux extension on Kubernetes cluster
  • 퍼블릭 Git 리포지토리를 사용하는 Flux 구성(일반적으로 테스트 시나리오): Configure Kubernetes clusters with Flux v2 configuration using public Git repository
  • SSH 인증과 함께 프라이빗 Git 리포지토리를 사용하는 Flux 구성: Configure Kubernetes clusters with Flux v2 configuration using Git repository and SSH secrets
  • HTTPS 인증과 함께 프라이빗 Git 리포지토리를 사용하는 Flux 구성: Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS secrets
  • HTTPS CA 인증서 인증과 함께 프라이빗 Git 리포지토리를 사용하는 Flux 구성: Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS CA Certificate
  • 로컬 K8s 비밀과 함께 프라이빗 Git 리포지토리를 사용하는 Flux 구성: Configure Kubernetes clusters with Flux v2 configuration using Git repository and local secrets
  • 프라이빗 버킷 원본 및 KeyVault 비밀을 사용하는 Flux 구성: Configure Kubernetes clusters with Flux v2 configuration using Bucket source and secrets in KeyVault
  • 프라이빗 버킷 원본 및 로컬 K8s 비밀을 사용하는 Flux 구성: Configure Kubernetes clusters with specified Flux v2 Bucket source using local secrets

필수 구성 요소

이 정책 할당을 만들 범위(구독 또는 리소스 그룹)에 Microsoft.Authorization/policyAssignments/write 사용 권한이 있는지 확인합니다.

정책 할당 만들기

  1. Azure Portal에서 정책으로 이동합니다.
  2. 사이드바의 작성 섹션에서 정의를 선택합니다.
  3. "Kubernetes" 범주에서 "비밀 없이 지정된 GitOps 구성을 사용하여 Kubernetes 클러스터 구성" 기본 제공 정책 정의를 선택합니다.
  4. 할당을 선택합니다.
  5. 정책 할당이 적용되는 관리 그룹, 구독 또는 리소스 그룹으로 범위를 설정합니다.
    • 정책 할당 범위에서 리소스를 제외하려면 제외를 설정합니다.
  6. 정책 할당에 쉽게 식별할 수 있는 이름설명을 작성합니다.
  7. 정책 적용사용됨으로 설정되어 있는지 확인합니다.
  8. 다음을 선택합니다.
  9. 사용할 매개 변수 값을 설정합니다.
    • 매개 변수에 대한 자세한 정보는 Flux v2 구성 배포 자습서를 참조하세요.
    • Flux 구성을 만들 때 이러한 매개 변수 repositoryRefBranch, repositoryRefTag, repositoryRefSemver, repositoryRefCommit 중 오직 하나에 대한 값을 제공해야 합니다.
  10. 다음을 선택합니다.
  11. 수정 작업 만들기를 사용합니다.
  12. 관리 ID 만들기가 선택되어 있는지, ID에 참가자 사용 권한이 있는지 확인합니다.
  13. 검토 + 만들기를 선택합니다.

정책 할당을 만든 후에는 정책 할당 범위 내에서 생성된 새 Azure Arc 활성화 Kubernetes 또는 AKS 클러스터에 구성이 적용됩니다.

기존 클러스터의 경우 수정 작업을 수동으로 실행해야 합니다. 이 작업에서 정책 할당의 효력이 발생하는 데 일반적으로 10~20분이 소요됩니다.

정책 할당 확인

  1. Azure Portal에서 Azure Arc 활성화 Kubernetes 또는 AKS 클러스터 중 하나로 이동합니다.
  2. 사이드바의 설정 섹션에서 GitOps를 선택합니다.
    • 목록에는 정책 할당에서 만든 구성이 표시되어야 합니다.
  3. 사이드바의 Kubernetes 리소스 섹션에서 네임스페이스워크로드를 선택합니다.
    • Flux 구성에서 만든 네임스페이스 및 아티팩트가 표시됩니다.
    • 클러스터에 배포되는 Git 리포지토리의 매니페스트에 설명된 개체가 표시됩니다.

정책 사용자 지정

기본 제공 정책은 Kubernetes 클러스터에서 Flux v2와 함께 GitOps를 사용하기 위한 주요 시나리오를 다룹니다. 그러나 Azure Policy 할당에서 허용되는 매개 변수의 수 제한(최대 20개)으로 인해 기본 제공 정책에 모든 매개 변수가 있는 것은 아닙니다. 또한 20 매개 변수 제한에 맞게 기본 제공 정책을 사용하여 단일 Kustomization만 만들 수 있습니다.

기본 제공 정책과 다른 시나리오가 있는 경우 기본 제공 정책을 템플릿으로 사용하여 사용자 지정 정책을 만들어 제한을 극복할 수 있습니다. 필요한 매개 변수만 포함하는 사용자 지정 정책을 만들고 나머지를 하드 코딩하여 20 매개 변수 제한을 해결할 수 있습니다.

다음 단계

Azure Arc 활성화 Kubernetes 클러스터를 사용하는 컨테이너용 Azure Monitor를 설정하세요.