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

Trident 운영자 설치를 사용자 지정합니다

기여자

Trident 연산자를 사용하면 사양의 속성을 사용하여 Trident 설치를 사용자 정의할 수 TridentOrchestrator 있습니다. 허용되는 인수를 넘어 설치를 사용자 지정하려면 TridentOrchestrator 을 사용하여 tridentctl 사용자 지정 YAML 매니페스트를 생성하여 필요에 따라 수정할 수 있습니다.

컨트롤러 Pod 및 노드 포드 이해

Trident는 단일 컨트롤러 Pod와 클러스터의 각 작업자 노드에서 노드 Pod로 실행됩니다. 노드 포드는 Trident 볼륨을 마운트하려는 호스트에서 실행되고 있어야 합니다.

쿠버네티스 "노드 선택기""관용과 오해" 포드를 특정 노드 또는 기본 노드에서 실행하도록 제한하는 데 사용됩니다. ControllerPlugin과 을 사용합니다 `NodePlugin`구속 조건과 덮어쓰기를 지정할 수 있습니다.

  • 컨트롤러 플러그인은 스냅샷 및 크기 조정과 같은 볼륨 프로비저닝 및 관리를 처리합니다.

  • 노드 플러그인은 스토리지에 노드를 연결하는 작업을 처리합니다.

구성 옵션

경고 spec.namespace Trident가 설치된 네임스페이스를 나타내기 위해 에 TridentOrchestrator 지정됩니다. 이 매개 변수 * 는 Trident 설치 후 업데이트할 수 없습니다 *. 이렇게 하면 TridentOrchestrator 상태가 로 `Failed`변경됩니다. Trident는 네임스페이스 간에 마이그레이션되지 않습니다.

이 표에 자세히 나와 있습니다 TridentOrchestrator 속성.

매개 변수 설명 기본값

namespace

Trident를 설치할 네임스페이스입니다

"default"

"버그"

Trident에 대해 디버깅을 활성화합니다

거짓입니다

enableForceDetach

ontap-san, ontap-san-economyontap-nas-economy 만. Kubernetes Non-Graceful Node Shutdown(ngns)과 함께 작동하여 클러스터 관리자가 마운트된 볼륨이 있는 워크로드를 노드가 정상 상태가 아닌 경우 새 노드로 안전하게 마이그레이션할 수 있도록 합니다.

거짓입니다

windows

를 로 설정합니다 true Windows 작업자 노드에 설치할 수 있습니다.

거짓입니다

cloudProvider

를 로 설정합니다 "Azure" AKS 클러스터에서 관리되는 ID 또는 클라우드 ID를 사용하는 경우 EKS 클러스터에서 클라우드 ID를 사용하는 경우 "AWS"로 설정합니다.

""

cloudIdentity

AKS 클러스터에서 클라우드 ID를 사용할 때 워크로드 ID("Azure.workload.identity/client-id: xxxxxxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxx")로 설정합니다. EKS 클러스터에서 클라우드 ID를 사용할 때 AWS IAM 역할(" eks.amazonaws.com/role-arn: arn:AWS:IAM::123456:role/Trident-role")로 설정합니다.

""

IPv6

IPv6를 통해 Trident를 설치합니다

거짓

k8sTimeout

Kubernetes 작업 시간이 초과되었습니다

30sec

silenceAutosupport

AutoSupport 번들을 NetApp로 보내지 마십시오
자동으로 계층화

거짓입니다

자동 지원 이미지

AutoSupport 텔레메트리 컨테이너 이미지입니다

"netapp/trident-autosupport:24.10"

자동 지원 프록시

AutoSupport를 보내는 프록시의 주소/포트입니다
원격 측정

"http://proxy.example.com:8888"

"제거"를 선택합니다

Trident를 제거하는 데 사용되는 플래그입니다

거짓입니다

logFormat

사용할 Trident 로깅 형식 [text, json]

"text"

트리덴티이미지

설치할 Trident 이미지

"netapp/trident:24.10"

'imageRegistry'입니다

형식의 내부 레지스트리 경로입니다
<registry FQDN>[:port][/subpath]

"k8s.gcr.io" (Kubernetes 1.19 이상) 또는 "quay.io/k8scsi"

쿠벨레트디렉토리

호스트의 kubelet 디렉토리에 대한 경로입니다

"/var/lib/kubelet"

wipeout

Trident의 전체 제거를 수행하기 위해 삭제할 리소스 목록입니다

'imagePullSecrets'

내부 레지스트리에서 이미지를 가져올 수 있는 비밀

imagePullPolicy

Trident 운영자의 이미지 풀 정책을 설정합니다. 유효한 값은 다음과 같습니다.
Always 항상 이미지를 당깁니다.
IfNotPresent 이미지가 아직 노드에 없는 경우에만 이미지를 가져옵니다.
Never 이미지를 당기지 않습니다.

IfNotPresent

'controllerPluginNodeSelector'

Pod용 추가 노드 선택기 는 와 동일한 형식을 따릅니다 pod.spec.nodeSelector.

기본값 없음, 선택 사항

'컨트롤러 PluginTolerations'

Pod에 대한 Kubernetes 허용 설정을 재정의합니다. 는 와 동일한 형식을 따릅니다 pod.spec.Tolerations.

기본값 없음, 선택 사항

노드플러거노드 선택기

Pod용 추가 노드 선택기 는 와 동일한 형식을 따릅니다 pod.spec.nodeSelector.

기본값 없음, 선택 사항

노드 PluginTolerations

Pod에 대한 Kubernetes 허용 설정을 재정의합니다. 는 와 동일한 형식을 따릅니다 pod.spec.Tolerations.

기본값 없음, 선택 사항

nodePrep

Trident가 Kubernetes 클러스터의 노드를 준비하여 지정된 데이터 스토리지 프로토콜을 사용하여 볼륨을 관리할 수 있도록 합니다. * 현재 iscsi 지원되는 유일한 값입니다. *

참고 POD 매개 변수 포맷에 대한 자세한 내용은 을 참조하십시오 "노드에 Pod 할당".

강제 분리에 대한 세부 정보

강제 분리는, ontap-san-economy onatp-nas-economy 에서만 사용할 수 ontap-san 있습니다. 강제 분리를 활성화하기 전에 Kubernetes 클러스터에서 비정상 노드 종료(ngns)를 활성화해야 합니다. 자세한 내용은 을 "Kubernetes: 노드 정상 종료 아님"참조하십시오.

참고 드라이버를 사용할 때는 ontap-nas-economy Trident이 관리형 엑스포트 정책을 사용하여 적용된 태그로 인해 Kubernetes 노드에서 액세스를 제한할 수 있도록 백엔드 구성에서 매개 변수를 로 true 설정해야 autoExportPolicy 합니다.
경고 Trident는 Kubernetes ngns를 사용하기 때문에 허용할 수 없는 모든 워크로드의 일정이 재조정될 때까지 비정상 노드에서 테인트를 제거하지 마십시오 out-of-service. 무모하게 타트를 적용하거나 제거하면 백엔드 데이터 보호가 위태롭게 될 수 있습니다.

Kubernetes 클러스터 관리자가 노드에 태그를 enableForceDetach 적용하고 node.kubernetes.io/out-of-service=nodeshutdown:NoExecute 로 설정하면 true Trident이 노드 상태와 다음을 확인합니다.

  1. 해당 노드에 마운트된 볼륨에 대한 백엔드 입출력 액세스를 중단합니다.

  2. Trident 노드 개체를 로 dirty 표시합니다(새 발행물에 안전하지 않음).

    참고 Trident 컨트롤러는 Trident 노드 포드에 의해 노드가 다시 검증될 때까지(로 표시된 후) 새로운 게시 볼륨 요청을 거부합니다 dirty. Trident가 노드를 확인할 수 있을 때까지(새 발행물에 안전함) 마운트된 PVC로 예약된 모든 작업 부하(클러스터 노드가 정상 및 준비 상태임 이후에도)는 수락되지 clean 않습니다.

노드 상태가 복원되고 정점이 제거되면 Trident는 다음을 수행합니다.

  1. 노드에서 오래된 게시된 경로를 식별하고 제거합니다.

  2. 노드가 상태(서비스 중단 시간이 제거되고 노드가 상태)이고 모든 오래되고 Ready 게시된 경로가 정리된 경우 cleanable, Trident는 노드를 로 재전송하고 게시된 새로운 볼륨을 노드에 허용합니다. clean

샘플 구성

에서 속성을 사용할 수 있습니다 구성 옵션 정의할 때 TridentOrchestrator 를 눌러 설치를 사용자 정의합니다.

기본 사용자 정의 구성

다음은 기본 사용자 정의 설치의 예입니다.

cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  imagePullSecrets:
  - thisisasecret
노드 선택기

이 예에서는 노드 선택기가 있는 Trident를 설치합니다.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  controllerPluginNodeSelector:
    nodetype: master
  nodePluginNodeSelector:
    storage: netapp
Windows 작업자 노드

이 예제에서는 Windows 작업자 노드에 Trident를 설치합니다.

cat deploy/crds/tridentorchestrator_cr.yaml
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  windows: true
AKS 클러스터에서 관리되는 ID입니다

이 예에서는 AKS 클러스터에서 관리되는 ID를 사용하도록 Trident를 설치합니다.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "Azure"
AKS 클러스터에서 클라우드 ID입니다

이 예에서는 AKS 클러스터에서 클라우드 ID와 함께 사용할 Trident를 설치합니다.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "Azure"
  cloudIdentity: 'azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx'
EKS 클러스터에서 클라우드 ID입니다

이 예에서는 AKS 클러스터에서 클라우드 ID와 함께 사용할 Trident를 설치합니다.

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "AWS"
  cloudIdentity: "'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'"
GKE용 클라우드 ID

이 예에서는 GKE 클러스터의 클라우드 ID와 함께 사용할 Trident를 설치합니다.

apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-gcp-gcnv
spec:
  version: 1
  storageDriverName: google-cloud-netapp-volumes
  projectNumber: '012345678901'
  network: gcnv-network
  location: us-west2
  serviceLevel: Premium
  storagePool: pool-premium1