8장. Argo Rollouts에 대한 고가용성 지원 활성화


Argo Rollouts는 RolloutManager CR(사용자 정의 리소스)에서 HA(고가용성) 활성화를 지원합니다. Argo Rollouts에서 고가용성을 구성하면 Red Hat OpenShift GitOps Operator는 RolloutManager CR의 .spec.ha 필드를 사용하여 Argo Rollouts 컨트롤러의 Pod 수를 2로 자동으로 설정합니다. 또한 리더 선택을 활성화하여 활성 상태 프로세스에서 Pod를 실행할 수 있습니다. 단일 Pod는 롤아웃을 적극적으로 관리하지만 다른 Pod는 수동 상태로 유지되므로 노드가 실패할 경우 추가 복제본에서 중복성과 가용성을 제공할 수 있습니다.

이 기능은 다운타임이나 수동 개입 없이 실행되도록 Rollouts 컨트롤러에 이점을 제공합니다. 또한 두 번째 복제본은 컨트롤러의 원활한 실행을 보장하므로 계획된 유지 관리 중에도 작동합니다. Argo Rollout에서 고가용성을 활성화하면 노드 장애 또는 워크로드가 많은 경우에도 컨트롤러가 안정적이고 탄력적으로 유지됩니다.

Red Hat OpenShift GitOps Operator는 기본적으로 anti-affinity 규칙이 적용되도록 합니다. 이러한 규칙은 사용자 정의되어 있지 않지만 단일 장애 지점을 방지하기 위해 컨트롤러 pod가 다른 노드에 배포되도록 하여 노드 장애에 대한 탄력성을 제공합니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 관리자로 로그인되어 있습니다.
  • OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps 를 설치했습니다.
  • OpenShift Container Platform 클러스터에 Argo 롤아웃 이 설치되어 있어야 합니다.

8.1. Argo 롤아웃의 고가용성 구성

고가용성을 활성화하려면 다음 단계를 완료하여 RolloutManager CR(사용자 정의 리소스)에서 ha 사양을 구성합니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에 클러스터 관리자로 로그인합니다.
  2. 관리자 화면에서 Operator 설치된 Operator 를 클릭합니다.
  3. 프로젝트 드롭다운 메뉴에서 RolloutManager CR을 생성하고 구성할 프로젝트를 생성하거나 선택합니다.
  4. 설치된 Operator에서 Red Hat OpenShift GitOps 를 선택합니다.
  5. 세부 정보 탭의 제공된 API 섹션에서 RolloutManager 창에서 인스턴스 생성 을 클릭합니다.
  6. RolloutManager 생성 페이지에서 YAML 보기를 선택하고 YAML 을 편집합니다.

    RolloutManager CR에서 ha 필드 활성화 예

    apiVersion: argoproj.io/v1alpha1
    kind: RolloutManager
    metadata:
      name: argo-rollouts
      namespace: openshift-gitops
    spec:
      ha:
        enabled: true 1

    1
    고가용성이 활성화되어 있는지 여부를 지정합니다. 값을 true 로 설정하면 고가용성이 활성화됩니다.
  7. 생성을 클릭합니다.
  8. RolloutManager 탭의 RolloutManagers 섹션에서 RolloutManager 인스턴스의 Status 필드에 Phase: Available 이 표시되는지 확인합니다.
  9. 다음 단계를 완료하여 롤아웃 배포 상태를 확인합니다.

    1. 관리자 관점에서 워크로드 배포를 클릭합니다.
    2. argo-rollouts 배포를 클릭합니다.
    3. 세부 정보 탭을 클릭하고 롤아웃 배포의 복제본 수가 이제 2로 설정되어 있는지 확인합니다.
    4. YAML 탭을 클릭하고 다음 구성이 표시되는지 확인합니다.

      Argo 롤아웃 배포 구성 파일의 예

      kind: Deployment
      metadata:
        name: argo-rollouts
        namespace: openshift-gitops
      spec:
        replicas: 2 1
        selector:
          matchLabels:
            app.kubernetes.io/name: argo-rollouts
        template:
          metadata:
            creationTimestamp: null
            labels:
              app.kubernetes.io/name: argo-rollouts
          spec:
            containers:
                args:
                  - '--leader-elect'
                  - 'true' 2

      1
      Pod 수를 지정합니다.
      2
      --leader-elect=true 플래그가 Rollouts 배포에 전달되도록 지정합니다. 이 플래그가 기본적으로 true 로 설정되어 있지만 명시적으로 설정하면 리더 선택이 일관되게 적용됩니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.