Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

Astra Control Center를 업그레이드합니다

기여자

Astra Control Center를 업그레이드하려면 NetApp Support 사이트에서 설치 번들을 다운로드하고 다음 지침을 완료하십시오. 이 절차를 사용하여 인터넷에 연결되거나 공기가 연결된 환경에서 Astra Control Center를 업그레이드할 수 있습니다.

다음 지침에서는 Astra Control Center의 두 번째 최신 릴리즈에서 이 최신 릴리즈로 업그레이드하는 프로세스를 설명합니다. 현재 릴리스 뒤에 있는 두 개 이상의 릴리스에서는 직접 업그레이드할 수 없습니다. 설치된 Astra Control Center 버전이 최신 릴리즈의 지원 대상인 경우, 설치된 Astra Control Center가 최신 릴리즈에 이어 한 버전일 때까지 최신 버전으로 체인 업그레이드를 수행해야 할 수 있습니다. 릴리스 버전의 전체 목록은 를 참조하십시오 "릴리즈 노트를 참조하십시오".

시작하기 전에

업그레이드하기 전에 환경이 에 맞는지 확인하십시오 "Astra Control Center 구축을 위한 최소 요구 사항". 환경에 다음이 있어야 합니다.

  • * A입니다 "지원" Astra Trident 버전 *

    단계를 위해 확장합니다

    실행 중인 Trident 버전 확인:

    kubectl get tridentversion -n trident
    참고 필요한 경우 다음 명령을 사용하여 Astra Trident를 업그레이드합니다 "지침".
중요함 23.10 릴리즈는 Astra Trident를 지원하는 Astra Control Center의 마지막 릴리즈입니다. 반드시 추천해 드립니다 "Astra Control Provisioner를 활성화합니다" Astra Trident가 제공하는 기능을 넘어서는 고급 관리 및 스토리지 프로비저닝 기능에 액세스할 수 있습니다. Astra Control Center 23.10으로 업그레이드하고 이 확장 기능을 사용하려면 Astra Control Provisioner를 활성화해야 합니다. Astra Control Provisioner는 Astra Control Center의 이전 릴리즈에서는 작동하지 않습니다.
  • * 지원되는 Kubernetes 배포 *

    단계를 위해 확장합니다

    실행 중인 Kubernetes 버전 확인:

    kubectl get nodes -o wide
  • * 충분한 클러스터 리소스 *

    단계를 위해 확장합니다

    사용 가능한 클러스터 리소스 결정:

    kubectl describe node <node name>
  • * Astra Control Center 이미지를 푸시 및 업로드하는 데 사용할 수 있는 레지스트리 *

  • * 기본 스토리지 클래스 *

    단계를 위해 확장합니다

    기본 스토리지 클래스 확인:

    kubectl get storageclass
  • * 정상 및 사용 가능한 API 서비스 *

    단계를 위해 확장합니다

    모든 API 서비스가 정상 상태이며 사용 가능한지 확인합니다.

    kubectl get apiservices
  • * (OpenShift만 해당) 정상 및 사용 가능한 클러스터 운영자 *

    단계를 위해 확장합니다

    모든 클러스터 운영자가 양호한 상태이며 사용 가능한지 확인합니다.

    kubectl get clusteroperators
  • * NetApp Astra 컨트롤 이미지 레지스트리에 액세스 *:
    NetApp 이미지 레지스트리에서 Astra Control Provisioner와 같은 Astra Control의 설치 이미지 및 기능 개선 사항을 가져올 수 있습니다.

    단계를 위해 확장합니다
    1. 레지스트리에 로그인해야 하는 Astra Control 계정 ID를 기록합니다.

      계정 ID는 Astra Control Service 웹 UI에서 확인할 수 있습니다. 페이지 오른쪽 상단의 그림 아이콘을 선택하고 * API 액세스 * 를 선택한 후 계정 ID를 기록합니다.

    2. 같은 페이지에서 * API 토큰 생성 * 을 선택하고 API 토큰 문자열을 클립보드에 복사하여 편집기에 저장합니다.

    3. Astra Control 레지스트리에 로그인합니다.

      docker login cr.astra.netapp.io -u <account-id> -p <api-token>
이 작업에 대해

Astra Control Center 업그레이드 프로세스는 다음과 같은 고급 단계를 안내합니다.

참고 업그레이드를 시작하기 전에 Astra Control Center UI에서 로그아웃하십시오.
중요함 Astra Control Center 운영자를 삭제하지 마십시오(예: kubectl delete -f astra_control_center_operator_deploy.yaml) 포드가 삭제되지 않도록 Astra Control Center 업그레이드 또는 작업 중 언제든지.
팁 스케줄, 백업 및 스냅샷이 실행되고 있지 않은 경우 유지보수 창에서 업그레이드를 수행합니다.

Astra Control Center를 다운로드하고 압축을 풉니다

NetApp Support 사이트에서 Astra Control Center 번들을 다운로드하거나 Docker를 사용하여 Astra Control Service 이미지 레지스트리에서 번들을 가져올 수 있습니다.

NetApp Support 사이트
  1. Astra Control Center가 포함된 번들을 다운로드합니다 (astra-control-center-[version].tar.gz)를 선택합니다 "Astra Control Center 다운로드 페이지".

  2. (권장되지만 선택 사항) Astra Control Center용 인증서 및 서명 번들을 다운로드합니다 (astra-control-center-certs-[version].tar.gz)를 클릭하여 번들 서명을 확인합니다.

    자세한 내용을 보려면 를 확장합니다
    tar -vxzf astra-control-center-certs-[version].tar.gz
    openssl dgst -sha256 -verify certs/AstraControlCenter-public.pub -signature certs/astra-control-center-[version].tar.gz.sig astra-control-center-[version].tar.gz

    출력이 표시됩니다 Verified OK 확인 성공 후.

  3. Astra Control Center 번들에서 이미지를 추출합니다.

    tar -vxzf astra-control-center-[version].tar.gz
Astra Control 이미지 레지스트리
  1. Astra Control Service에 로그인합니다.

  2. 대시보드에서 * Astra Control의 자가 관리형 인스턴스 배포 * 를 선택합니다.

  3. 지침에 따라 Astra Control 이미지 레지스트리에 로그인하고 Astra Control Center 설치 이미지를 가져온 다음 이미지를 추출합니다.

NetApp Astra kubtl 플러그인을 제거하고 다시 설치합니다

NetApp Astra kubtl 명령줄 플러그인을 사용하여 이미지를 로컬 Docker 저장소로 푸시할 수 있습니다.

  1. 플러그인이 설치되어 있는지 확인합니다.

    kubectl astra
  2. 다음 작업 중 하나를 수행합니다.

    • 플러그인이 설치되어 있는 경우 kubeck 플러그인 도움말을 반환해야 하며 kubbctl-Astra의 기존 버전을 제거할 수 있습니다. delete /usr/local/bin/kubectl-astra.

    • 명령이 오류를 반환하면 플러그인이 설치되지 않은 것이므로 다음 단계를 수행하여 설치할 수 있습니다.

  3. 플러그인 설치:

    1. 사용 가능한 NetApp Astra kubectl 플러그인 바이너리를 나열하고 운영 체제 및 CPU 아키텍처에 필요한 파일 이름을 적어 주십시오.

      참고 kubbeck 플러그인 라이브러리는 tar 번들의 일부이며 폴더에 압축이 풀립니다 kubectl-astra.
    ls kubectl-astra/
    1. 올바른 바이너리를 현재 경로로 이동하고 이름을 로 변경합니다 kubectl-astra:

      cp kubectl-astra/<binary-name> /usr/local/bin/kubectl-astra

이미지를 로컬 레지스트리에 추가합니다

  1. 용기 엔진에 적합한 단계 시퀀스를 완료합니다.

Docker 를 참조하십시오
  1. 타볼의 루트 디렉토리로 변경합니다. 가 표시됩니다 acc.manifest.bundle.yaml 파일 및 다음 디렉토리:

    acc/
    kubectl-astra/
    acc.manifest.bundle.yaml

  2. Astra Control Center 이미지 디렉토리의 패키지 이미지를 로컬 레지스트리에 밀어 넣습니다. 를 실행하기 전에 다음 대체 작업을 수행합니다 push-images 명령:

    • <BUNDLE_FILE>를 Astra Control 번들 파일의 이름으로 바꿉니다 (acc.manifest.bundle.yaml)를 클릭합니다.

    • <MY_FULL_REGISTRY_PATH>를 Docker 저장소의 URL로 바꿉니다. 예를 들어, "https://<docker-registry>".

    • <MY_REGISTRY_USER>를 사용자 이름으로 바꿉니다.

    • <MY_REGISTRY_TOKEN>를 레지스트리에 대한 인증된 토큰으로 바꿉니다.

      kubectl astra packages push-images -m <BUNDLE_FILE> -r <MY_FULL_REGISTRY_PATH> -u <MY_REGISTRY_USER> -p <MY_REGISTRY_TOKEN>
팟맨
  1. 타볼의 루트 디렉토리로 변경합니다. 이 파일과 디렉토리가 표시됩니다.

    acc/
    kubectl-astra/
    acc.manifest.bundle.yaml

  2. 레지스트리에 로그인합니다.

    podman login <YOUR_REGISTRY>
  3. 사용하는 Podman 버전에 맞게 사용자 지정된 다음 스크립트 중 하나를 준비하고 실행합니다. <MY_FULL_REGISTRY_PATH>를 모든 하위 디렉토리가 포함된 리포지토리의 URL로 대체합니다.

    Podman 4
    export REGISTRY=<MY_FULL_REGISTRY_PATH>
    export PACKAGENAME=acc
    export PACKAGEVERSION=23.10.0-68
    export DIRECTORYNAME=acc
    for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do
    astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image: //')
    astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::')
    podman tag ${astraImageNoPath} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
    podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
    done
    Podman 3
    export REGISTRY=<MY_FULL_REGISTRY_PATH>
    export PACKAGENAME=acc
    export PACKAGEVERSION=23.10.0-68
    export DIRECTORYNAME=acc
    for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do
    astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image: //')
    astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::')
    podman tag ${astraImageNoPath} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
    podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
    done
    참고 레지스트리 구성에 따라 스크립트가 만드는 이미지 경로는 다음과 같아야 합니다.
    https://downloads.example.io/docker-astra-control-prod/netapp/astra/acc/23.10.0-68/image:version

업데이트된 Astra Control Center 운영자를 설치합니다

  1. 디렉토리를 변경합니다.

    cd manifests
  2. Astra Control Center 운영자 배포 YAML을 편집합니다 (astra_control_center_operator_deploy.yaml)를 클릭하여 로컬 레지스트리 및 암호를 참조합니다.

    vim astra_control_center_operator_deploy.yaml
    1. 인증이 필요한 레지스트리를 사용하는 경우 의 기본 줄을 바꾸거나 편집합니다 imagePullSecrets: [] 다음 포함:

      imagePullSecrets: [{name: astra-registry-cred}]
    2. 변경 ASTRA_IMAGE_REGISTRY 의 경우 kube-rbac-proxy 이미지를 에서 푸시한 레지스트리 경로로 이미지 이전 단계.

    3. 변경 ASTRA_IMAGE_REGISTRY 의 경우 acc-operator 이미지를 에서 푸시한 레지스트리 경로로 이미지 이전 단계.

    4. 에 다음 값을 추가합니다 env 섹션:

      - name: ACCOP_HELM_UPGRADETIMEOUT
        value: 300m
    샘플 Astra_control_center_operator_deploy.YAML:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        control-plane: controller-manager
      name: acc-operator-controller-manager
      namespace: netapp-acc-operator
    spec:
      replicas: 1
      selector:
        matchLabels:
          control-plane: controller-manager
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            control-plane: controller-manager
        spec:
          containers:
          - args:
            - --secure-listen-address=0.0.0.0:8443
            - --upstream=http://127.0.0.1:8080/
            - --logtostderr=true
            - --v=10
            image: ASTRA_IMAGE_REGISTRY/kube-rbac-proxy:v4.8.0
            name: kube-rbac-proxy
            ports:
            - containerPort: 8443
              name: https
          - args:
            - --health-probe-bind-address=:8081
            - --metrics-bind-address=127.0.0.1:8080
            - --leader-elect
            env:
            - name: ACCOP_LOG_LEVEL
              value: "2"
            - name: ACCOP_HELM_UPGRADETIMEOUT
              value: 300m
            image: ASTRA_IMAGE_REGISTRY/acc-operator:23.10.72
            imagePullPolicy: IfNotPresent
            livenessProbe:
              httpGet:
                path: /healthz
                port: 8081
              initialDelaySeconds: 15
              periodSeconds: 20
            name: manager
            readinessProbe:
              httpGet:
                path: /readyz
                port: 8081
              initialDelaySeconds: 5
              periodSeconds: 10
            resources:
              limits:
                cpu: 300m
                memory: 750Mi
              requests:
                cpu: 100m
                memory: 75Mi
            securityContext:
              allowPrivilegeEscalation: false
          imagePullSecrets: []
          securityContext:
            runAsUser: 65532
          terminationGracePeriodSeconds: 10
  3. 업데이트된 Astra Control Center 운영자를 설치합니다.

    kubectl apply -f astra_control_center_operator_deploy.yaml
    샘플 반응:
    namespace/netapp-acc-operator unchanged
    customresourcedefinition.apiextensions.k8s.io/astracontrolcenters.astra.netapp.io configured
    role.rbac.authorization.k8s.io/acc-operator-leader-election-role unchanged
    clusterrole.rbac.authorization.k8s.io/acc-operator-manager-role configured
    clusterrole.rbac.authorization.k8s.io/acc-operator-metrics-reader unchanged
    clusterrole.rbac.authorization.k8s.io/acc-operator-proxy-role unchanged
    rolebinding.rbac.authorization.k8s.io/acc-operator-leader-election-rolebinding unchanged
    clusterrolebinding.rbac.authorization.k8s.io/acc-operator-manager-rolebinding configured
    clusterrolebinding.rbac.authorization.k8s.io/acc-operator-proxy-rolebinding unchanged
    configmap/acc-operator-manager-config unchanged
    service/acc-operator-controller-manager-metrics-service unchanged
    deployment.apps/acc-operator-controller-manager configured
  4. Pod가 실행 중인지 확인합니다.

    kubectl get pods -n netapp-acc-operator

Astra Control Center를 업그레이드합니다

  1. Astra Control Center 사용자 지정 리소스(CR) 편집:

    kubectl edit AstraControlCenter -n [netapp-acc or custom namespace]
  2. Astra 버전 번호를 변경합니다 (astraVersion 의 내부 spec)에서 시작합니다 23.07.0 를 선택합니다 23.10.0:

    참고 현재 릴리스 뒤에 있는 두 개 이상의 릴리스에서는 직접 업그레이드할 수 없습니다. 릴리스 버전의 전체 목록은 를 참조하십시오 "릴리즈 노트를 참조하십시오".
    spec:
      accountName: "Example"
      astraVersion: "[Version number]"
  3. 이미지 레지스트리 경로가 에서 이미지를 푸시한 레지스트리 경로와 일치하는지 확인합니다 이전 단계. 업데이트 imageRegistry 의 내부 spec 마지막 설치 이후 레지스트리가 변경된 경우

      imageRegistry:
        name: "[your_registry_path]"
  4. 에 다음을 추가합니다 crds 의 내부 구성 spec:

    crds:
      shouldUpgrade: true
  5. 에 다음 행을 추가합니다 additionalValues 의 내부 spec Astra Control Center CR에서 다음을 수행합니다.

    additionalValues:
        nautilus:
          startupProbe:
            periodSeconds: 30
            failureThreshold: 600
        keycloak-operator:
          livenessProbe:
            initialDelaySeconds: 180
          readinessProbe:
            initialDelaySeconds: 180
  6. 파일 편집기를 저장하고 종료합니다. 변경 사항이 적용되고 업그레이드가 시작됩니다.

  7. (선택 사항) Pod가 종료되어 다시 사용할 수 있는지 확인합니다.

    watch kubectl get pods -n [netapp-acc or custom namespace]
  8. Astra Control 상태 조건이 업그레이드가 완료되어 준비되었음을 나타낼 때까지 기다립니다 (True):

    kubectl get AstraControlCenter -n [netapp-acc or custom namespace]

    응답:

    NAME    UUID                                      VERSION     ADDRESS         READY
    astra   9aa5fdae-4214-4cb7-9976-5d8b4c0ce27f      23.10.0-68   10.111.111.111  True
    참고 작업 중에 업그레이드 상태를 모니터링하려면 다음 명령을 실행합니다. kubectl get AstraControlCenter -o yaml -n [netapp-acc or custom namespace]
    참고 Astra Control Center 운영자 로그를 검사하려면 다음 명령을 실행하십시오.
    kubectl logs deploy/acc-operator-controller-manager -n netapp-acc-operator -c manager -f

시스템 상태를 확인합니다

  1. Astra Control Center에 로그인합니다.

  2. 버전이 업그레이드되었는지 확인합니다. UI의 * 지원 * 페이지를 참조하십시오.

  3. 모든 관리되는 클러스터와 앱이 여전히 존재하고 보호되고 있는지 확인합니다.