Trident 운영자 설치를 사용자 지정합니다
Trident 운영자는 의 특성을 사용하여 Astra Trident 설치를 사용자 지정할 수 있습니다 TridentOrchestrator
사양 설치를 사용자 지정하려면 다음을 선택합니다 TridentOrchestrator
인수를 사용할 수 있습니다. 을 사용하는 것이 좋습니다 tridentctl
필요에 따라 수정할 사용자 지정 YAML 매니페스트를 생성합니다.
컨트롤러 Pod 및 노드 포드 이해
Astra Trident는 단일 컨트롤러 POD와 클러스터의 각 작업자 노드에 노드 POD를 더한 형태로 실행됩니다. Astra Trident 볼륨을 마운트하려는 호스트에서 노드 포드가 실행되고 있어야 합니다.
쿠버네티스 "노드 선택기" 및 "관용과 오해" 포드를 특정 노드 또는 기본 노드에서 실행하도록 제한하는 데 사용됩니다. ControllerPlugin과 을 사용합니다 `NodePlugin`구속 조건과 덮어쓰기를 지정할 수 있습니다.
-
컨트롤러 플러그인은 스냅샷 및 크기 조정과 같은 볼륨 프로비저닝 및 관리를 처리합니다.
-
노드 플러그인은 스토리지에 노드를 연결하는 작업을 처리합니다.
구성 옵션
spec.namespace 에 지정됩니다 TridentOrchestrator Astra Trident가 설치된 네임스페이스를 나타냅니다. Astra Trident가 설치된 후에는 이 매개 변수 * 를 업데이트할 수 없습니다. 이렇게 하려고 하면 가 발생합니다 TridentOrchestrator 변경할 상태입니다 Failed . Astra Trident는 네임스페이스 간에 마이그레이션되지 않습니다.
|
이 표에 자세히 나와 있습니다 TridentOrchestrator
속성.
매개 변수 | 설명 | 기본값 |
---|---|---|
|
Astra Trident를 설치할 네임스페이스입니다 |
|
|
Astra Trident에 대한 디버깅을 활성화합니다 |
|
|
|
|
|
를 로 설정합니다 |
|
|
를 로 설정합니다 |
|
|
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/astratrident-role")으로 설정합니다. |
|
|
IPv6를 통해 Astra Trident를 설치합니다 |
거짓 |
|
Kubernetes 작업 시간이 초과되었습니다 |
|
|
AutoSupport 번들을 NetApp로 보내지 마십시오 |
|
|
AutoSupport 텔레메트리 컨테이너 이미지입니다 |
|
|
AutoSupport를 보내는 프록시의 주소/포트입니다 |
|
|
Astra Trident를 제거하는 데 사용되는 플래그입니다 |
|
|
사용할 Astra Trident 로깅 형식[text,json] |
|
|
설치할 Astra Trident 이미지 |
|
|
형식의 내부 레지스트리 경로입니다 |
|
|
호스트의 kubelet 디렉토리에 대한 경로입니다 |
|
|
의 전체 제거를 수행하기 위해 삭제할 리소스 목록입니다 |
|
|
내부 레지스트리에서 이미지를 가져올 수 있는 비밀 |
|
|
Trident 운영자의 이미지 풀 정책을 설정합니다. 유효한 값은 다음과 같습니다. |
|
|
Pod용 추가 노드 선택기 는 와 동일한 형식을 따릅니다 |
기본값 없음, 선택 사항 |
|
Pod에 대한 Kubernetes 허용 설정을 재정의합니다. 는 와 동일한 형식을 따릅니다 |
기본값 없음, 선택 사항 |
|
Pod용 추가 노드 선택기 는 와 동일한 형식을 따릅니다 |
기본값 없음, 선택 사항 |
|
Pod에 대한 Kubernetes 허용 설정을 재정의합니다. 는 와 동일한 형식을 따릅니다 |
기본값 없음, 선택 사항 |
POD 매개 변수 포맷에 대한 자세한 내용은 을 참조하십시오 "노드에 Pod 할당". |
강제 분리에 대한 세부 정보
에 대해 강제 분리를 사용할 수 있습니다 ontap-san
및 ontap-san-economy
만 해당. 강제 분리를 활성화하기 전에 Kubernetes 클러스터에서 비정상 노드 종료(ngns)를 활성화해야 합니다. 자세한 내용은 을 참조하십시오 "Kubernetes: 노드 정상 종료 아님".
Astra Trident는 Kubernetes ngns에 의존하므로 제거하지 마십시오 out-of-service 허용 불가능한 모든 작업 부하가 재조정될 때까지 상태가 불량한 노드에서 오인합니다. 무모하게 타트를 적용하거나 제거하면 백엔드 데이터 보호가 위태롭게 될 수 있습니다.
|
Kubernetes 클러스터 관리자가 를 적용했을 때 node.kubernetes.io/out-of-service=nodeshutdown:NoExecute
노드 및 에 대한 태트 enableForceDetach
가 로 설정되어 있습니다 true
, Astra Trident에서 노드 상태를 확인하고 다음을 수행합니다.
-
해당 노드에 마운트된 볼륨에 대한 백엔드 입출력 액세스를 중단합니다.
-
Astra Trident 노드 객체를 로 표시합니다
dirty
(새 발행물에는 안전하지 않음).Trident 컨트롤러는 노드가 재검증될 때까지(로 표시된 후) 새로운 게시 볼륨 요청을 거부합니다 dirty
) Trident 노드 POD를 사용합니다. 클러스터 노드가 정상 상태가 되고 준비된 후에도 마운트된 PVC로 예약된 워크로드는 Astra Trident가 노드를 확인할 때까지 허용되지 않습니다clean
(새 출판물에 대해 안전).
노드 상태가 복원되고 Tint가 제거되면 Astra Trident는 다음을 수행합니다.
-
노드에서 오래된 게시된 경로를 식별하고 제거합니다.
-
노드가 에 있는 경우
cleanable
상태(Out-of-service taint가 제거되었으며 노드가 IN 상태입니다Ready
State) 및 게시된 모든 경로가 깨끗하며, Astra 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
노드 선택기
이 예에서는 노드 선택기와 함께 Astra Trident를 설치합니다.
apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident controllerPluginNodeSelector: nodetype: master nodePluginNodeSelector: storage: netapp
Windows 작업자 노드
이 예에서는 Windows 작업자 노드에 Astra 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입니다
이 예에서는 Astra Trident를 설치하여 AKS 클러스터에서 관리되는 ID를 활성화합니다.
apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident cloudProvider: "Azure"
AKS 클러스터에서 클라우드 ID입니다
이 예에서는 AKS 클러스터에서 클라우드 ID와 함께 사용할 Astra 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와 함께 사용할 Astra 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/astratrident-role'"