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

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

기여자

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

필요한 것
이 작업에 대해

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

중요함 모든 Astra Control Center Pod를 삭제하지 않도록 전체 업그레이드 프로세스 중에 다음 명령을 실행하지 마십시오. kubectl delete -f astra_control_center_operator_deploy.yaml
팁 스케줄, 백업 및 스냅샷이 실행되고 있지 않은 경우 유지보수 창에서 업그레이드를 수행합니다.
참고 Docker Engine 대신 Red Hat의 Podman 명령을 사용하는 경우 Docker 명령 대신 Podman 명령을 사용할 수 있습니다.

Astra Control Center 번들을 다운로드합니다

  1. Astra Control Center 업그레이드 번들을 다운로드합니다 (astra-control-center-[version].tar.gz) https: mysupport.netapp.com/site/products/all/details/astra-control-center/downloads-tab[NetApp 지원 사이트^]에서.

  2. (선택 사항) 다음 명령을 사용하여 번들의 서명을 확인합니다.

    openssl dgst -sha256 -verify AstraControlCenter-public.pub -signature astra-control-center-[version].tar.gz.sig astra-control-center-[version].tar.gz

번들의 포장을 풀고 디렉토리를 변경합니다

  1. 이미지 추출:

    tar -vxzf astra-control-center-[version].tar.gz

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

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

Docker 를 참조하십시오
  1. Astra 디렉토리로 이동합니다.

    cd acc
  2. Astra Control Center 이미지 디렉토리에 있는 패키지 이미지를 로컬 레지스트리로 푸시합니다. 명령을 실행하기 전에 다음 대체 작업을 수행합니다.

    • Bundle_file을 Astra Control 번들 파일 이름으로 바꿉니다(예: acc.manifest.yaml)를 클릭합니다.

    • my_registry를 Docker 리포지토리의 URL로 바꿉니다.

    • my_registry_user를 사용자 이름으로 바꿉니다.

    • my_registry_token을 레지스트리에 대한 인증된 토큰으로 바꿉니다.

      kubectl astra packages push-images -m BUNDLE_FILE -r MY_REGISTRY -u MY_REGISTRY_USER -p MY_REGISTRY_TOKEN
팟맨
  1. 레지스트리에 로그인합니다.

    podman login [your_registry_path]
  2. 설명에 명시된 대로 <your_registry> 대체를 만들어 다음 스크립트를 실행합니다.

    # You need to be at the root of the tarball.
    # You should see these files to confirm correct location:
    #   acc.manifest.yaml
    #   acc/
    
    # Replace <YOUR_REGISTRY> with your own registry (e.g registry.customer.com or registry.customer.com/testing, etc..)
    export REGISTRY=<YOUR_REGISTRY>
    export PACKAGENAME=acc
    export PACKAGEVERSION=22.08.1-26
    export DIRECTORYNAME=acc
    for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do
      # Load to local cache
      astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image(s): //')
    
      # Remove path and keep imageName.
      astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::')
    
      # Tag with local image repo.
      podman tag ${astraImage} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
    
      # Push to the local repo.
      podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath}
    done

업데이트된 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: <name_of_secret_with_creds_to_local_registry>
    2. 변경 [your_registry_path] 의 경우 kube-rbac-proxy 이미지를 에서 푸시한 레지스트리 경로로 이미지 이전 단계.

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

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

      - name: ACCOP_HELM_UPGRADETIMEOUT
        value: 300m
      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
        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: [your_registry_path]/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
              command:
              - /manager
              env:
              - name: ACCOP_LOG_LEVEL
                value: "2"
              - name: ACCOP_HELM_UPGRADETIMEOUT
                value: 300m
              image: [your_registry_path]/acc-operator:[version x.y.z]
              imagePullPolicy: IfNotPresent
            imagePullSecrets: []
  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) 편집 (astra_control_center_min.yaml)를 사용하여 Astra 버전을 변경합니다 (astraVersion 의 내부 Spec) 번호:

    kubectl edit acc -n [netapp-acc or custom namespace]
    참고 레지스트리 경로는 에서 이미지를 푸시한 레지스트리 경로와 일치해야 합니다 이전 단계.
  2. 에 다음 행을 추가합니다 additionalValues 의 내부 Spec Astra Control Center CR에서 다음을 수행합니다.

    additionalValues:
        nautilus:
          startupProbe:
            periodSeconds: 30
            failureThreshold: 600
  3. 다음 중 하나를 수행합니다.

    1. 자체 IngessController 또는 Ingress가 없고 Traefik 게이트웨이와 함께 Astra Control Center를 로드 밸런서 유형 서비스로 사용하고 있으며 이 설정을 계속하려면 다른 필드를 지정하십시오 ingressType (아직 없는 경우) 를 클릭하여 로 설정합니다 AccTraefik.

      ingressType: AccTraefik
    2. 기본 Astra Control Center 일반 수신 배포로 전환하려면 자체 IngressController/Ingress 설정(TLS 종료 등)을 제공하고 Astra Control Center로 가는 경로를 연 다음 설정합니다 ingressType 를 선택합니다 Generic.

      ingressType: Generic
      팁 필드를 생략하면 프로세스가 일반 배포가 됩니다. 일반 배포를 원하지 않는 경우 필드를 추가해야 합니다.
  4. (선택 사항) Pod가 종료되어 다시 사용할 수 있는지 확인합니다.

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

    kubectl get -o yaml -n [netapp-acc or custom namespace] astracontrolcenters.astra.netapp.io astra

    응답:

    conditions:
      - lastTransitionTime: "2021-10-25T18:49:26Z"
        message: Astra is deployed
        reason: Complete
        status: "True"
        type: Ready
      - lastTransitionTime: "2021-10-25T18:49:26Z"
        message: Upgrading succeeded.
        reason: Complete
        status: "False"
        type: Upgrading
  6. 다시 로그인하여 관리되는 모든 클러스터와 앱이 여전히 존재하고 보호되고 있는지 확인합니다.

  7. 운영자가 Cert-manager를 업데이트하지 않은 경우, 다음으로 타사 서비스를 업그레이드하십시오.

타사 서비스 업그레이드(선택 사항)

타사 서비스 Traefik 및 Cert-manager는 이전 업그레이드 단계 중에 업그레이드되지 않습니다. 여기에 설명된 절차를 사용하여 필요에 따라 업그레이드하거나 시스템에 필요한 경우 기존 서비스 버전을 유지할 수 있습니다.

  • * Traefik *: 기본적으로 Astra Control Center는 Traefik 배포의 수명 주기를 관리합니다. 설정 externalTraefik 를 선택합니다 false (기본값) 시스템에 외부 Traefik이 없고 Astra Control Center에서 Traefik을 설치 및 관리하고 있음을 나타냅니다. 이 경우 externalTraefik 가 로 설정되어 있습니다 false.

    반면, Traefik 배포가 있는 경우 를 설정합니다 externalTraefik 를 선택합니다 true. 이 경우 구축을 유지 관리하고 Astra Control Center는 CRD를 업그레이드하지 않습니다 shouldUpgrade 가 로 설정되어 있습니다 true.

  • * Cert-manager *: 기본적으로 Astra Control Center는 사용자가 설정하지 않은 경우 인증서 관리자(및 CRD)를 설치합니다 externalCertManager 를 선택합니다 true. 설정 shouldUpgrade 를 선택합니다 true Astra Control Center가 CRD를 업그레이드하도록 합니다.

다음 조건 중 하나라도 충족되면 Traefik이 업그레이드됩니다.

  • 외부트래이픽: 거짓

  • externalTraefik: true 및 shouldUpgrade: true입니다.

단계
  1. 를 편집합니다 acc CR:

    kubectl edit acc -n [netapp-acc or custom namespace]
  2. 를 변경합니다 externalTraefik 필드 및 shouldUpgrade 필드를 선택합니다 true 또는 false 필요 시.

    crds:
        externalTraefik: false
        externalCertManager: false
        shouldUpgrade: false

시스템 상태를 확인합니다

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

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

부하 분산을 위한 수신 설정

클러스터의 로드 밸런싱과 같은 서비스에 대한 외부 액세스를 관리하는 Kubernetes 수신 객체를 설정할 수 있습니다.

  • 기본 업그레이드는 일반적인 수신 배포를 사용합니다. 이 경우 수신 컨트롤러 또는 수신 리소스를 설정해야 합니다.

  • 수신 컨트롤러를 원하지 않고 이미 가지고 있는 것을 유지하려면 를 설정합니다 ingressType 를 선택합니다 AccTraefik.

참고 "로드 밸런서" 및 수신 서비스 유형에 대한 자세한 내용은 을 참조하십시오 "요구 사항".

단계는 사용하는 수신 컨트롤러의 유형에 따라 다릅니다.

  • Nginx 수신 컨트롤러

  • OpenShift 수신 컨트롤러

필요한 것
  • CR 사양에서

    • If(경우 crd.externalTraefik 가 있으면 로 설정해야 합니다 false 또는

    • If(경우 crd.externalTraefik 있습니다 true, crd.shouldUpgrade 또한 입니다 true.

  • 필수 요소입니다 "수신 컨트롤러" 이미 배포되어 있어야 합니다.

  • 를 클릭합니다 "수신 클래스" 수신 컨트롤러에 해당하는 컨트롤러가 이미 생성되어야 합니다.

  • V1.19 및 v1.21 등의 Kubernetes 버전을 사용하고 있습니다.

Nginx 수신 컨트롤러 단계
  1. 기존 암호를 사용합니다 secure-testing-cert 또는 형식 암호를 만듭니다[kubernetes.io/tls] 에서 TLS 개인 키 및 인증서의 경우 netapp-acc 에 설명된 대로 (또는 사용자 지정 이름) 네임스페이스를 사용합니다 "TLS 비밀".

  2. 수신 리소스를 에 배포합니다 netapp-acc 사용되지 않는 스키마나 새 스키마에 대한 (또는 사용자 지정 이름) 네임스페이스:

    1. 더 이상 사용되지 않는 스키마의 경우 다음 샘플을 따르십시오.

      apiVersion: extensions/v1beta1
      kind: IngressClass
      metadata:
        name: ingress-acc
        namespace: [netapp-acc or custom namespace]
        annotations:
          kubernetes.io/ingress.class: nginx
      spec:
        tls:
        - hosts:
          - <ACC address>
          secretName: [tls secret name]
        rules:
        - host: [ACC address]
          http:
            paths:
            - backend:
              serviceName: traefik
              servicePort: 80
              pathType: ImplementationSpecific
    2. 새 스키마의 경우 다음 예제를 따르십시오.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: netapp-acc-ingress
      namespace: [netapp-acc or custom namespace]
    spec:
      ingressClassName: [class name for nginx controller]
      tls:
      - hosts:
        - <ACC address>
        secretName: [tls secret name]
      rules:
      - host: <ACC address>
        http:
          paths:
            - path:
              backend:
                service:
                  name: traefik
                  port:
                    number: 80
              pathType: ImplementationSpecific
OpenShift Ingress 컨트롤러를 위한 단계
  1. 인증서를 구입하고 OpenShift 라우트에서 사용할 수 있도록 준비된 키, 인증서 및 CA 파일을 가져옵니다.

  2. OpenShift 경로를 생성합니다.

    oc create route edge --service=traefik
    --port=web -n [netapp-acc or custom namespace]
    --insecure-policy=Redirect --hostname=<ACC address>
    --cert=cert.pem --key=key.pem

수신 설정을 확인합니다

계속하기 전에 수신 설정을 확인할 수 있습니다.

  1. Traefik이 (으)로 변경되었는지 확인합니다 clusterIP 로드 밸런서:

    kubectl get service traefik -n [netapp-acc or custom namespace]
  2. Traefik에서 경로 확인:

    Kubectl get ingressroute ingressroutetls -n [netapp-acc or custom namespace]
    -o yaml | grep "Host("
    참고 결과는 비어 있어야 합니다.