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 확장이 클러스터에 배포되었는지 확인해야 합니다. 먼저 선택한 범위의 모든 클러스터(구독 또는 관리 그룹의 모든 리소스 그룹 또는 특정 리소스 그룹)에 확장을 배포하는 정책을 할당하여 이 작업을 수행할 수 있습니다. 그런 다음, 구성을 배포하는 정책 할당을 만들 때 해당 범위의 클러스터에 적용할 Flux 구성에 대한 매개 변수를 설정합니다.

문제를 분할하기 위해 각각 다른 원본을 가리키는 다른 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

Flux v2 정책 정의를 모두 찾으려면 flux를 검색합니다. 자세한 내용은 Azure Arc 지원 Kubernetes에 대한 Azure Policy 기본 제공 정의를 참조하세요.

필수 조건

  • 하나 이상의 Arc 지원 Kubernetes 클러스터 및/또는 AKS 클러스터.
  • 정책 할당을 만들 범위(구독 또는 리소스 그룹)에 대한 Microsoft.Authorization/policyAssignments/write 권한입니다.

Flux 확장을 설치하는 정책 할당 만들기

정책이 Flux v2 구성을 클러스터에 적용하려면 먼저 Flux 확장을 클러스터에 설치해야 합니다. 확장이 각 클러스터에 설치되도록 하려면 Kubernetes 클러스터에 Flux 확장 설치 구성 정책 정의를 원하는 범위에 할당합니다.

  1. Azure Portal에서 정책으로 이동합니다.
  2. 사이드바의 작성 섹션에서 정의를 선택합니다.
  3. "Kubernetes" 범주에서 Kubernetes 클러스터에 Flux 확장 설치 구성 기본 제공 정책 정의를 선택합니다.
  4. 할당을 선택합니다.
  5. 정책 할당이 적용되는 관리 그룹, 구독 또는 리소스 그룹으로 범위를 설정합니다.
    • 정책 할당 범위에서 리소스를 제외하려면 제외를 설정합니다.
  6. 정책 할당에 쉽게 식별할 수 있는 할당 이름설명을 제공합니다.
  7. 정책 적용사용됨으로 설정되어 있는지 확인합니다.
  8. 검토 + 생성를 선택한 다음, 생성를 선택합니다.

Flux 구성을 적용하는 정책 할당 만들기

다음으로, 정책작성 섹션에 있는 정의 목록으로 돌아가서 구성 정책 정의를 동일한 범위에 적용합니다.

  1. "Kubernetes" 범주에서 공용 Git 리포지토리를 사용하여 Flux v2 구성으로 Kubernetes 클러스터 구성 기본 정책 정의를 선택하거나 Flux 구성을 적용할 다른 정책 정의 중 하나를 선택합니다.

  2. 할당을 선택합니다.

  3. 범위는 제외를 포함하여 첫 번째 정책을 할당할 때 선택한 것과 동일한 범위로 설정합니다.

  4. 정책 할당에 쉽게 식별할 수 있는 할당 이름설명을 제공합니다.

  5. 정책 적용사용됨으로 설정되어 있는지 확인합니다.

  6. 다음을 선택한 후, 다음을 다시 선택하여 매개 변수 탭을 엽니다.

  7. 사용할 매개 변수 값을 설정합니다.

    • 매개 변수에 대한 자세한 정보는 Flux v2 구성 배포 자습서를 참조하세요.
    • Flux 구성을 만들 때 이러한 매개 변수 repositoryRefBranch, repositoryRefTag, repositoryRefSemver, repositoryRefCommit 중 오직 하나에 대한 값을 제공해야 합니다.
  8. 다음을 선택하여 수정 작업을 엽니다.

  9. 수정 작업 만들기를 사용합니다.

  10. 관리 ID 만들기가 선택되어 있는지, ID에 기여자 권한이 있는지 확인합니다. 자세한 내용은 빠른 시작: 비준수 리소스를 식별하기 위한 정책 할당 만들기Azure Policy를 사용하여 비준수 리소스 수정을 참조하세요.

  11. 검토 + 생성를 선택한 다음, 생성를 선택합니다.

그런 다음, 정책 할당 범위 내에서 만든 새 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 매개 변수 제한을 해결할 수 있습니다.

다음 단계