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

운영자와 함께 업그레이드하십시오

기여자

운영자를 사용하여 기존 Astra Trident 설치를 쉽게 업그레이드할 수 있습니다.

필요한 것

연산자를 사용하여 업그레이드하려면 다음 조건이 충족되어야 합니다.

  • CSI 기반 Astra Trident가 설치되어 있어야 합니다. CSI Trident를 실행 중인지 확인하려면 Trident 네임스페이스의 Pod를 확인하십시오. '트리덴트-CSI- *' 명명 패턴을 따르면 CSI Trident를 실행하고 있는 것입니다.

  • CRD 기반 Trident가 설치되어 있어야 합니다. 이는 19.07 이후의 모든 릴리스를 나타냅니다. CSI 기반 설치가 있는 경우 CRD 기반 설치가 있을 가능성이 높습니다.

  • CSI Trident를 제거한 후 설치 시 메타데이터가 지속되는 경우 연산자를 사용하여 업그레이드할 수 있습니다.

  • 주어진 Kubernetes 클러스터의 모든 네임스페이스에 하나의 Astra Trident 설치만 존재해야 합니다.

  • 를 실행하는 Kubernetes 클러스터를 사용해야 합니다 "버전 1.17 이상".

  • 알파 스냅샷 CRD가 있는 경우 'tridentctl oblividate alpha-snapshot-CRD'로 제거해야 합니다. 그러면 알파 스냅샷 사양에 대한 CRD가 삭제됩니다. 삭제/마이그레이션해야 하는 기존 스냅샷의 경우 를 참조하십시오 "블로그입니다".

경고 OpenShift Container Platform에서 연산자를 사용하여 Trident를 업그레이드할 때는 Trident 21.01.1 이상으로 업그레이드해야 합니다. 21.01.0으로 릴리스된 Trident 연산자에는 21.01.1에서 해결된 알려진 문제가 포함되어 있습니다. 자세한 내용은 를 참조하십시오 "GitHub에 대한 발행 세부 정보".

클러스터 범위 운영자 설치를 업그레이드하십시오

Trident 21.01 및 이후 * 에서 업그레이드하려면 다음 단계를 따르십시오.

단계
  1. 현재 Astra Trident 인스턴스를 설치하는 데 사용된 Trident 연산자를 삭제합니다. 예를 들어, 21.01에서 업그레이드하는 경우 다음 명령을 실행합니다.

    kubectl delete -f 21.01/trident-installer/deploy/bundle.yaml -n trident
  2. (선택 사항) 설치 매개 변수를 수정하려면 Trident를 설치할 때 설정한 'Trident Orchestrator' 개체를 편집합니다. 컨테이너 이미지를 가져올 사용자 지정 Trident 이미지 수정, 디버그 로그 활성화 또는 이미지 풀 비밀 지정 등의 변경 사항이 있을 수 있습니다.

  3. 새로운 버전의 Trident 운영자를 설정하는 bundle.YAML 파일을 사용하여 Astra Trident를 설치합니다. 다음 명령을 실행합니다.

    kubectl create -f 21.10.0/trident-installer/deploy/bundle.yaml -n trident

이 단계의 일부로, 21.10.0 Trident 운영자는 기존 Astra Trident 설치를 식별하고 운영자와 동일한 버전으로 업그레이드합니다.

네임스페이스 범위 연산자 설치를 업그레이드합니다

네임스페이스 범위 연산자(버전 20.07 ~ 20.10)를 사용하여 설치된 Astra Trident의 인스턴스에서 업그레이드하려면 다음 단계를 따라야 합니다.

단계
  1. 기존 Trident 설치의 상태를 확인합니다. 이렇게 하려면 '트리펜Provisioner'의 * 상태 * 를 확인하십시오. 상태는 '설치됨'이어야 합니다.

    $ kubectl describe tprov trident -n trident | grep Message: -A 3
    Message:  Trident installed
    Status:   Installed
    Version:  v20.10.1
    참고 상태가 '업데이트 중'으로 표시되면 계속하기 전에 해당 상태를 해결해야 합니다. 가능한 상태 값 목록은 를 참조하십시오 "여기".
  2. Trident 설치 프로그램과 함께 제공된 매니페스트를 사용하여 'Trident Orchestrator' CRD를 만듭니다.

    # Download the release required [21.01]
    $ mkdir 21.07.1
    $ cd 21.07.1
    $ wget https://github.com/NetApp/trident/releases/download/v21.07.1/trident-installer-21.07.1.tar.gz
    $ tar -xf trident-installer-21.07.1.tar.gz
    $ cd trident-installer
    $ kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
  3. 매니페스트를 사용하여 네임스페이스 범위 연산자를 삭제합니다. 이 단계를 완료하려면 네임스페이스 범위의 운영자를 배포하는 데 사용되는 "bundle.YAML" 파일이 필요합니다. 에서 Bundle.YAML을 얻을 수 있습니다 "Trident 저장소". 해당 분기를 사용해야 합니다.

    참고 Trident 설치 매개 변수를 필요에 따라 변경해야 합니다(예: 의 값 변경) tridentImage, autosupportImage`개인 이미지 저장소 및 제공 `imagePullSecrets) 네임스페이스 범위 연산자를 삭제한 후 클러스터 범위 연산자를 설치하기 전에 먼저 . 업데이트할 수 있는 전체 매개 변수 목록은 를 참조하십시오 "매개 변수 목록입니다".
    #Ensure you are in the right directory
    $ pwd
    $ /root/20.10.1/trident-installer
    
    #Delete the namespace-scoped operator
    $ kubectl delete -f deploy/bundle.yaml
    serviceaccount "trident-operator" deleted
    clusterrole.rbac.authorization.k8s.io "trident-operator" deleted
    clusterrolebinding.rbac.authorization.k8s.io "trident-operator" deleted
    deployment.apps "trident-operator" deleted
    podsecuritypolicy.policy "tridentoperatorpods" deleted
    
    #Confirm the Trident operator was removed
    $ kubectl get all -n trident
    NAME                               READY   STATUS    RESTARTS   AGE
    pod/trident-csi-68d979fb85-dsrmn   6/6     Running   12         99d
    pod/trident-csi-8jfhf              2/2     Running   6          105d
    pod/trident-csi-jtnjz              2/2     Running   6          105d
    pod/trident-csi-lcxvh              2/2     Running   8          105d
    
    NAME                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)              AGE
    service/trident-csi   ClusterIP   10.108.174.125   <none>        34571/TCP,9220/TCP   105d
    
    NAME                         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                                     AGE
    daemonset.apps/trident-csi   3         3         3       3            3           kubernetes.io/arch=amd64,kubernetes.io/os=linux   105d
    
    NAME                          READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/trident-csi   1/1     1            1           105d
    
    NAME                                     DESIRED   CURRENT   READY   AGE
    replicaset.apps/trident-csi-68d979fb85   1         1         1       105d

    이 단계에서 트리덴트 - operator - xxxxxxxxxx - xxxxx'POD가 삭제됩니다.

  4. (선택 사항) 설치 매개변수를 수정해야 하는 경우 ' TERentProvisioner' 사양을 업데이트합니다. 컨테이너 이미지를 가져올 전용 이미지 레지스트리를 수정하거나, 디버그 로그를 사용하거나, 이미지 풀 비밀을 지정하는 등의 변경 사항이 있을 수 있습니다.

    $  kubectl patch tprov <trident-provisioner-name> -n <trident-namespace> --type=merge -p '{"spec":{"debug":true}}'
  5. 클러스터 범위 연산자를 설치합니다.

    참고 클러스터 범위 운영자를 설치하면 '트리펜테너' 객체가 트리펜터레이터 객체로 마이그레이션되고, 트리펜서너 CRD와 트리펜서너 객체를 삭제하고, 아스트라 Trident를 사용 중인 클러스터 범위 연산자로 업그레이드합니다. 다음 예제에서 Trident는 21.07.1로 업그레이드됩니다.
    중요함 클러스터 범위 연산자를 사용하여 Astra Trident를 업그레이드하면 tridentProvisioner가 같은 이름의 tridentOrchestrator 객체로 마이그레이션됩니다. 이 작업은 작업자가 자동으로 처리합니다. 업그레이드에는 이전과 동일한 네임스페이스에 Astra Trident도 설치됩니다.
    #Ensure you are in the correct directory
    $ pwd
    $ /root/21.07.1/trident-installer
    
    #Install the cluster-scoped operator in the **same namespace**
    $ kubectl create -f deploy/bundle.yaml
    serviceaccount/trident-operator created
    clusterrole.rbac.authorization.k8s.io/trident-operator created
    clusterrolebinding.rbac.authorization.k8s.io/trident-operator created
    deployment.apps/trident-operator created
    podsecuritypolicy.policy/tridentoperatorpods created
    
    #All tridentProvisioners will be removed, including the CRD itself
    $ kubectl get tprov -n trident
    Error from server (NotFound): Unable to list "trident.netapp.io/v1, Resource=tridentprovisioners": the server could not find the requested resource (get tridentprovisioners.trident.netapp.io)
    
    #tridentProvisioners are replaced by tridentOrchestrator
    $ kubectl get torc
    NAME      AGE
    trident   13s
    
    #Examine Trident pods in the namespace
    $ kubectl get pods -n trident
    NAME                                READY   STATUS    RESTARTS   AGE
    trident-csi-79df798bdc-m79dc        6/6     Running   0          1m41s
    trident-csi-xrst8                   2/2     Running   0          1m41s
    trident-operator-5574dbbc68-nthjv   1/1     Running   0          1m52s
    
    #Confirm Trident has been updated to the desired version
    $ kubectl describe torc trident | grep Message -A 3
    Message:                Trident installed
    Namespace:              trident
    Status:                 Installed
    Version:                v21.07.1

제어 기반 작업자 설치를 업그레이드합니다

제어 기반 운영자 설치를 업그레이드하려면 다음 단계를 수행하십시오.

단계
  1. 최신 Astra Trident 릴리스를 다운로드하십시오.

  2. 'helm upgrade' 명령어를 사용한다. 다음 예를 참조하십시오.

    $ helm upgrade <name> trident-operator-21.07.1.tgz

    여기서 trident-operator-21.07.1.tgz는 업그레이드하려는 버전을 나타냅니다.

  3. 'Helm list'를 실행하여 차트와 앱 버전이 모두 업그레이드되었는지 확인합니다.

참고 업그레이드 중에 구성 데이터를 전달하려면 '--set'을 사용합니다.

예를 들어, 기본값인 tridentDebug를 변경하려면 다음 명령을 실행합니다.

$ helm upgrade <name> trident-operator-21.07.1-custom.tgz --set tridentDebug=true

'$tridentctl logs'를 실행하면 디버그 메시지가 표시됩니다.

참고 초기 설치 중에 기본값이 아닌 옵션을 설정하는 경우 업그레이드 명령에 옵션이 포함되어 있는지 확인하십시오. 그렇지 않으면 값이 기본값으로 재설정됩니다.

비운영자 설치에서 업그레이드

위에 나열된 필수 조건을 충족하는 CSI Trident 인스턴스가 있는 경우 Trident 운영자의 최신 릴리즈로 업그레이드할 수 있습니다.

단계
  1. 최신 Astra Trident 릴리스를 다운로드하십시오.

    # Download the release required [21.07.1]
    $ mkdir 21.07.1
    $ cd 21.07.1
    $ wget https://github.com/NetApp/trident/releases/download/v21.07.1/trident-installer-21.07.1.tar.gz
    $ tar -xf trident-installer-21.07.1.tar.gz
    $ cd trident-installer
  2. 매니페스트에서 트라이디오케스트레이터 CRD를 만듭니다.

    $ kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
  3. 연산자를 전개합니다.

    #Install the cluster-scoped operator in the **same namespace**
    $ kubectl create -f deploy/bundle.yaml
    serviceaccount/trident-operator created
    clusterrole.rbac.authorization.k8s.io/trident-operator created
    clusterrolebinding.rbac.authorization.k8s.io/trident-operator created
    deployment.apps/trident-operator created
    podsecuritypolicy.policy/tridentoperatorpods created
    
    #Examine the pods in the Trident namespace
    NAME                                READY   STATUS    RESTARTS   AGE
    trident-csi-79df798bdc-m79dc        6/6     Running   0          150d
    trident-csi-xrst8                   2/2     Running   0          150d
    trident-operator-5574dbbc68-nthjv   1/1     Running   0          1m30s
  4. Astra Trident를 설치할 '트리젠오케스트레이터' CR을 만듭니다.

    #Create a tridentOrchestrator to initate a Trident install
    $ cat deploy/crds/tridentorchestrator_cr.yaml
    apiVersion: trident.netapp.io/v1
    kind: TridentOrchestrator
    metadata:
      name: trident
    spec:
      debug: true
      namespace: trident
    
    $ kubectl create -f deploy/crds/tridentorchestrator_cr.yaml
    
    #Examine the pods in the Trident namespace
    NAME                                READY   STATUS    RESTARTS   AGE
    trident-csi-79df798bdc-m79dc        6/6     Running   0          1m
    trident-csi-xrst8                   2/2     Running   0          1m
    trident-operator-5574dbbc68-nthjv   1/1     Running   0          5m41s
    
    #Confirm Trident was upgraded to the desired version
    $ kubectl describe torc trident | grep Message -A 3
    Message:                Trident installed
    Namespace:              trident
    Status:                 Installed
    Version:                v21.07.1

기존 백엔드 및 PVC는 자동으로 사용할 수 있습니다.