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

문제 해결

기여자

Astra Trident를 설치 및 사용하는 동안 발생할 수 있는 문제를 해결하려면 여기에 제공된 포인터를 사용하십시오.

일반 문제 해결

  • Trident 포드가 제대로 표시되지 않는 경우(예: Trident 포드가 에 걸린 경우 ContainerCreating 2개 미만의 준비된 컨테이너로 단계를 진행). 를 실행합니다 kubectl -n trident describe deployment tridentkubectl -n trident describe pod trident--** 더 많은 통찰력을 제공할 수 있습니다. kubelet 로그 얻기(예: VIA journalctl -xeu kubelet) 또한 도움이 될 수 있습니다.

  • Trident 로그에 충분한 정보가 없으면 를 전달하여 Trident에 대한 디버그 모드를 사용하도록 설정할 수 있습니다 -d 설치 옵션에 따라 설치 매개 변수에 플래그를 지정합니다.

    그런 다음 디버그가 를 사용하여 설정되었는지 확인합니다 ./tridentctl logs -n trident 검색 중입니다 level=debug msg 를 로그로 이동합니다.

    운영자와 함께 설치됩니다
    kubectl patch torc trident -n <namespace> --type=merge -p '{"spec":{"debug":true}}'

    그러면 모든 Trident 포드가 다시 시작됩니다. 이 작업은 몇 초 정도 걸릴 수 있습니다. 의 출력에서 '나이' 열을 관찰하여 이를 확인할 수 있습니다 kubectl get pod -n trident.

    Astra Trident 20.07 및 20.10용 tprov 대신 torc.

    헬름과 함께 설치
    helm upgrade <name> trident-operator-21.07.1-custom.tgz --set tridentDebug=true`
    tridentctl과 함께 설치됩니다
    ./tridentctl uninstall -n trident
    ./tridentctl install -d -n trident
  • 을 포함하여 각 백엔드에 대한 디버그 로그를 얻을 수도 있습니다 debugTraceFlags 백엔드 정의에서 예를 들어, 을 포함합니다 debugTraceFlags: {“api”:true, “method”:true,} Trident 로그에서 API 호출 및 메서드 트래버스된 정보를 얻습니다. 기존 백엔드에 가 있을 수 있습니다 debugTraceFlags 로 구성됩니다 tridentctl backend update.

  • RedHat CoreOS를 사용할 때는 다음을 확인하십시오 iscsid 는 작업자 노드에서 활성화되고 기본적으로 시작됩니다. 이 작업은 OpenShift MachineConfigs를 사용하거나 점화 템플릿을 수정하여 수행할 수 있습니다.

  • 에서 Trident를 사용할 때 일반적으로 발생할 수 있는 문제입니다 "Azure NetApp Files" 테넌트 및 클라이언트 암호가 권한이 부족한 앱 등록에서 나오는 경우 입니다. Trident 요구사항의 전체 목록은 를 참조하십시오 "Azure NetApp Files" 구성.

  • 컨테이너에 PV를 장착하는 데 문제가 있는 경우, 반드시 확인하십시오 rpcbind 가 설치되어 실행 중입니다. 호스트 OS에 필요한 패키지 관리자를 사용하여 확인합니다 rpcbind 가 실행 중입니다. 의 상태를 확인할 수 있습니다 rpcbind 를 실행하여 서비스를 제공합니다 systemctl status rpcbind 또는 그와 동등한 제품이라는 것입니다.

  • Trident 백엔드가 에 포함되어 있다고 보고하는 경우 failed State: 이전에 작업을 수행했지만 백엔드와 연결된 SVM/관리 자격 증명을 변경했기 때문일 수 있습니다. 을 사용하여 백엔드 정보를 업데이트합니다 tridentctl update backend 또는 Trident Pod를 바운드하면 이 문제가 해결됩니다.

  • Docker를 컨테이너 런타임으로 사용하여 Trident를 설치할 때 권한 문제가 발생하면 를 사용하여 Trident 설치를 시도하십시오 --in cluster=false 깃발. 이렇게 하면 설치 프로그램 포드가 사용되지 않으며 로 인해 발생하는 권한 문제가 발생하지 않습니다 trident-installer 사용자.

  • 를 사용합니다 uninstall parameter <Uninstalling Trident> 실행 실패 후 정리. 기본적으로 이 스크립트는 Trident에서 만든 CRD를 제거하지 않으므로 실행 중인 구축에서도 안전하게 제거한 후 다시 설치할 수 있습니다.

  • Trident의 이전 버전으로 다운그레이드하려면 먼저 를 실행하십시오 tridentctl uninstall Trident를 제거하는 명령입니다. 원하는 를 다운로드합니다 "Trident 버전" 를 사용하여 를 설치합니다 tridentctl install 명령.

  • 성공적으로 설치한 후 PVC가 에 고착된 경우 Pending 단계, 실행 중 kubectl describe pvc Trident가 이 PVC에 대한 PV를 프로비저닝하지 못한 이유에 대한 추가 정보를 제공할 수 있습니다.

연산자를 사용한 Trident 배포 실패

연산자를 사용하여 Trident를 배포하는 경우 의 상태입니다 TridentOrchestrator 변경 시작 Installing 를 선택합니다 Installed. 을(를) 관찰하면 Failed 상태, 운용자가 자체적으로 복구할 수 없는 경우, 다음 명령어를 실행해 운용자의 로그를 확인해야 한다.

tridentctl logs -l trident-operator

삼원 운영자 컨테이너의 로그를 뒤로하면 문제가 있는 위치를 가리킬 수 있습니다. 예를 들어, 이러한 문제 중 하나는 Airgapped 환경의 업스트림 등록부에서 필요한 컨테이너 이미지를 가져올 수 없는 것일 수 있습니다.

Trident를 설치하지 못한 이유를 알아보려면 다음을 수행합니다
을(를) 살펴보십시오 TridentOrchestrator 상태.

kubectl describe torc trident-2
Name:         trident-2
Namespace:
Labels:       <none>
Annotations:  <none>
API Version:  trident.netapp.io/v1
Kind:         TridentOrchestrator
...
Status:
  Current Installation Params:
    IPv6:
    Autosupport Hostname:
    Autosupport Image:
    Autosupport Proxy:
    Autosupport Serial Number:
    Debug:
    Image Pull Secrets:         <nil>
    Image Registry:
    k8sTimeout:
    Kubelet Dir:
    Log Format:
    Silence Autosupport:
    Trident Image:
  Message:                      Trident is bound to another CR 'trident'
  Namespace:                    trident-2
  Status:                       Error
  Version:
Events:
  Type     Reason  Age                From                        Message
  ----     ------  ----               ----                        -------
  Warning  Error   16s (x2 over 16s)  trident-operator.netapp.io  Trident is bound to another CR 'trident'

이 오류는 가 이미 있음을 나타냅니다 TridentOrchestrator
Trident를 설치하는 데 사용했습니다. 각 Kubernetes 클러스터는 이러한 전용입니다
Trident의 인스턴스가 하나만 있으면 지정된 모든 인스턴스에서 운영자가 이를 확인합니다
활성 상태인 시간이 한 개뿐입니다 TridentOrchestrator 할 수 있습니다
생성.

또한 Trident Pod의 상태를 관찰하면 무언가 잘못되었음을 나타내는 경우가 많습니다.

kubectl get pods -n trident

NAME                                READY   STATUS             RESTARTS   AGE
trident-csi-4p5kq                   1/2     ImagePullBackOff   0          5m18s
trident-csi-6f45bfd8b6-vfrkw        4/5     ImagePullBackOff   0          5m19s
trident-csi-9q5xc                   1/2     ImagePullBackOff   0          5m18s
trident-csi-9v95z                   1/2     ImagePullBackOff   0          5m18s
trident-operator-766f7b8658-ldzsv   1/1     Running            0          8m17s

Pod가 완전히 초기화될 수 없음을 확인할 수 있습니다
하나 이상의 컨테이너 이미지를 가져오지 않았기 때문입니다.

문제를 해결하려면 을 편집해야 합니다 TridentOrchestrator 있습니다.
또는 을(를) 삭제할 수도 있습니다 `TridentOrchestrator`을 사용하여 새 을 만듭니다
수정되고 정확한 정의를 가진 하나.

를 사용하여 Trident를 배포하지 못했습니다 tridentctl

무엇이 잘못되었는지 알아내기 위해 를 사용하여 설치 프로그램을 다시 실행할 수 있습니다 -d 디버그 모드를 설정하고 문제가 무엇인지 이해하는 데 도움이 되는 인수:

./tridentctl install -n trident -d

문제를 해결한 후 다음과 같이 설치를 정리한 다음 를 실행할 수 있습니다 tridentctl install 다시 명령:

./tridentctl uninstall -n trident
INFO Deleted Trident deployment.
INFO Deleted cluster role binding.
INFO Deleted cluster role.
INFO Deleted service account.
INFO Removed Trident user from security context constraint.
INFO Trident uninstallation succeeded.

Astra Trident 및 CRD를 완전히 제거합니다

Astra Trident와 생성된 모든 CRD 및 관련 사용자 지정 리소스를 완전히 제거할 수 있습니다.

경고 이 작업은 취소할 수 없습니다. Astra Trident를 완전히 새로 설치하고 싶지 않은 한 이 작업을 수행하지 마십시오. CRD를 제거하지 않고 Astra Trident를 제거하려면 를 참조하십시오 "Astra Trident를 제거합니다".
Trident 운영자

Trident 연산자를 사용하여 Astra Trident를 제거하고 CRD를 완전히 제거하려면 다음과 같이 하십시오.

kubectl patch torc <trident-orchestrator-name> --type=merge -p '{"spec":{"wipeout":["crds"],"uninstall":true}}'
헬름

Astra Trident를 제거하고 Helm을 사용하여 CRD를 완전히 제거하려면:

kubectl patch torc trident --type=merge -p '{"spec":{"wipeout":["crds"],"uninstall":true}}'
<code>tridentctl</code>

을 사용하여 Astra Trident를 제거한 후 CRD를 완전히 제거합니다 tridentctl

tridentctl obliviate crd

rwx 원시 블록 네임스페이스와 관련된 NVMe 노드 스테이징 해제 실패 o Kubernetes 1.26

Kubernetes 1.26을 실행 중인 경우 rwx 원시 블록 네임스페이스와 함께 NVMe/TCP를 사용할 때 노드 스테이징 해제가 실패할 수 있습니다. 다음 시나리오는 오류에 대한 해결 방법을 제공합니다. 또는 Kubernetes를 1.27로 업그레이드할 수도 있습니다.

네임스페이스 및 Pod를 삭제했습니다

Pod에 Astra Trident 관리형 네임스페이스(NVMe 영구 볼륨)가 연결된 시나리오를 고려해 보십시오. ONTAP 백엔드에서 네임스페이스를 직접 삭제하는 경우, Pod를 삭제하려고 하면 스테이징 프로세스가 중단됩니다. 이 시나리오는 Kubernetes 클러스터나 다른 작동에 영향을 주지 않습니다.

해결 방법

해당 노드에서 영구 볼륨(해당 네임스페이스에 해당)을 마운트 해제하고 삭제합니다.

데이터 LIF가 차단되었습니다

 If you block (or bring down) all the dataLIFs of the NVMe Astra Trident backend, the unstaging process gets stuck when you attempt to delete the pod. In this scenario, you cannot run any NVMe CLI commands on the Kubernetes node.
.해결 방법
전체 기능을 복원하려면 dataLIFS를 불러옵니다.

네임스페이스 매핑을 삭제했습니다

 If you remove the `hostNQN` of the worker node from the corresponding subsystem, the unstaging process gets stuck when you attempt to delete the pod. In this scenario, you cannot run any NVMe CLI commands on the Kubernetes node.
.해결 방법
를 추가합니다 `hostNQN` 하위 시스템으로 돌아갑니다.