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