Google Cloud NetApp Volumes ONTAP 모드 스토리지 풀 구성
Trident 26.06 버전부터 기존 ontap-san 및 ontap-nas 백엔드를 구성하여 Google Cloud NetApp Volumes(GCNV) ONTAP 모드 스토리지 풀에 스토리지를 프로비저닝할 수 있습니다. 이 기능은 기술 미리 보기로 제공됩니다.
|
|
이 기능은 Trident 26.06의 기술 미리보기 기능입니다. 기술 미리보기 기능은 실제 운영 환경에서 사용할 수 없습니다. 기능, 구성 필드 및 지원 매트릭스는 정식 출시(GA) 전에 변경될 수 있습니다. |
작동 원리
Trident는 기존 ontap-san 및 ontap-nas 드라이버 로직을 재사용하고 ONTAP REST 호출을 GCNV 프록시 엔드포인트를 통해 라우팅합니다. 이 방식을 통해 GCNV에서 호스팅되는 ONTAP 클러스터의 스토리지를 프로비저닝하고 관리하는 동시에 직접 ONTAP 백엔드에 사용하는 것과 동일한 운영 워크플로를 유지할 수 있습니다. ONTAP 모드는 새로운 스토리지 드라이버를 도입하지 않습니다. gcnv 구성 블록을 ontap-san 또는 ontap-nas 백엔드에 추가하여 백엔드별로 활성화할 수 있습니다.
프로비저닝 경로는 다음과 같습니다.
PersistentVolumeClaim → Trident (ontap-san or ontap-nas) → ONTAP REST 클라이언트 → GCNV 프록시 → GCNV 풀의 ONTAP 클러스터
지원되는 범위 및 지원되지 않는 범위
이 기술 미리보기 버전은 다음을 지원합니다.
-
드라이버:
ontap-san(iSCSI) 및ontap-nas(NFS 또는 SMB). -
프록시를 통한 라이프사이클 작업: 백엔드 초기화, 볼륨 생성 및 삭제, 관련 ONTAP REST 흐름.
-
인증 모델: 워크로드 ID 풀(WIP), 서비스 계정 키 및 애플리케이션 기본 자격 증명(ADC) 대체 방식.
다음 사항은 이번 기술 미리보기의 범위에서 제외됩니다.
-
ontap-san-economy,ontap-nas-economy및ontap-nas-flexgroup드라이버. -
ASA r2 퍼스낼리티 경로.
-
ZAPI 대체 기능입니다. ONTAP 모드는 ONTAP REST만 사용합니다.
필수 구성 요소
ONTAP 모드 백엔드를 구성하기 전에 다음 사항을 확인하십시오.
-
Trident 26.06 이상 버전.
-
대상 프로젝트 및 위치에 GCNV ONTAP 모드 스토리지 풀이 있어야 합니다.
-
사용자 환경에 맞게 범위가 지정된 프록시 작업에 대한 GCP IAM 권한입니다.
-
proxyURL,projectNumber,location및 `poolID`를 포함하는 백엔드 구성입니다. -
iSCSI SAN 워크플로우의 경우, 플랫폼에 필요한 노드 측 iSCSI 및 다중 경로 필수 조건을 확인하십시오. "작업자 노드를 준비합니다"을 참조하십시오.
백엔드 구성
A TridentBackendConfig`는 필수입니다 `credentials. ONTAP 모드의 경우 해당 비밀 키는 GCP 프록시 자격 증명을 보유하며 ONTAP managementLIF/ username/ `password`는 해당되지 않습니다. `svm`는 선택 사항입니다. 현재 각 GCNV ONTAP 모드 풀에는 하나의 SVM이 있으며, 생략 시 Trident는 풀에서 SVM을 파생합니다.
네이티브 GCNV와 동일한 서비스 계정 패턴을 사용하십시오. 즉, 민감하지 않은 필드는 gcnv.apiKey, private_key 및 `private_key_id`에, 민감한 필드는 시크릿에 저장하십시오. "Google Cloud NetApp Volumes 구성 예시"을 참조하십시오.
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: gcnv-ontap-san
namespace: trident
spec:
version: 1
storageDriverName: ontap-san
backendName: gcnv-ontap-san
credentials:
name: gcnv-sa-secret
type: secret
gcnv:
proxyURL: "https://netapp.googleapis.com"
projectNumber: "<project-number>"
location: "<region-or-zone>"
poolID: "<pool-id>"
svm: "<svm-name>"
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: gcnv-ontap-nas
namespace: trident
spec:
version: 1
storageDriverName: ontap-nas
backendName: gcnv-ontap-nas
credentials:
name: gcnv-sa-secret
type: secret
gcnv:
proxyURL: "https://netapp.googleapis.com"
projectNumber: "<project-number>"
location: "<region-or-zone>"
poolID: "<pool-id>"
apiKey:
type: service_account
project_id: "<project-id>"
client_email: "<service-account-email>"
client_id: "<client-id>"
auth_uri: "https://accounts.google.com/o/oauth2/auth"
token_uri: "https://oauth2.googleapis.com/token"
auth_provider_x509_cert_url: "https://www.googleapis.com/oauth2/v1/certs"
client_x509_cert_url: "<client-x509-cert-url>"
apiVersion: v1
kind: Secret
metadata:
name: gcnv-sa-secret
namespace: trident
type: Opaque
stringData:
private_key_id: "<private-key-id>"
private_key: |
-----BEGIN PRIVATE KEY-----
<private-key>
-----END PRIVATE KEY-----
|
|
`TridentBackendConfig` 사양에 `private_key` 또는 `private_key_id`을 넣지 마십시오. CRD에서 이를 거부합니다. 블록 스토리지에는 동일한 `gcnv` 및 자격 증명 패턴을 가진 `ontap-san`을 사용하십시오. |
svm: "<svm-name>"
== Authentication Trident resolves credentials for proxy access in the following order: . Workload Identity Pool (WIP) . Service account key . Application Default Credentials (ADC) For this Tech Preview, use the following practices: * Prefer Workload Identity Pool where it is available. * Do not embed raw private keys in version-controlled backend files. Store credentials in a Kubernetes secret. * Apply least-privilege IAM scoping to the service account. == Validation and initialization behavior Trident validates an ONTAP-mode backend during initialization and fails fast rather than partially initializing. Backend initialization fails if a required `gcnv` field is missing, the driver is unsupported for ONTAP-mode, or credential resolution fails. == Known limitations * This feature is a Tech Preview. Behavior and the supported matrix can change before GA. * ZAPI fallback is not used in ONTAP-mode. * Protocol and node-readiness requirements still apply. For example, iSCSI workflows require the node-side prerequisites described in link:../trident-use/worker-node-prep.html[Prepare the worker node]. * Existing ONTAP and GCNV environment constraints still apply. == Upgrade and compatibility ONTAP-mode is opt-in per backend through the `gcnv` configuration block: * Existing non-GCNV ONTAP backends are unaffected. * Mixed deployments that combine direct ONTAP backends and ONTAP-mode proxy backends are supported through backend-level configuration. Each backend is configured independently. * To stop using ONTAP-mode, remove or replace the affected backends. No global switch is required. == What's next? Apply secret before TBC; use `kubectl apply` and `-n trident` to match examples.