5.6. Google Compute Platform Filestore CSI Driver Operator
5.6.1. 개요
OpenShift Dedicated는 GCP(Google Compute Platform) 파일 저장소용 CSI(Container Storage Interface) 드라이버를 사용하여 PV(영구 볼륨)를 프로비저닝할 수 있습니다.
CSI Operator 및 드라이버를 사용할 때는 영구 스토리지 및 CSI 볼륨 구성에 대해 숙지하는 것이 좋습니다.
GCP Filestore 스토리지 자산에 마운트되는 CSI 프로비저닝 PV를 생성하려면 openshift-cluster-csi-drivers
네임스페이스에 GCP Filestore CSI 드라이버와 GCP Filestore CSI 드라이버를 설치합니다.
- GCP Filestore CSI Driver Operator 는 기본적으로 스토리지 클래스를 제공하지 않지만 필요한 경우 스토리지 클래스를 생성할 수 있습니다. GCP Filestore CSI Driver Operator는 필요에 따라 스토리지 볼륨을 생성할 수 있으므로 클러스터 관리자가 스토리지를 사전 프로비저닝할 필요가 없어 동적 볼륨 프로비저닝을 지원합니다.
- GCP Filestore CSI 드라이버 를 사용하면 GCP Filestore PV를 생성하고 마운트할 수 있습니다.
OpenShift Dedicated GCP Filestore는 워크로드 ID를 지원합니다. 이를 통해 사용자는 서비스 계정 키 대신 페더레이션 ID를 사용하여 Google Cloud 리소스에 액세스할 수 있습니다. GCP Workload Identity는 설치 중에 전역적으로 활성화되어야 하며 GCP Filestore CSI Driver Operator에 맞게 설정해야 합니다. 자세한 내용은 GCP Filestore CSI Driver Operator 설치를 참조하십시오.
5.6.2. CSI 정보
스토리지 벤더는 일반적으로 Kubernetes의 일부로 스토리지 드라이버를 제공합니다. CSI(Container Storage Interface) 구현을 통해 타사 공급자는 코어 Kubernetes 코드를 변경하지 않고도 표준 인터페이스를 사용하여 스토리지 플러그인을 제공할 수 있습니다.
CSI Operator는 in-tree 볼륨 플러그인에서 사용할 수 없는 볼륨 스냅샷과 같은 OpenShift Dedicated 사용자 스토리지 옵션을 제공합니다.
5.6.3. GCP Filestore CSI Driver Operator 설치
5.6.3.1. 워크로드 ID를 사용하여 GCP Filestore CSI Driver Operator 설치 준비
Google Compute Platform Filestore와 함께 GCP Workload Identity를 사용하려는 경우 GCP Filestore CSI(Container Storage Interface) Driver Operator를 설치하는 동안 사용할 특정 매개변수를 가져와야 합니다.
사전 요구 사항
- cluster-admin 역할을 가진 사용자로 클러스터에 액세스합니다.
절차
워크로드 ID를 사용하여 GCP Filestore CSI Driver Operator 설치를 준비하려면 다음을 수행합니다.
프로젝트 번호를 가져옵니다.
다음 명령을 실행하여 프로젝트 ID를 가져옵니다.
$ export PROJECT_ID=$(oc get infrastructure/cluster -o jsonpath='{.status.platformStatus.gcp.projectID}')
다음 명령을 실행하여 프로젝트 ID를 사용하여 프로젝트 번호를 가져옵니다.
$ gcloud projects describe $PROJECT_ID --format="value(projectNumber)"
ID 풀 ID와 공급자 ID를 찾습니다.
클러스터 설치 중에 이러한 리소스의 이름은
--name 매개변수를
사용하여 Cloud Credential Operator 유틸리티(ccoctl
)에 제공됩니다. "Cloud Credential Operator 유틸리티를 사용하여 GCP 리소스 생성"을 참조하십시오.GCP Filestore Operator의 Workload Identity 리소스를 생성합니다.
다음 예제 파일을 사용하여
CredentialsRequest
파일을 생성합니다.인증 정보 요청 YAML 파일 예
apiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: name: openshift-gcp-filestore-csi-driver-operator namespace: openshift-cloud-credential-operator annotations: include.release.openshift.io/self-managed-high-availability: "true" include.release.openshift.io/single-node-developer: "true" spec: serviceAccountNames: - gcp-filestore-csi-driver-operator - gcp-filestore-csi-driver-controller-sa secretRef: name: gcp-filestore-cloud-credentials namespace: openshift-cluster-csi-drivers providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: GCPProviderSpec predefinedRoles: - roles/file.editor - roles/resourcemanager.tagUser skipServiceCheck: true
다음 명령을 실행하여
CredentialsRequest
파일을 사용하여 GCP 서비스 계정을 생성합니다.$ ./ccoctl gcp create-service-accounts --name=<filestore-service-account> \1 --workload-identity-pool=<workload-identity-pool> \2 --workload-identity-provider=<workload-identity-provider> \3 --project=<project-id> \4 --credentials-requests-dir=/tmp/credreq 5
출력 예
2025/02/10 17:47:39 Credentials loaded from gcloud CLI defaults 2025/02/10 17:47:42 IAM service account filestore-service-account-openshift-gcp-filestore-csi-driver-operator created 2025/02/10 17:47:44 Unable to add predefined roles to IAM service account, retrying... 2025/02/10 17:47:59 Updated policy bindings for IAM service account filestore-service-account-openshift-gcp-filestore-csi-driver-operator 2025/02/10 17:47:59 Saved credentials configuration to: /tmp/install-dir/ 1 openshift-cluster-csi-drivers-gcp-filestore-cloud-credentials-credentials.yaml
- 1
- 현재 디렉터리입니다.
다음 명령을 실행하여 새로 생성된 서비스 계정의 서비스 계정 이메일을 찾습니다.
$ cat /tmp/install-dir/manifests/openshift-cluster-csi-drivers-gcp-filestore-cloud-credentials-credentials.yaml | yq '.data["service_account.json"]' | base64 -d | jq '.service_account_impersonation_url'
출력 예
https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/filestore-se-openshift-g-ch8cm@openshift-gce-devel.iam.gserviceaccount.com:generateAccessToken
이 예제 출력에서 서비스 계정 이메일은
filestore-se-openshift-g-ch8cm@openshift-gce-devel.iam.gserviceaccount.com
입니다.
결과
이제 GCP Filestore CSI Driver Operator를 설치하는 데 필요한 다음 매개변수가 있습니다.
- 프로젝트 번호 - 1.b 단계
- Pool ID - 단계 2에서
- 공급자 ID - 2단계에서
- 서비스 계정 이메일 - 단계 3.c
5.6.3.2. GCP Filestore CSI Driver Operator 설치
GCP(Google Compute Platform) Filestore CSI(Container Storage Interface) Driver Operator는 기본적으로 OpenShift Dedicated에 설치되지 않습니다. 다음 절차에 따라 클러스터에 GCP Filestore CSI Driver Operator를 설치합니다.
사전 요구 사항
- OpenShift Dedicated 웹 콘솔에 액세스합니다.
- GCP 워크로드 ID를 사용하는 경우 특정 GCP 워크로드 ID 매개변수가 필요합니다. Workload Identity를 사용하여 GCP Filestore CSI Driver Operator 설치 준비 섹션을 참조하십시오.
절차
웹 콘솔에서 GCP Filestore CSI Driver Operator를 설치하려면 다음을 수행합니다.
- OpenShift Cluster Manager 에 로그인합니다.
- 클러스터를 선택합니다.
- 콘솔 열기 를 클릭하고 인증 정보를 사용하여 로그인합니다.
다음 명령을 실행하여 GCE 프로젝트에서 Filestore API를 활성화합니다.
$ gcloud services enable file.googleapis.com --project <my_gce_project> 1
- 1
<my_gce_project>
를 Google Cloud 프로젝트로 바꿉니다.
Google Cloud 웹 콘솔을 사용하여 이 작업을 수행할 수도 있습니다.
GCP Filestore CSI Operator를 설치합니다.
-
Operators
OperatorHub를 클릭합니다. - 필터 상자에 GCP Filestore를 입력하여 GCP Filestore CSI Operator를 찾습니다.
- GCP Filestore CSI Driver Operator 버튼을 클릭합니다.
- GCP Filestore CSI Driver Operator 페이지에서 설치를 클릭합니다.
Operator 설치 페이지에서 다음을 확인합니다.
- 클러스터의 모든 네임스페이스(기본값)가 선택됩니다.
설치된 네임스페이스는 openshift-cluster-csi-drivers로 설정됩니다.
GCP 워크로드 ID를 사용하는 경우 워크로드 ID를 사용하여 GCP Filestore CSI Driver Operator 설치 준비 섹션 섹션의 다음 필드의 값을 입력합니다.
- GCP 프로젝트 번호
- GCP 풀 ID
- GCP 공급자 ID
- GCP 서비스 계정 이메일
설치를 클릭합니다.
설치가 완료되면 GCP Filestore CSI Operator가 웹 콘솔의 설치된 Operator 섹션에 나열됩니다.
-
Operators
GCP Filestore CSI 드라이버를 설치합니다.
-
관리
CustomResourceDefinitions ClusterCSIDriver를 클릭합니다. Instances 탭에서 Create ClusterCSIDriver를 클릭합니다.
다음 YAML 파일을 사용합니다.
apiVersion: operator.openshift.io/v1 kind: ClusterCSIDriver metadata: name: filestore.csi.storage.gke.io spec: managementState: Managed
- 생성을 클릭합니다.
다음 조건이 "true" 상태로 변경될 때까지 기다립니다.
- GCPFilestoreDriverCredentialsRequestControllerAvailable
- GCPFilestoreDriverNodeServiceControllerAvailable
- GCPFilestoreDriverControllerServiceControllerAvailable
-
관리
5.6.4. GCP Filestore 스토리지용 스토리지 클래스 생성
Operator를 설치한 후 GCP(Google Compute Platform) Filestore 볼륨의 동적 프로비저닝을 위한 스토리지 클래스를 생성해야 합니다.
사전 요구 사항
- 실행 중인 OpenShift Dedicated 클러스터에 로그인되어 있습니다.
절차
스토리지 클래스를 생성하려면 다음을 수행합니다.
다음 예제 YAML 파일을 사용하여 스토리지 클래스를 생성합니다.
YAML 파일의 예
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: filestore-csi provisioner: filestore.csi.storage.gke.io parameters: connect-mode: DIRECT_PEERING 1 network: network-name 2 allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer
Filestore 인스턴스를 생성해야 하는 VPC 네트워크의 이름을 지정합니다.
Filestore 인스턴스를 생성해야 하는 VPC 네트워크를 지정하는 것이 좋습니다. VPC 네트워크가 지정되지 않은 경우 CSI(Container Storage Interface) 드라이버는 프로젝트의 기본 VPC 네트워크에 인스턴스를 생성하려고 합니다.
IPI 설치 시 VPC 네트워크 이름은 일반적으로 접미사 "-network"가 있는 클러스터 이름입니다. 그러나 UPI 설치 시 VPC 네트워크 이름은 사용자가 선택한 모든 값이 될 수 있습니다.
공유 VPC(
connect-mode
=PRIVATE_SERVICE_ACCESS
)의 경우 네트워크가 전체 VPC 이름이어야 합니다. 예:projects/shared-vpc-name/global/networks/gcp-filestore-network
.다음 명령을 사용하여
MachineSets
오브젝트를 검사하여 VPC 네트워크 이름을 확인할 수 있습니다.$ oc -n openshift-machine-api get machinesets -o yaml | grep "network:" - network: gcp-filestore-network (...)
이 예에서 이 클러스터의 VPC 네트워크 이름은 "gcp-filestore-network"입니다.
5.6.5. 클러스터 및 GCP 파일 저장소 삭제
일반적으로 클러스터를 삭제하면 OpenShift Dedicated 설치 프로그램이 해당 클러스터에 속하는 모든 클라우드 리소스를 삭제합니다. 그러나 GCP(Google Compute Platform) Filestore 리소스의 특수 특성으로 인해 자동화된 정리 프로세스가 드문 경우 모두 제거되지 않을 수 있습니다.
따라서 제거 프로세스에서 모든 클러스터 소유 Filestore 리소스가 삭제되었는지 확인하는 것이 좋습니다.
절차
모든 GCP Filestore PVC가 삭제되었는지 확인하려면 다음을 수행하십시오.
- GUI 또는 CLI를 사용하여 Google Cloud 계정에 액세스합니다.
kubernetes-io-cluster-${CLUSTER_ID}=owned
라벨을 사용하여 모든 리소스를 검색합니다.클러스터 ID는 삭제된 클러스터에 고유하므로 해당 클러스터 ID가 있는 나머지 리소스가 없어야 합니다.
- 예기치 않은 경우 나머지 리소스가 있으며 삭제합니다.