2.5.3. RollingSync 전략 구성


라벨에 따라 단계적으로 애플리케이션을 업데이트하도록 RollingSync 전략을 구성할 수 있습니다. 이를 통해 애플리케이션을 그룹화하고 순차적으로 업데이트하여 제어된 진행형 배포를 제공할 수 있습니다. Progressive Sync가 활성화되면 GitOps 웹 UI에 롤아웃 상태가 표시됩니다.

사전 요구 사항

  • ApplicationSet 리소스를 생성했습니다.
  • ApplicationSet에서 생성한 애플리케이션에는 그룹화에 사용할 수 있는 라벨이 있습니다.
  • ApplicationSet 구성을 편집할 수 있습니다.
  • UI에서 롤아웃 상태를 보려면 Argo CD 인스턴스에서 Progressive Sync를 활성화했습니다.

절차

  1. RollingSync 전략을 사용하여 ApplicationSet 사용자 지정 리소스를 생성하거나 편집합니다.

    apiVersion: argoproj.io/v1alpha1
    kind: ApplicationSet
    metadata:
      name: guestbook-rollingsync
      namespace: openshift-gitops
    spec:
      generators:
        - list:
            elements:
              - cluster: in-cluster
                env: dev
              - cluster: in-cluster
                env: qa
              - cluster: in-cluster
                env: prod
      strategy:
        type: RollingSync
        rollingSync:
          steps:
            - matchExpressions:
                - key: envLabel
                  operator: In
                  values: [dev]
            - matchExpressions:
                - key: envLabel
                  operator: In
                  values: [qa]
              maxUpdate: 0
            - matchExpressions:
                - key: envLabel
                  operator: In
                  values: [prod]
              maxUpdate: 10%
      template:
        metadata:
          name: 'guestbook-{{.env}}'
          labels:
            envLabel: '{{.env}}'
        spec:
          project: default
          source:
            repoURL: https://github.com/your-org/your-repo.git
            targetRevision: HEAD
            path: guestbook/{{.env}}
          destination:
            server: https://kubernetes.default.svc
            namespace: guestbook-{{.env}}

    다음과 같습니다.

    metadata.name
    ApplicationSet 리소스의 이름을 지정합니다.
    metadata.namespace
    ApplicationSet이 배포된 네임스페이스를 지정합니다.
    spec.strategy.type
    생성 전략 유형을 지정합니다. RollingSync 로 설정하여 준비된 애플리케이션 업데이트를 활성화합니다.
    spec.strategy.rollingSync.steps
    라벨 선택기를 사용하여 순차적 롤아웃 단계를 정의합니다.
    matchExpressions.key
    애플리케이션을 그룹화하는 데 사용되는 레이블 키(예: envLabel 또는 tier)를 지정합니다.
    matchExpressions.operator
    일치하는 라벨의 연산자를 지정합니다(예: In).
    matchExpressions.values
    이 단계에서 업데이트할 애플리케이션의 레이블 값을 지정합니다(예: [dev]).
    maxUpdate
    (선택 사항) 단계 내에서 동시에 업데이트할 애플리케이션의 최대 백분율(예: 10%)을 지정합니다. 애플리케이션을 한 번에 하나씩 순차적으로 처리하려면 0 으로 설정합니다.
  2. YAML 파일을 적용합니다.

    $ oc apply -f guestbook-rollingsync.yaml

검증

  1. RollingSync 전략이 구성되었는지 확인합니다.

    $ oc get applicationset guestbook-rollingsync -n openshift-gitops -o yaml
  2. ApplicationSet을 업데이트하고 애플리케이션이 단계별로 업데이트되었는지 확인합니다.

    $ oc get applications -n openshift-gitops -l app.kubernetes.io/instance=guestbook-rollingsync -w
  3. Progressive Sync가 활성화된 경우 Argo CD 웹 UI에서 Progressive Sync 패널을 확인합니다.

    1. 배포된 애플리케이션의 Argo CD 애플리케이션 세부 정보 페이지로 이동합니다.
    2. 애플리케이션 상태 패널에서 롤아웃 상태가 표시되는 PROGRESSIVE SYNC 섹션이 표시됩니다.

      Progressive Sync 패널에는 다음 정보가 표시됩니다.

      필드설명

      점진적 동기화 상태

      상태: 대기 중, 보류 중,진행 중 또는 Healthy

      마지막 전환

      마지막 상태 변경의 타임 스탬프

      메시지

      추가 세부 정보 또는 오류 메시지

참고
  • ApplicationSet 컨트롤러를 사용하여 애플리케이션을 배포할 때 Argo CD 컨트롤러는 자체 네임스페이스에서 애플리케이션만 관리합니다. 다른 네임스페이스에서 애플리케이션이 생성되면 인식되지 않습니다.
  • RollingSync는 matchExpressions 를 기반으로 애플리케이션 그룹을 순차적으로 업데이트하고 rollingSync.steps 필드는 레이블 선택기를 사용하여 동기화할 그룹과 순서를 정의합니다.
  • 단계의 라벨 선택기와 일치하지 않는 애플리케이션은 자동으로 업데이트되지 않으며 수동으로 동기화해야 합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동