ONTAP NAS 드라이버를 사용하여 백엔드를 구성할 준비를 하십시오
ONTAP NAS 드라이버를 사용하여 ONTAP 백엔드를 구성하기 위한 요구 사항, 인증 옵션 및 엑스포트 정책을 이해하십시오.
25.10 릴리스부터 NetApp Trident는 "NetApp AFX 스토리지 시스템"을(를) 지원합니다. NetApp AFX 스토리지 시스템은 스토리지 계층 구현에서 다른 ONTAP 시스템(ASA, AFF, FAS)과 다릅니다.
|
|
AFX 시스템에서는 ontap-nas 드라이버(NFS 프로토콜 사용)만 지원되며 SMB 프로토콜은 지원되지 않습니다.
|
Trident 백엔드 구성에서 시스템이 AFX인지 여부를 지정할 필요가 없습니다. ontap-nas`을(를) `storageDriverName(으)로 선택하면 Trident가 AFX 시스템을 자동으로 감지합니다.
요구 사항
-
모든 ONTAP 백엔드의 경우 Trident를 사용하려면 SVM에 하나 이상의 애그리게이트를 할당해야 합니다.
-
여러 드라이버를 실행하고, 각 드라이버를 가리키는 스토리지 클래스를 생성할 수 있습니다. 예를 들어,
ontap-nas드라이버를 사용하는 Gold 클래스와ontap-nas-economy드라이버를 사용하는 Bronze 클래스를 구성할 수 있습니다. -
모든 Kubernetes 워커 노드에는 적절한 NFS 도구가 설치되어 있어야 합니다. "여기"자세한 내용은 를 참조하십시오.
-
Trident는 Windows 노드에서 실행되는 Pod에 마운트된 SMB 볼륨만 지원합니다. 자세한 내용은 SMB 볼륨 프로비저닝 준비를 참조하십시오.
ONTAP 백엔드를 인증합니다
Trident는 ONTAP 백엔드를 인증하는 두 가지 모드를 제공합니다.
-
자격 증명 기반: 이 모드는 ONTAP 백엔드에 대한 충분한 권한이 필요합니다. ONTAP 버전과의 최대 호환성을 보장하기 위해
admin또는 `vsadmin`와 같이 미리 정의된 보안 로그인 역할과 연결된 계정을 사용하는 것이 좋습니다. -
인증서 기반: 이 모드에서는 Trident가 ONTAP 클러스터와 통신하기 위해 백엔드에 인증서가 설치되어 있어야 합니다. 이 경우 백엔드 정의에는 클라이언트 인증서, 키, 그리고 사용하는 경우(권장) 신뢰할 수 있는 CA 인증서의 Base64 인코딩 값이 포함되어야 합니다.
기존 백엔드를 업데이트하여 자격 증명 기반 방식과 인증서 기반 방식 간에 전환할 수 있습니다. 단, 한 번에 하나의 인증 방법만 지원됩니다. 다른 인증 방법으로 전환하려면 백엔드 구성에서 기존 방법을 제거해야 합니다.
|
|
자격 증명과 인증서를 모두 제공하려고 하면 구성 파일에 두 개 이상의 인증 방법이 제공되었다는 오류와 함께 백엔드 생성이 실패합니다. |
자격 증명 기반 인증 활성화
Trident는 ONTAP 백엔드와 통신하기 위해 SVM 범위/클러스터 범위 관리자의 자격 증명이 필요합니다. admin 또는 `vsadmin`와 같은 표준 사전 정의된 역할을 사용하는 것이 좋습니다. 이렇게 하면 향후 Trident 릴리스에서 사용할 수 있는 기능 API를 노출할 수 있는 향후 ONTAP 릴리스와의 상위 호환성이 보장됩니다. 사용자 지정 보안 로그인 역할을 생성하여 Trident와 함께 사용할 수 있지만 권장하지 않습니다.
백엔드 정의 샘플은 다음과 같습니다.
---
version: 1
backendName: ExampleBackend
storageDriverName: ontap-nas
managementLIF: 10.0.0.1
dataLIF: 10.0.0.2
svm: svm_nfs
credentials:
name: secret-backend-creds
{
"version": 1,
"backendName": "ExampleBackend",
"storageDriverName": "ontap-nas",
"managementLIF": "10.0.0.1",
"dataLIF": "10.0.0.2",
"svm": "svm_nfs",
"credentials": {
"name": "secret-backend-creds"
}
}
백엔드 정의는 자격 증명이 평문으로 저장되는 유일한 위치라는 점을 명심하십시오. 백엔드가 생성된 후 사용자 이름/암호는 Base64로 인코딩되어 Kubernetes 시크릿으로 저장됩니다. 백엔드 생성/업데이트는 자격 증명을 알아야 하는 유일한 단계입니다. 따라서 이는 Kubernetes/스토리지 관리자가 수행하는 관리자 전용 작업입니다.
인증서 기반 인증 활성화
신규 및 기존 백엔드는 인증서를 사용하여 ONTAP 백엔드와 통신할 수 있습니다. 백엔드 정의에는 세 가지 매개변수가 필요합니다.
-
clientCertificate: 클라이언트 인증서의 Base64 인코딩 값입니다.
-
clientPrivateKey: 연결된 개인 키의 Base64 인코딩 값입니다.
-
trustedCACertificate: 신뢰할 수 있는 CA 인증서의 Base64 인코딩 값입니다. 신뢰할 수 있는 CA를 사용하는 경우 이 매개변수를 반드시 제공해야 합니다. 신뢰할 수 있는 CA를 사용하지 않는 경우에는 이 매개변수를 무시할 수 있습니다.
일반적인 워크플로에는 다음 단계가 포함됩니다.
-
클라이언트 인증서와 키를 생성합니다. 생성 시 CN(일반 이름)을 인증할 ONTAP 사용자로 설정합니다.
openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -keyout k8senv.key -out k8senv.pem -subj "/C=US/ST=NC/L=RTP/O=NetApp/CN=vsadmin"
-
ONTAP 클러스터에 신뢰할 수 있는 CA 인증서를 추가합니다. 스토리지 관리자가 이미 처리했을 수 있습니다. 신뢰할 수 있는 CA를 사용하지 않는 경우 이 단계를 건너뛰십시오.
security certificate install -type server -cert-name <trusted-ca-cert-name> -vserver <vserver-name> ssl modify -vserver <vserver-name> -server-enabled true -client-enabled true -common-name <common-name> -serial <SN-from-trusted-CA-cert> -ca <cert-authority>
-
ONTAP 클러스터에 클라이언트 인증서 및 키(1단계)를 설치합니다.
security certificate install -type client-ca -cert-name <certificate-name> -vserver <vserver-name> security ssl modify -vserver <vserver-name> -client-enabled true
-
ONTAP 보안 로그인 역할이
cert인증 방법을 지원하는지 확인합니다.security login create -user-or-group-name vsadmin -application ontapi -authentication-method cert -vserver <vserver-name> security login create -user-or-group-name vsadmin -application http -authentication-method cert -vserver <vserver-name>
-
생성된 인증서를 사용하여 인증을 테스트하십시오. <ONTAP Management LIF> 및 <vserver name>를 관리 LIF IP 및 SVM 이름으로 바꾸십시오. LIF의 서비스 정책이 `default-data-management`로 설정되어 있는지 확인해야 합니다.
curl -X POST -Lk https://<ONTAP-Management-LIF>/servlets/netapp.servlets.admin.XMLrequest_filer --key k8senv.key --cert ~/k8senv.pem -d '<?xml version="1.0" encoding="UTF-8"?><netapp xmlns="http://www.netapp.com/filer/admin" version="1.21" vfiler="<vserver-name>"><vserver-get></vserver-get></netapp>'
-
인증서, 키 및 신뢰할 수 있는 CA 인증서를 Base64로 인코딩합니다.
base64 -w 0 k8senv.pem >> cert_base64 base64 -w 0 k8senv.key >> key_base64 base64 -w 0 trustedca.pem >> trustedca_base64
-
이전 단계에서 얻은 값을 사용하여 백엔드를 생성합니다.
cat cert-backend-updated.json { "version": 1, "storageDriverName": "ontap-nas", "backendName": "NasBackend", "managementLIF": "1.2.3.4", "dataLIF": "1.2.3.8", "svm": "vserver_test", "clientCertificate": "Faaaakkkkeeee...Vaaalllluuuueeee", "clientPrivateKey": "LS0tFaKE...0VaLuES0tLS0K", "storagePrefix": "myPrefix_" } #Update backend with tridentctl tridentctl update backend NasBackend -f cert-backend-updated.json -n trident +------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +------------+----------------+--------------------------------------+--------+---------+ | NasBackend | ontap-nas | 98e19b74-aec7-4a3d-8dcf-128e5033b214 | online | 9 | +------------+----------------+--------------------------------------+--------+---------+
인증 방법을 업데이트하거나 자격 증명을 변경하세요
기존 백엔드를 업데이트하여 다른 인증 방법을 사용하거나 자격 증명을 교체할 수 있습니다. 이 기능은 양방향으로 작동합니다. 사용자 이름/암호를 사용하는 백엔드를 인증서를 사용하는 방식으로 업데이트할 수 있고, 인증서를 사용하는 백엔드를 사용자 이름/암호 기반으로 업데이트할 수도 있습니다. 이렇게 하려면 기존 인증 방법을 제거하고 새 인증 방법을 추가해야 합니다. 그런 다음 필요한 매개변수가 포함된 업데이트된 backend.json 파일을 사용하여 `tridentctl update backend`을(를) 실행합니다.
cat cert-backend-updated.json
{
"version": 1,
"storageDriverName": "ontap-nas",
"backendName": "NasBackend",
"managementLIF": "1.2.3.4",
"dataLIF": "1.2.3.8",
"svm": "vserver_test",
"username": "vsadmin",
"password": "password",
"storagePrefix": "myPrefix_"
}
#Update backend with tridentctl tridentctl update backend NasBackend -f cert-backend-updated.json -n trident +------------+----------------+--------------------------------------+--------+---------+ | NAME | STORAGE DRIVER | UUID | STATE | VOLUMES | +------------+----------------+--------------------------------------+--------+---------+ | NasBackend | ontap-nas | 98e19b74-aec7-4a3d-8dcf-128e5033b214 | online | 9 | +------------+----------------+--------------------------------------+--------+---------+
|
|
암호를 교체할 때는 스토리지 관리자가 먼저 ONTAP에서 사용자의 암호를 업데이트해야 합니다. 그 후 백엔드 업데이트를 진행합니다. 인증서를 교체할 때는 사용자에게 여러 개의 인증서를 추가할 수 있습니다. 백엔드를 업데이트하여 새 인증서를 사용하도록 설정한 후, ONTAP 클러스터에서 이전 인증서를 삭제할 수 있습니다. |
백엔드를 업데이트해도 이미 생성된 볼륨에 대한 액세스는 중단되지 않으며, 이후에 생성된 볼륨 연결에도 영향을 미치지 않습니다. 백엔드 업데이트가 성공적으로 완료되면 Trident가 ONTAP 백엔드와 통신하여 향후 볼륨 작업을 처리할 수 있음을 의미합니다.
Trident용 사용자 지정 ONTAP 역할 생성
Trident에서 작업을 수행하기 위해 ONTAP 관리자 역할을 사용할 필요가 없도록 최소 권한으로 ONTAP 클러스터 역할을 생성할 수 있습니다. Trident 백엔드 구성에 사용자 이름을 포함하면 Trident는 생성한 ONTAP 클러스터 역할을 사용하여 작업을 수행합니다.
Trident 사용자 지정 역할 생성에 대한 자세한 내용은 "Trident 사용자 지정 역할 생성기"을 참조하십시오.
-
다음 명령을 사용하여 새 역할을 생성합니다.
security login role create <role_name\> -cmddirname "command" -access all –vserver <svm_name\> -
Trident 사용자의 사용자 이름을 생성합니다.
security login create -username <user_name\> -application ontapi -authmethod <password\> -role <name_of_role_in_step_1\> –vserver <svm_name\> -comment "user_description" -
사용자에게 역할 매핑:
security login modify username <user_name\> –vserver <svm_name\> -role <role_name\> -application ontapi -application console -authmethod <password\>
ONTAP System Manager에서 다음 단계를 수행하십시오.
-
사용자 지정 역할 생성:
-
클러스터 수준에서 사용자 지정 역할을 생성하려면 * Cluster > Settings * 를 선택합니다.
(또는) SVM 수준에서 사용자 지정 역할을 생성하려면 *스토리지 > 스토리지 VM >
required SVM> 설정 > 사용자 및 역할*을 선택하십시오. -
사용자 및 역할 옆에 있는 화살표 아이콘(→)을 선택합니다.
-
역할 에서 +추가 를 선택합니다.
-
역할에 대한 규칙을 정의하고 *저장*을 클릭합니다.
-
-
Trident 사용자에게 역할 매핑: + 사용자 및 역할 페이지에서 다음 단계를 수행합니다.
-
사용자 아래에서 추가 아이콘 *+*를 선택합니다.
-
필요한 사용자 이름을 선택하고 역할 드롭다운 메뉴에서 역할을 선택합니다.
-
*저장*을 클릭합니다.
-
자세한 내용은 다음 페이지를 참조하십시오.
NFS 엑스포트 정책 관리
Trident는 NFS 엑스포트 정책을 사용하여 프로비저닝하는 볼륨에 대한 액세스를 제어합니다.
Trident는 엑스포트 정책 작업 시 두 가지 옵션을 제공합니다.
-
Trident는 엑스포트 정책을 동적으로 관리할 수 있습니다. 이 운영 모드에서 스토리지 관리자는 허용 가능한 IP 주소를 나타내는 CIDR 블록 목록을 지정합니다. Trident는 게시 시점에 이러한 범위에 속하는 해당 노드 IP를 엑스포트 정책에 자동으로 추가합니다. 또는 CIDR이 지정되지 않은 경우, 볼륨이 게시될 노드에서 발견된 모든 글로벌 범위 유니캐스트 IP가 엑스포트 정책에 추가됩니다.
-
스토리지 관리자는 엑스포트 정책을 생성하고 규칙을 수동으로 추가할 수 있습니다. Trident는 구성 파일에 다른 엑스포트 정책 이름이 지정되지 않은 경우 기본 엑스포트 정책을 사용합니다.
엑스포트 정책을 동적으로 관리합니다
Trident는 ONTAP 백엔드에 대한 엑스포트 규칙을 동적으로 관리할 수 있는 기능을 제공합니다. 이를 통해 스토리지 관리자는 명시적인 규칙을 수동으로 정의하는 대신 워커 노드 IP에 대해 허용 가능한 주소 공간을 지정할 수 있습니다. 이는 엑스포트 규칙 관리를 크게 간소화하며, 엑스포트 규칙을 수정할 때 더 이상 스토리지 클러스터에서 수동으로 개입할 필요가 없습니다. 또한, 이 기능을 통해 볼륨을 마운트하고 지정된 IP 범위 내에 있는 워커 노드만 스토리지 클러스터에 액세스할 수 있도록 제한하여 세밀하고 자동화된 관리를 지원합니다.
|
|
동적 엑스포트 규칙을 사용할 때는 네트워크 주소 변환(NAT)을 사용하지 마십시오. NAT를 사용하면 스토리지 컨트롤러가 실제 IP 주소가 아닌 프런트엔드 NAT 주소를 인식하게 되므로 엑스포트 규칙에서 일치하는 항목이 없으면 액세스가 거부됩니다. |
예
반드시 사용해야 하는 구성 옵션이 두 가지 있습니다. 다음은 백엔드 정의 예시입니다.
---
version: 1
storageDriverName: ontap-nas-economy
backendName: ontap_nas_auto_export
managementLIF: 192.168.0.135
svm: svm1
username: vsadmin
password: password
autoExportCIDRs:
- 192.168.0.0/24
autoExportPolicy: true
|
|
이 기능을 사용할 때는 SVM의 루트 접합부에 노드 CIDR 블록을 허용하는 엑스포트 규칙(예: 기본 엑스포트 정책)이 포함된 엑스포트 정책이 미리 생성되어 있는지 확인해야 합니다. 항상 NetApp 권장 모범 사례에 따라 Trident 전용 SVM을 사용하십시오. |
다음은 위의 예를 사용하여 이 기능이 작동하는 방식에 대한 설명입니다.
-
autoExportPolicy`이(가) `true(으)로 설정되어 있습니다. 이는 Trident가svm1SVM에 대해 이 백엔드로 프로비저닝된 각 볼륨에 대한 엑스포트 정책을 생성하고autoexportCIDRs주소 블록을 사용하여 규칙 추가 및 삭제를 처리함을 나타냅니다. 볼륨이 노드에 연결될 때까지 해당 볼륨은 원치 않는 액세스를 방지하기 위해 규칙이 없는 빈 엑스포트 정책을 사용합니다. 볼륨이 노드에 게시되면 Trident는 지정된 CIDR 블록 내의 노드 IP를 포함하는 기본 qtree와 동일한 이름의 엑스포트 정책을 생성합니다. 이러한 IP는 상위 FlexVol 볼륨에서 사용하는 엑스포트 정책에도 추가됩니다.-
예를 들면 다음과 같습니다.
-
백엔드 UUID 403b5326-8482-40db-96d0-d83fb3f4daec
-
autoExportPolicy로 설정true -
스토리지 접두사
trident -
PVC UUID a79bcf5f-7b6d-4a40-9876-e2551f159c1c
-
trident_pvc_a79bcf5f_7b6d_4a40_9876_e2551f159c1c라는 이름의 qtree는 FlexVol에 대한 엑스포트 규칙
trident-403b5326-8482-40db96d0-d83fb3f4daec, qtree에 대한 엑스포트 규칙
trident_pvc_a79bcf5f_7b6d_4a40_9876_e2551f159c1c, 그리고 SVM에 빈 엑스포트 규칙 `trident_empty`을 생성합니다. FlexVol 엑스포트 규칙의 규칙은 qtree 엑스포트 규칙에 포함된 모든 규칙의 상위 집합입니다. 빈 엑스포트 규칙은 연결되지 않은 볼륨에서 재사용됩니다.
-
-
-
`autoExportCIDRs`에는 주소 블록 목록이 포함되어 있습니다. 이 필드는 선택 사항이며 기본값은 ["0.0.0.0/0", "::/0"]입니다. 정의되지 않은 경우 Trident는 게시와 함께 작업자 노드에서 발견된 모든 전역 범위 유니캐스트 주소를 추가합니다.
이 예에서는 192.168.0.0/24 주소 공간이 제공됩니다. 이는 게시와 함께 이 주소 범위 내에 속하는 Kubernetes 노드 IP가 Trident가 생성하는 엑스포트 정책에 추가됨을 나타냅니다. Trident가 실행 중인 노드를 등록할 때 해당 노드의 IP 주소를 검색하고 `autoExportCIDRs`에 제공된 주소 블록과 비교합니다. 게시 시점에 IP를 필터링한 후 Trident는 게시 대상 노드의 클라이언트 IP에 대한 엑스포트 정책 규칙을 생성합니다.
`autoExportPolicy`및 `autoExportCIDRs`를 생성한 후 백엔드에 대해 업데이트할 수 있습니다. 자동으로 관리되는 백엔드에 대해 새 CIDR을 추가하거나 기존 CIDR을 삭제할 수 있습니다. 기존 연결이 끊어지지 않도록 CIDR을 삭제할 때 주의하십시오. 또한 백엔드에 대해 `autoExportPolicy`를 비활성화하고 수동으로 생성된 엑스포트 정책으로 대체하도록 선택할 수 있습니다. 이렇게 하려면 백엔드 구성에서 `exportPolicy` 매개 변수를 설정해야 합니다.
Trident가 백엔드를 생성하거나 업데이트한 후 tridentctl 또는 해당 tridentbackend CRD를 사용하여 백엔드를 확인할 수 있습니다.
./tridentctl get backends ontap_nas_auto_export -n trident -o yaml
items:
- backendUUID: 403b5326-8482-40db-96d0-d83fb3f4daec
config:
aggregate: ""
autoExportCIDRs:
- 192.168.0.0/24
autoExportPolicy: true
backendName: ontap_nas_auto_export
chapInitiatorSecret: ""
chapTargetInitiatorSecret: ""
chapTargetUsername: ""
chapUsername: ""
dataLIF: 192.168.0.135
debug: false
debugTraceFlags: null
defaults:
encryption: "false"
exportPolicy: <automatic>
fileSystemType: ext4
노드가 제거되면 Trident는 모든 엑스포트 정책을 확인하여 해당 노드에 해당하는 액세스 규칙을 제거합니다. 관리형 백엔드의 엑스포트 정책에서 이 노드 IP를 제거함으로써 Trident는 클러스터의 새 노드에서 이 IP가 재사용되지 않는 한 무단 마운트를 방지합니다.
기존 백엔드의 경우 `tridentctl update backend`로 백엔드를 업데이트하면 Trident에서 엑스포트 정책을 자동으로 관리합니다. 이렇게 하면 필요할 때 백엔드의 UUID와 qtree 이름을 따서 명명된 두 개의 새 엑스포트 정책이 생성됩니다. 백엔드에 있는 볼륨은 마운트 해제 후 다시 마운트되면 새로 생성된 엑스포트 정책을 사용합니다.
|
|
자동 관리되는 엑스포트 규칙이 있는 백엔드를 삭제하면 동적으로 생성된 엑스포트 규칙도 삭제됩니다. 백엔드를 다시 생성하면 새 백엔드로 간주되어 새 엑스포트 규칙이 생성됩니다. |
실행 중인 노드의 IP 주소가 업데이트되면 해당 노드에서 Trident Pod를 재시작해야 합니다. 그러면 Trident는 관리하는 백엔드에 대한 엑스포트 정책을 업데이트하여 이 IP 변경 사항을 반영합니다.
SMB 볼륨 프로비저닝 준비
약간의 추가 준비 작업을 거치면 ontap-nas 드라이버를 사용하여 SMB 볼륨을 프로비저닝할 수 있습니다.
|
|
ONTAP 온프레미스 클러스터용 ontap-nas-economy SMB 볼륨을 생성하려면 SVM에서 NFS 및 SMB/CIFS 프로토콜을 모두 구성해야 합니다. 이러한 프로토콜 중 하나라도 구성하지 않으면 SMB 볼륨 생성이 실패합니다.
|
|
|
`autoExportPolicy`는 SMB 볼륨에서 지원되지 않습니다. |
SMB 볼륨을 프로비저닝하기 전에 다음 사항을 충족해야 합니다.
-
Linux 컨트롤러 노드와 Windows Server 2022를 실행하는 하나 이상의 Windows 워커 노드로 구성된 Kubernetes 클러스터입니다. Trident는 Windows 노드에서 실행되는 Pod에 마운트된 SMB 볼륨만 지원합니다.
-
Active Directory 자격 증명이 포함된 Trident 비밀 키가 하나 이상 필요합니다. 비밀 키를 생성하려면
smbcreds:kubectl create secret generic smbcreds --from-literal username=user --from-literal password='password'
-
Windows 서비스로 구성된 CSI 프록시입니다. `csi-proxy`를 구성하려면 Windows에서 실행되는 Kubernetes 노드에 대한 "GitHub: CSI 프록시" 또는 "GitHub: Windows용 CSI 프록시"를 참조하십시오.
-
온프레미스 ONTAP의 경우 선택적으로 SMB 공유를 생성하거나 Trident가 대신 생성해 줄 수 있습니다.
Amazon FSx for ONTAP에는 SMB 공유가 필요합니다. SMB 관리자 공유는 "Microsoft Management Console" 공유 폴더 스냅인을 사용하거나 ONTAP CLI를 사용하는 두 가지 방법으로 생성할 수 있습니다. ONTAP CLI를 사용하여 SMB 공유를 생성하려면 다음을 수행합니다.
-
필요한 경우 공유에 대한 디렉터리 경로 구조를 생성하십시오.
`vserver cifs share create` 명령은 공유 생성 시 -path 옵션에 지정된 경로를 확인합니다. 지정된 경로가 존재하지 않으면 명령이 실패합니다.
-
지정된 SVM과 연결된 SMB 공유를 생성합니다.
vserver cifs share create -vserver vserver_name -share-name share_name -path path [-share-properties share_properties,...] [other_attributes] [-comment text]
-
공유가 생성되었는지 확인합니다.
vserver cifs share show -share-name share_name
자세한 내용은 "SMB 공유 생성"를 참조하십시오.
-
-
백엔드를 생성할 때 SMB 볼륨을 지정하려면 다음을 구성해야 합니다. 모든 FSx for ONTAP 백엔드 구성 옵션에 대한 자세한 내용은 "FSx for ONTAP 구성 옵션 및 예"를 참조하십시오.
매개변수 설명 예 smbShare다음 중 하나를 지정할 수 있습니다. Microsoft Management Console 또는 ONTAP CLI를 사용하여 생성한 SMB 공유의 이름, Trident가 SMB 공유를 생성할 수 있도록 허용하는 이름, 또는 볼륨에 대한 공통 공유 액세스를 방지하려면 매개 변수를 비워 둘 수 있습니다. 이 매개 변수는 온프레미스 ONTAP의 경우 선택 사항입니다. 이 매개 변수는 Amazon FSx for ONTAP 백엔드에 필요하며 비워 둘 수 없습니다.
smb-sharenasType* `smb`로 설정해야 합니다.* null인 경우 기본값은 `nfs`입니다.
smbsecurityStyle새 볼륨에 대한 보안 스타일입니다. SMB 볼륨의 경우
ntfs또는 `mixed`로 설정해야 합니다.ntfs또는mixedSMB 볼륨의 경우unixPermissions새 볼륨의 모드입니다. SMB 볼륨의 경우 비워 두어야 합니다.
""
보안 SMB 활성화
25.06 릴리스부터 NetApp Trident는 ontap-nas 및 ontap-nas-economy 백엔드를 사용하여 생성된 SMB 볼륨의 보안 프로비저닝을 지원합니다. 보안 SMB가 활성화되면 액세스 제어 목록(ACL)을 사용하여 Active Directory(AD) 사용자 및 사용자 그룹에 SMB 공유에 대한 제어된 액세스를 제공할 수 있습니다.
-
ontap-nas-economy볼륨 가져오기는 지원되지 않습니다. -
ontap-nas-economy볼륨의 경우 읽기 전용 클론만 지원됩니다. -
Secure SMB가 활성화된 경우 Trident는 백엔드에 언급된 SMB 공유를 무시합니다.
-
PVC 주석, 스토리지 클래스 주석 및 백엔드 필드를 업데이트해도 SMB 공유 ACL은 업데이트되지 않습니다.
-
클론 PVC의 주석에 지정된 SMB 공유 ACL은 소스 PVC의 ACL보다 우선합니다.
-
보안 SMB를 활성화할 때 유효한 AD 사용자를 제공해야 합니다. 유효하지 않은 사용자는 ACL에 추가되지 않습니다.
-
백엔드, 스토리지 클래스 및 PVC에 동일한 AD 사용자를 지정하고 각기 다른 권한을 부여하는 경우 권한 우선순위는 PVC, 스토리지 클래스, 백엔드 순이 됩니다.
-
보안 SMB는
ontap-nas관리형 볼륨 가져오기에 대해 지원되며, 관리되지 않는 볼륨 가져오기에는 적용되지 않습니다.
-
다음 예시와 같이 TridentBackendConfig에서 adAdminUser를 지정하십시오:
apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: backend-tbc-ontap namespace: trident spec: version: 1 storageDriverName: ontap-nas managementLIF: 10.193.176.x svm: svm0 useREST: true defaults: adAdminUser: tridentADtest credentials: name: backend-tbc-ontap-invest-secret -
스토리지 클래스에 주석을 추가합니다.
`trident.netapp.io/smbShareAdUser` 어노테이션을 스토리지 클래스에 추가하여 안전한 SMB를 확실하게 활성화하십시오. 어노테이션 `trident.netapp.io/smbShareAdUser`에 지정된 사용자 값은 `smbcreds` 시크릿에 지정된 사용자 이름과 동일해야 합니다. `smbShareAdUserPermission`에 대해 다음 중 하나를 선택할 수 있습니다: `full_control`, `change` 또는 `read`. 기본 권한은 `full_control`입니다.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ontap-smb-sc
annotations:
trident.netapp.io/smbShareAdUserPermission: change
trident.netapp.io/smbShareAdUser: tridentADuser
parameters:
backendType: ontap-nas
csi.storage.k8s.io/node-stage-secret-name: smbcreds
csi.storage.k8s.io/node-stage-secret-namespace: trident
trident.netapp.io/nasType: smb
provisioner: csi.trident.netapp.io
reclaimPolicy: Delete
volumeBindingMode: Immediate
-
PVC를 생성합니다.
다음 예제는 PVC를 생성합니다.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc4
namespace: trident
annotations:
trident.netapp.io/snapshotDirectory: "true"
trident.netapp.io/smbShareAccessControl: |
read:
- tridentADtest
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: ontap-smb-sc