Trident 운영자 설치를 사용자 지정합니다
Trident 연산자를 사용하면 사양의 속성을 사용하여 Trident 설치를 사용자 정의할 수 TridentOrchestrator 있습니다. 허용되는 인수를 넘어 설치를 사용자 지정하려면 TridentOrchestrator 을 사용하여 tridentctl 사용자 지정 YAML 매니페스트를 생성하여 필요에 따라 수정할 수 있습니다.
컨트롤러 Pod 및 노드 포드 이해
Trident 클러스터의 각 워커 노드에서 단일 컨트롤러 포드와 노드 포드로 실행됩니다. Trident 볼륨을 마운트하려는 모든 호스트에서 노드 포드를 실행해야 합니다.
쿠버네티스 "노드 선택기" 및 "관용과 오해" 포드를 특정 노드 또는 기본 노드에서 실행하도록 제한하는 데 사용됩니다. ControllerPlugin과 을 사용합니다 `NodePlugin`구속 조건과 덮어쓰기를 지정할 수 있습니다.
-
컨트롤러 플러그인은 스냅샷 및 크기 조정과 같은 볼륨 프로비저닝 및 관리를 처리합니다.
-
노드 플러그인은 스토리지에 노드를 연결하는 작업을 처리합니다.
구성 옵션
|
|
spec.namespace Trident가 설치된 네임스페이스를 나타내기 위해 에 TridentOrchestrator 지정됩니다. 이 매개 변수 * 는 Trident 설치 후 업데이트할 수 없습니다 *. 이렇게 하면 TridentOrchestrator 상태가 로 `Failed`변경됩니다. Trident는 네임스페이스 간에 마이그레이션되지 않습니다.
|
이 표에 자세히 나와 있습니다 TridentOrchestrator 속성.
| 매개 변수 | 설명 | 기본값 | ||||
|---|---|---|---|---|---|---|
|
Trident를 설치할 네임스페이스입니다 |
|
||||
"버그" |
Trident에 대해 디버깅을 활성화합니다 |
거짓입니다 |
||||
|
|
거짓입니다 |
||||
|
를 로 설정합니다 |
거짓입니다 |
||||
|
AKS 클러스터에서 관리되는 ID 또는 클라우드 ID를 사용할 때 로 |
|
||||
|
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'")로 설정합니다. GKE 클러스터에서 클라우드 ID를 사용하는 경우 클라우드 ID("'iam.gke.io/gc-service-account:xxxx@mygcpproject.iam.gserviceaccount.com') 로 설정합니다. |
|
||||
|
IPv6를 통해 Trident를 설치합니다 |
거짓 |
||||
|
Kubernetes 작업에 대한 시간 초과입니다.
|
|
||||
|
AutoSupport 번들을 NetApp로 보내지 마십시오 |
거짓입니다 |
||||
자동 지원 이미지 |
AutoSupport 텔레메트리 컨테이너 이미지입니다 |
|
||||
자동 지원 프록시 |
AutoSupport를 보내는 프록시의 주소/포트입니다 |
|
||||
"제거"를 선택합니다 |
Trident를 제거하는 데 사용되는 플래그입니다 |
거짓입니다 |
||||
|
사용할 Trident 로깅 형식 [text, json] |
|
||||
트리덴티이미지 |
설치할 Trident 이미지 |
|
||||
'imageRegistry'입니다 |
형식의 내부 레지스트리 경로입니다 |
|
||||
쿠벨레트디렉토리 |
호스트의 kubelet 디렉토리에 대한 경로입니다 |
|
||||
|
Trident의 전체 제거를 수행하기 위해 삭제할 리소스 목록입니다 |
|||||
'imagePullSecrets' |
내부 레지스트리에서 이미지를 가져올 수 있는 비밀 |
|||||
|
Trident 운영자의 이미지 풀 정책을 설정합니다. 유효한 값은 다음과 같습니다. |
|
||||
'controllerPluginNodeSelector' |
Pod용 추가 노드 선택기 는 와 동일한 형식을 따릅니다 |
기본값 없음, 선택 사항 |
||||
'컨트롤러 PluginTolerations' |
Pod에 대한 Kubernetes 허용 설정을 재정의합니다. 는 와 동일한 형식을 따릅니다 |
기본값 없음, 선택 사항 |
||||
노드플러거노드 선택기 |
Pod용 추가 노드 선택기 는 와 동일한 형식을 따릅니다 |
기본값 없음, 선택 사항 |
||||
노드 PluginTolerations |
Pod에 대한 Kubernetes 허용 설정을 재정의합니다. 는 와 동일한 형식을 따릅니다 |
기본값 없음, 선택 사항 |
||||
|
Trident가 Kubernetes 클러스터의 노드를 준비하여 지정된 데이터 스토리지 프로토콜을 사용하여 볼륨을 관리할 수 있도록 합니다. * 현재
|
|||||
|
Kubernetes API 서버와 통신하는 동안 컨트롤러가 사용하는 초당 쿼리 수(QPS) 제한입니다. 버스트 값은 QPS 값에 따라 자동으로 설정됩니다. |
|
||||
|
향상된 처리량을 위해 동시 Trident 컨트롤러 작업이 가능합니다.
|
거짓 |
||||
|
Trident 컨트롤러와 노드 포드에 대한 Kubernetes 리소스 제한과 요청을 설정합니다. Kubernetes에서 리소스 할당을 관리하기 위해 각 컨테이너와 사이드카에 대한 CPU와 메모리를 구성할 수 있습니다. 리소스 요청 및 제한 구성에 대한 자세한 내용은 다음을 참조하세요."포드 및 컨테이너에 대한 리소스 관리" .
|
|
||||
|
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 노드 포드에 대한 Kubernetes 리소스 요청 및 제한 구성
이 예제에서는 Trident 컨트롤러와 Trident Linux 노드 포드에 대한 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 노드 포드에 대한 Kubernetes 리소스 요청 및 제한 구성
이 예제에서는 Trident 컨트롤러와 Trident Windows 및 Linux 노드 포드에 대한 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