Trident 운영자 설치 사용자 지정
Trident 운영자를 사용하면 TridentOrchestrator 사양의 속성을 사용하여 Trident 설치를 사용자 지정할 수 있습니다. TridentOrchestrator 인수가 허용하는 것 이상으로 설치를 사용자 지정하려면 `tridentctl`를 사용하여 필요에 따라 수정할 사용자 지정 YAML 매니페스트를 생성하는 것을 고려하십시오.
컨트롤러 Pod 및 노드 Pod 이해
Trident는 클러스터의 각 작업자 노드에서 단일 컨트롤러 포드와 노드 포드로 실행됩니다. 노드 포드는 Trident 볼륨을 마운트하려는 모든 호스트에서 실행되어야 합니다.
Kubernetes "노드 선택기"와 "톨러레이션 및 테인트"는 특정 또는 선호하는 노드에서 실행되도록 Pod를 제약하는 데 사용됩니다. `ControllerPlugin`와 `NodePlugin`를 사용하여 제약 및 오버라이드를 지정할 수 있습니다.
-
컨트롤러 플러그인은 스냅샷 및 크기 조정과 같은 볼륨 프로비저닝 및 관리를 처리합니다.
-
노드 플러그인은 스토리지를 노드에 연결하는 작업을 처리합니다.
구성 옵션
|
|
spec.namespace`는 `TridentOrchestrator`에 지정되어 Trident가 설치된 네임스페이스를 나타냅니다. 이 파라미터는 Trident가 설치된 후에는 업데이트할 수 없습니다. 업데이트를 시도하면 `TridentOrchestrator 상태가 `Failed`로 변경됩니다. Trident는 네임스페이스 간 마이그레이션을 위한 것이 아닙니다.
|
이 표에서는 TridentOrchestrator 속성에 대해 자세히 설명합니다.
| 매개변수 | 설명 | 기본값 | ||||
|---|---|---|---|---|---|---|
|
Trident를 설치할 네임스페이스 |
|
||||
|
Trident에 대한 디버깅 활성화 |
|
||||
|
|
|
||||
|
`true`로 설정하면 Windows 워커 노드에 설치할 수 있습니다. |
|
||||
|
AKS 클러스터에서 관리형 ID 또는 클라우드 ID를 사용하는 경우 `"Azure"`로 설정합니다. EKS 클러스터에서 클라우드 ID를 사용하는 경우 `"AWS"`로 설정합니다. GKE 클러스터에서 클라우드 ID를 사용하는 경우 `"GCP"`로 설정합니다. |
|
||||
|
AKS 클러스터에서 클라우드 ID를 사용하는 경우 워크로드 ID("azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx")로 설정합니다. EKS 클러스터에서 클라우드 ID를 사용하는 경우 AWS IAM 역할("'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'")로 설정합니다. GKE 클러스터에서 클라우드 ID를 사용하는 경우 클라우드 ID("'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'")로 설정합니다. |
|
||||
|
IPv6를 통해 Trident 설치 |
거짓 |
||||
|
Kubernetes 작업 시간 초과.
|
|
||||
|
자동 지원 번들을 NetApp으로 자동으로 보내지 마십시오 |
|
||||
|
Autosupport Telemetry를 위한 컨테이너 이미지 |
|
||||
|
AutoSupport 원격 측정을 보내기 위한 프록시의 주소/포트 |
|
||||
|
Trident를 제거하는 데 사용되는 플래그 |
|
||||
|
사용할 Trident 로깅 형식 [text,json] |
|
||||
|
설치할 Trident 이미지 |
|
||||
|
내부 레지스트리 경로, 형식 |
|
||||
|
호스트의 kubelet 디렉터리 경로 |
|
||||
|
Trident를 완전히 제거하기 위해 삭제할 리소스 목록 |
|||||
|
내부 레지스트리에서 이미지를 가져오는 시크릿 |
|||||
|
Trident 오퍼레이터의 이미지 풀링 정책을 설정합니다. 유효한 값은 다음과 같습니다. |
|
||||
|
파드에 대한 추가 노드 선택기입니다. `pod.spec.nodeSelector`과 동일한 형식을 따릅니다. |
기본값 없음, 선택 사항 |
||||
|
Pod에 대한 Kubernetes 허용 설정을 재정의합니다. `pod.spec.Tolerations`과 동일한 형식을 따릅니다. |
기본값 없음, 선택 사항 |
||||
|
파드에 대한 추가 노드 선택기입니다. `pod.spec.nodeSelector`과 동일한 형식을 따릅니다. |
기본값 없음, 선택 사항 |
||||
|
Pod에 대한 Kubernetes 허용 설정을 재정의합니다. `pod.spec.Tolerations`과 동일한 형식을 따릅니다. |
기본값 없음, 선택 사항 |
||||
|
Trident가 지정된 데이터 스토리지 프로토콜을 사용하여 볼륨을 관리하도록 Kubernetes 클러스터의 노드를 준비할 수 있습니다. 현재 `iscsi`만 지원됩니다.
|
|||||
|
컨트롤러가 Kubernetes API 서버와 통신할 때 사용하는 초당 쿼리 수(QPS) 제한입니다. 버스트 값은 QPS 값을 기반으로 자동으로 설정됩니다. |
|
||||
|
처리량 향상을 위해 동시 Trident 컨트롤러 작업을 지원합니다.
|
거짓 |
||||
|
Trident 컨트롤러 및 노드 Pod에 대한 Kubernetes 리소스 제한 및 요청을 설정합니다. 각 컨테이너 및 사이드카에 대한 CPU 및 메모리를 구성하여 Kubernetes에서 리소스 할당을 관리할 수 있습니다. 리소스 요청 및 제한 구성에 대한 자세한 내용은 "Pod 및 컨테이너에 대한 리소스 관리"을(를) 참조하십시오.
|
|
||||
|
Prometheus 메트릭 엔드포인트에 대해 HTTPS를 활성화합니다. |
거짓 |
||||
|
Trident 컨트롤러에 호스트 네트워킹을 활성화합니다. 이는 멀티홈 네트워크에서 프런트엔드와 백엔드 트래픽을 분리하려는 경우 유용합니다. |
거짓 |
|
|
Pod 매개 변수 형식 지정에 대한 자세한 내용은 "노드에 Pod 할당"을 참조하십시오. |
샘플 구성
구성 옵션를 정의할 때 `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 작업자 노드
이 예제는 cat deploy/crds/tridentorchestrator_cr.yaml 명령을 실행한 후 생성되었으며 Windows 작업자 노드에 Trident를 설치합니다.
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
Trident 컨트롤러 및 Trident Linux 노드 Pod에 대한 Kubernetes 리소스 요청 및 제한 구성
이 예제는 Trident 컨트롤러 및 Trident Linux 노드 Pod에 대한 Kubernetes 리소스 요청 및 제한을 구성합니다.
|
|
면책 조항: 이 예에 제공된 요청 및 제한 값은 데모 목적으로만 사용됩니다. 환경 및 워크로드 요구 사항에 따라 이러한 값을 조정하십시오. |
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullSecrets:
- thisisasecret
resources:
controller:
trident-main:
requests:
cpu: 10m
memory: 80Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
csi-provisioner:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-attacher:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-resizer:
requests:
cpu: 3m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-snapshotter:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
trident-autosupport:
requests:
cpu: 1m
memory: 30Mi
limits:
cpu: 50m
memory: 128Mi
node:
linux:
trident-main:
requests:
cpu: 10m
memory: 60Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
node-driver-registrar:
requests:
cpu: 1m
memory: 10Mi
limits:
cpu: 50m
memory: 32Mi
Trident 컨트롤러 및 Trident Windows/Linux 노드 Pod에 대한 Kubernetes 리소스 요청 및 제한 구성
이 예제는 Trident 컨트롤러와 Trident Windows 및 Linux 노드 Pod에 대한 Kubernetes 리소스 요청 및 제한을 구성합니다.
|
|
면책 조항: 이 예에 제공된 요청 및 제한 값은 데모 목적으로만 사용됩니다. 환경 및 워크로드 요구 사항에 따라 이러한 값을 조정하십시오. |
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullSecrets:
- thisisasecret
windows: true
resources:
controller:
trident-main:
requests:
cpu: 10m
memory: 80Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
csi-provisioner:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-attacher:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-resizer:
requests:
cpu: 3m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
csi-snapshotter:
requests:
cpu: 2m
memory: 20Mi
limits:
cpu: 100m
memory: 64Mi
trident-autosupport:
requests:
cpu: 1m
memory: 30Mi
limits:
cpu: 50m
memory: 128Mi
node:
linux:
trident-main:
requests:
cpu: 10m
memory: 60Mi
limits:
cpu: 200m
memory: 256Mi
# sidecars
node-driver-registrar:
requests:
cpu: 1m
memory: 10Mi
limits:
cpu: 50m
memory: 32Mi
windows:
trident-main:
requests:
cpu: 6m
memory: 40Mi
limits:
cpu: 200m
memory: 128Mi
# sidecars
node-driver-registrar:
requests:
cpu: 6m
memory: 40Mi
limits:
cpu: 100m
memory: 128Mi
liveness-probe:
requests:
cpu: 2m
memory: 40Mi
limits:
cpu: 50m
memory: 64Mi