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

컨트롤러 확장성

기여자 joan-ing

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) 드라이버를 사용하십시오

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

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

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