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

컨트롤러 확장성

Trident는 여러 스토리지 드라이버에 걸쳐 향상된 동시성을 통해 컨트롤러 확장성을 제공합니다. 고객은 일반 출시 시점에 컨트롤러 확장성을 지원하는 Trident 드라이버와 Trident 26.02에서 기술 미리 보기로 제공되는 드라이버를 확인할 수 있습니다. 이를 통해 확장 가능한 Kubernetes 환경을 위한 정보에 기반한 배포 결정을 내리고 적절한 위험 관리를 수행할 수 있습니다.

핵심 개념 및 정의

컨트롤러 확장성

컨트롤러 확장성은 Trident 컨트롤러가 단일 잠금 뒤에서 여러 스토리지 작업을 직렬화하는 대신 병렬로 처리할 수 있는 능력을 의미합니다. 이러한 작업에는 볼륨 생성, 삭제, 크기 조정, 스냅샷 생성 및 삭제, 볼륨 게시 및 게시 취소, 백엔드 관리가 포함됩니다.

컨트롤러 확장성이 활성화되면 서로 다른 볼륨 및 백엔드에 대한 작업이 동시에 진행됩니다. 이는 PersistentVolumeClaim 및 VolumeSnapshot 작업이 동시에 많이 발생하는 환경에서 처리량을 높이고 엔드 투 엔드 작업 시간을 단축합니다.

컨트롤러 확장성 지원

Trident는 스토리지 드라이버에 따라 다양한 성숙도 수준의 컨트롤러 확장성을 지원합니다.

일반 가용성

다음 드라이버는 Trident 26.02의 정식 출시 버전에서 컨트롤러 확장성을 지원합니다.

  • ontap-san

  • ontap-nas

  • google-cloud-netapp-volumes

참고
`google-cloud-netapp-volumes`와 `google-cloud-netapp-volumes-san` 드라이버는 서로 다릅니다.  `google-cloud-netapp-volumes`만 지원됩니다. 백엔드 구성이나 예제에서 `google-cloud-netapp-volumes-san`를 사용하지 마십시오.

컨트롤러 확장성 활성화

컨트롤러 확장성은 enableConcurrency 구성 옵션을 통해 제어됩니다. 이 옵션은 Trident 설치 중 또는 기존 배포 업데이트 시 명시적으로 활성화해야 합니다.

Trident 운영자 배포

Trident operator에서 컨트롤러 확장성을 활성화하려면, enableConcurrency`를 `true`로 `TridentOrchestrator 커스텀 리소스에서 설정하세요.

신규 설치

`TridentOrchestrator` CR을 생성하거나 편집하고  `enableConcurrency`을(를)  `true`(으)로 설정합니다:
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  namespace: trident
  enableConcurrency: true

CR 적용:

kubectl apply -f tridentorchestrator_cr.yaml

기존 설치

기존 TridentOrchestrator CR에 패치를 적용하여 컨트롤러 확장성을 활성화합니다.

kubectl patch torc trident --type=merge -p '{"spec":{"enableConcurrency":true}}'

설정이 적용되었는지 확인합니다.

kubectl get torc trident -o jsonpath='{.status.currentInstallationParams.enableConcurrency}'

Helm 배포

Helm을 사용하여 컨트롤러 확장성을 활성화하려면 enableConcurrency 값을 `true`로 설정하십시오.

신규 설치

helm install trident netapp-trident/trident-operator --namespace trident --create-namespace --set enableConcurrency=true

기존 설치

helm upgrade trident netapp-trident/trident-operator --namespace trident --set enableConcurrency=true

또는, 사용자 지정 values.yaml 파일에서 enableConcurrency`을(를) `true(으)로 설정하십시오:

# values.yaml
enableConcurrency: true

그런 다음 값 파일을 사용하여 설치 또는 업그레이드하십시오.

helm install trident netapp-trident/trident-operator --namespace trident --create-namespace -f values.yaml

tridentctl 배포

`tridentctl`을(를) 사용하여 컨트롤러 확장성을 활성화하려면 설치 중에  `--enable-concurrency` 플래그를 전달하십시오.

신규 설치

tridentctl install -n trident --enable-concurrency

기존 설치

기존 tridentctl 기반 배포에서 컨트롤러 확장성을 활성화하려면 다음 플래그를 사용하여 제거한 후 다시 설치하십시오.

tridentctl uninstall -n trident
tridentctl install -n trident --enable-concurrency

컨트롤러 확장성이 활성화되어 있는지 확인하십시오

컨트롤러 확장성을 활성화한 후 컨트롤러 파드 로그를 확인하여 Trident 컨트롤러가 동시 실행 기능을 활성화한 상태로 실행 중인지 확인하십시오.

kubectl logs -n trident deploy/trident-controller | grep -i concurrency

동시 실행이 활성화되었음을 나타내는 로그 항목이 표시됩니다.

기술 미리 보기

다음 드라이버는 Trident 26.02에서 기술 미리 보기로 컨트롤러 확장성을 지원합니다.

  • nas-eco

  • san-eco

다음 드라이버의 경우:

  • 컨트롤러 동시성을 평가 및 테스트할 수 있습니다.

  • 향후 릴리스에서 동작 방식이 변경될 수 있습니다.

  • 운영 환경에서는 사용하지 않는 것이 좋습니다

동시성 동작

컨트롤러 확장성이 활성화된 경우:

  • Trident는 단일 전역 잠금을 리소스별 세분화된 잠금으로 대체합니다.

  • 동일한 리소스를 수정하는 작업은 데이터 일관성을 유지하기 위해 직렬화됩니다

  • 리소스에서 읽기만 하는 작업은 해당 리소스에 대한 다른 읽기 작업과 동시에 진행될 수 있습니다.

  • Trident는 백엔드 스토리지 시스템의 과부하를 방지하기 위해 관리 LIF당 동시 ONTAP API 요청을 20개로 제한합니다

  • 여러 백엔드가 동일한 관리 LIF를 공유하는 경우 이 20개 요청 제한을 공유합니다

알려진 제한 사항 및 고려 사항

컨트롤러 확장성에는 다음 사항이 적용됩니다.

  • 동시성은 Trident 컨트롤러에 의해 내부적으로 관리됩니다

  • 이번 릴리스에는 사용자가 구성할 수 있는 동시성 제한이 없습니다

  • 전체 처리량은 다음 요소에 따라 달라집니다.

    • 사용 중인 스토리지 드라이버

    • 백엔드 응답성

    • Kubernetes API 서버 성능

  • 높은 동시성은 백엔드 스토리지 시스템의 부하를 증가시킬 수 있습니다

주의사항 및 제한사항

Trident 26.02에는 다음과 같은 제한 사항이 적용됩니다.

  • 컨트롤러 확장성 동작은 모든 드라이버에서 동일하지 않습니다

  • 기술 미리 보기 드라이버에서 다음과 같은 현상이 나타날 수 있습니다.

    • 높은 부하에서 일관되지 않은 성능

    • 릴리스 간 동작 변경 사항

  • 병렬 실행으로 인해 동시 작업 디버깅이 더 복잡해질 수 있습니다.

  • 지표 및 로그에는 인터리브된 작업 출력이 표시될 수 있습니다

권장 사항

  • 높은 확장성이 필요한 운영 환경에는 일반 가용성(GA) 드라이버를 사용하십시오

  • 비프로덕션 환경에서 기술 미리 보기 드라이버를 평가합니다

  • 대규모로 운영할 때 백엔드 및 컨트롤러 성능 모니터링

  • 자동화 스크립트에서 작업 순서를 가정하지 마십시오