1.5. Operator 업그레이드 롤백


Operator 업그레이드를 롤백하려면 다음 섹션 중 하나에 설명된 단계를 수행해야 합니다. CLI 또는 OpenShift Container Platform 웹 콘솔을 사용하여 Operator 업그레이드를 롤백할 수 있습니다.

참고

RHACS 4.0에서 롤백하는 경우 RHACS 3.74의 최신 패치 릴리스 버전으로만 롤백할 수 있습니다.

1.5.1. CLI를 사용하여 Operator 업그레이드 롤백

CLI 명령을 사용하여 Operator 버전을 롤백할 수 있습니다.

절차

  1. 다음 명령을 실행하여 OLM 서브스크립션을 삭제합니다.

    • OpenShift Container Platform의 경우 다음 명령을 실행합니다.

      $ oc -n rhacs-operator delete subscription rhacs-operator
    • Kubernetes의 경우 다음 명령을 실행합니다.

      $ kubectl -n rhacs-operator delete subscription rhacs-operator
  2. 다음 명령을 실행하여 CSV(클러스터 서비스 버전)를 삭제합니다.

    • OpenShift Container Platform의 경우 다음 명령을 실행합니다.

      $ oc -n rhacs-operator delete csv -l operators.coreos.com/rhacs-operator.rhacs-operator
    • Kubernetes의 경우 다음 명령을 실행합니다.

      $ kubectl -n rhacs-operator delete csv -l operators.coreos.com/rhacs-operator.rhacs-operator
  3. 다음 옵션 중 하나를 선택하여 롤백할 이전 버전을 결정합니다.

    • 현재 Central 인스턴스가 실행 중인 경우 RHACS API를 쿼리하여 다음 명령을 실행하여 롤백 버전을 가져옵니다.

      $ curl -k -s -u <user>:<password> https://<central hostname>/v1/centralhealth/upgradestatus | jq -r .upgradeStatus.forceRollbackTo
    • 현재 Central 인스턴스가 실행되고 있지 않은 경우 다음 단계를 수행합니다.

      참고

      이 절차는 Rillsdb 데이터베이스를 설치할 때 RHACS 릴리스 3.74 및 이전 버전에 만 사용할 수 있습니다.

      1. 다음 명령을 실행하여 중앙 배포가 축소되었는지 확인합니다.

        • OpenShift Container Platform의 경우 다음 명령을 실행합니다.

          $ oc scale -n <central namespace> –replicas=0 deploy/central
        • Kubernetes의 경우 다음 명령을 실행합니다.

          $ kubectl scale -n <central namespace> –replicas=0 deploy/central
      2. 다음 Pod 사양을 YAML 파일로 저장합니다.

        apiVersion: v1
        kind: Pod
        metadata:
          name: get-previous-db-version
        spec:
          containers:
          - name: get-previous-db-version
            image: registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:<rollback version>
            command:
            - sh
            args:
            - '-c'
            - "cat /var/lib/stackrox/.previous/migration_version.yaml | grep '^image:' | cut -f 2 -d : | tr -d ' '"
            volumeMounts:
            - name: stackrox-db
              mountPath: /var/lib/stackrox
          volumes:
          - name: stackrox-db
            persistentVolumeClaim:
              claimName: stackrox-db
      3. 저장한 YAML 파일을 사용하여 다음 명령을 실행하여 중앙 네임스페이스에 Pod를 생성합니다.

        • OpenShift Container Platform의 경우 다음 명령을 실행합니다.

          $ oc create -n <central namespace> -f pod.yaml
        • Kubernetes의 경우 다음 명령을 실행합니다.

          $ kubectl create -n <central namespace> -f pod.yaml
      4. Pod 생성이 완료되면 다음 명령을 실행하여 버전을 가져옵니다.

        • OpenShift Container Platform의 경우 다음 명령을 실행합니다.

          $ oc logs -n <central namespace> get-previous-db-version
        • Kubernetes의 경우 다음 명령을 실행합니다.

          $ kubectl logs -n <central namespace> get-previous-db-version
  4. central-config.yaml ConfigMap 을 편집하여 다음 명령을 실행하여 maintenance.forceRollBackVersion:<version > 매개변수를 설정합니다.

    • OpenShift Container Platform의 경우 다음 명령을 실행합니다.

      $ oc get configmap -n <central namespace> central-config -o yaml | sed -e "s/forceRollbackVersion: none/forceRollbackVersion: <version>/" | oc -n <central namespace> apply -f -
    • Kubernetes의 경우 다음 명령을 실행합니다.

      $ kubectl get configmap -n <central namespace> central-config -o yaml | sed -e "s/forceRollbackVersion: none/forceRollbackVersion: <version>/" | kubectl -n <central namespace> apply -f -
  5. 3단계에 표시된 version 문자열을 이미지 태그로 사용하여 중앙 배포의 이미지를 설정합니다. 예를 들어 다음 명령을 실행합니다.

    • OpenShift Container Platform의 경우 다음 명령을 실행합니다.

      $ oc set image -n <central namespace> deploy/central central=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:<version>
    • Kubernetes의 경우 다음 명령을 실행합니다.

      $ kubectl set image -n <central namespace> deploy/central central=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:<version>

검증

  1. 중앙 Pod가 시작되고 준비 상태인지 확인합니다. Pod가 충돌하는 경우 로그를 확인하여 백업이 복원되었는지 확인합니다. 성공 로그 메시지는 다음 예와 유사합니다.

    Clone to Migrate ".previous", ""
  2. 롤백된 백엔드 채널에 Operator를 다시 설치합니다. 예를 들어 3.74.2rhacs-3.74 채널에 설치됩니다.

1.5.2. 웹 콘솔을 사용하여 Operator 업그레이드 롤백

OpenShift Container Platform 웹 콘솔을 사용하여 Operator 버전을 롤백할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 계정을 사용하여 OpenShift Container Platform 클러스터 웹 콘솔에 액세스할 수 있습니다.

절차

  1. Operator 설치된 Operator 페이지로 이동합니다.
  2. RHACS Operator를 찾아 클릭합니다.
  3. Operator 세부 정보 페이지의 작업 목록에서 Operator 제거를 선택합니다. 이 작업 후에 Operator는 실행을 중지하고 더 이상 업데이트가 수신되지 않습니다.
  4. 다음 옵션 중 하나를 선택하여 롤백할 이전 버전을 결정합니다.

    • 현재 중앙 인스턴스가 실행 중인 경우 터미널 창에서 다음 명령을 실행하여 RHACS API를 쿼리하여 롤백 버전을 가져올 수 있습니다.

      $ curl -k -s -u <user>:<password> https://<central hostname>/v1/centralhealth/upgradestatus | jq -r .upgradeStatus.forceRollbackTo
    • 다음 단계를 수행하여 Pod를 생성하고 이전 버전을 추출할 수 있습니다.

      참고

      이 절차는 Rillsdb 데이터베이스를 설치할 때 RHACS 릴리스 3.74 및 이전 버전에 만 사용할 수 있습니다.

      1. 워크로드 배포 중앙 으로 이동합니다.
      2. 배포 세부 정보에서 포드 수 옆에 있는 아래쪽 화살표를 클릭하여 Pod를 축소합니다.
      3. 워크로드 Pod Pod 생성 으로 이동하여 다음 예에 표시된 대로 Pod 사양의 내용을 편집기에 붙여넣습니다.

        apiVersion: v1
        kind: Pod
        metadata:
          name: get-previous-db-version
        spec:
          containers:
          - name: get-previous-db-version
            image: registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:<rollback version>
            command:
            - sh
            args:
            - '-c'
            - "cat /var/lib/stackrox/.previous/migration_version.yaml | grep '^image:' | cut -f 2 -d : | tr -d ' '"
            volumeMounts:
            - name: stackrox-db
              mountPath: /var/lib/stackrox
          volumes:
          - name: stackrox-db
            persistentVolumeClaim:
              claimName: stackrox-db
      4. 생성을 클릭합니다.
      5. 포드가 생성되면 로그 탭을 클릭하여 버전 문자열을 가져옵니다.
  5. 다음 단계를 수행하여 롤백 구성을 업데이트합니다.

    1. 워크로드 ConfigMaps central-config 로 이동하여 작업 목록에서 ConfigMap 편집 을 선택합니다.
    2. central-config.yaml 키 값에서 forceRollbackVersion 행을 찾습니다.
    3. none3.74.3 로 교체한 다음 파일을 저장합니다.
  6. 다음 단계를 수행하여 이전 버전으로 중앙을 업데이트합니다.

    1. 워크로드 배포 중앙 으로 이동하고 작업 목록에서 배포 편집 을 선택합니다.
    2. 이미지 이름을 업데이트한 다음 변경 사항을 저장합니다.

검증

  1. 중앙 Pod가 시작되고 준비 상태인지 확인합니다. Pod가 충돌하는 경우 로그를 확인하여 백업이 복원되었는지 확인합니다. 성공 로그 메시지는 다음 예와 유사합니다.

    Clone to Migrate ".previous", ""
  2. 롤백된 백엔드 채널에 Operator를 다시 설치합니다. 예를 들어 3.74.3rhacs-3.74 채널에 설치됩니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.