IBM Cloud Object Storage 플러그인 설치
가상 프라이빗 클라우드 클래식 인프라
IBM Cloud Object Storage 플러그인을 설치하여 IBM Cloud Object Storage 에 대해 미리 정의된 스토리지 클래스를 설정합니다. 이러한 스토리지 클래스를 사용하여 앱의 IBM Cloud Object Storage를 프로비저닝하기 위한 PVC를 작성할 수 있습니다.
Helm를 통해 플러그인 설치하기
- 전제조건
- IBM Cloud Object Storage 플러그인은 최소한 0.2 vCPU 및 128MB의 메모리가 필요합니다.
시작하기 전에: 계정에 로그인하십시오. If applicable, target the appropriate resource group. 클러스터에 대한 컨텍스트를 설정하십시오.
ibmc ( Helm ) 플러그인과 ibm-object-storage-plugin 을 설치하십시오:
-
작업자 노드가 최신 보안 설정으로 작업자 노드를 실행하도록 부 버전에 대한 최신 패치를 적용하는지 확인하십시오. 또한 패치 버전은 작업자 노드의 루트 비밀번호가 갱신되었는지도 확인합니다.
최근 90일 이내에 업데이터를 적용하거나 작업자 노드를 다시 로드하지 않은 경우 작업자 노드의 루트 비밀번호가 만료되고 스토리지 플러그인 설치에 실패할 수 있습니다.
- 작업자 노드의 현재 패치 버전을 나열하십시오.
ibmcloud ks worker ls --cluster CLUSTER_NAME_OR_ID ``` 출력 예 ```sh {: screen} OK ID Public IP Private IP Machine Type State Status Zone Version kube-dal10-crb1a23b456789ac1b20b2nc1e12b345ab-w26 169.xx.xxx.xxx 10.xxx.xx.xxx b3c.4x16.encrypted normal Ready dal10 1.35_1523* ``` 작업자 노드가 최신 패치 버전을 적용하지 않는 경우에는 CLI 출력의 `*`Version** 열에 별표(**)가 표시됩니다. 2. [Kubernetes 버전 정보](/docs/containers?topic=containers-cs_versions) 를 검토하여 최신 변경사항을 찾으십시오. 3. 작업자 노드를 다시 로드하여 최신 패치 버전을 적용하십시오. 워커 노드를 재로드하기 전에, [`ibmcloud ks worker reload` 명령어의](/docs/containers?topic=containers-kubernetes-service-cli#worker-reload-cli) 지침에 따라 워커 노드에서 실행 중인 모든 포드를 안전하게 재스케줄링하십시오. 다시 로드하는 중에 작업자 노드 머신은 최신 이미지로 업데이트되며 [작업자 노드의 외부에 저장](/docs/containers?topic=containers-storage-plan)되지 않은 경우 데이터가 삭제됨을 유념하십시오. -
변경 로그를 검토하고 클러스터 버전 및 아키텍처 에 대한 지원을 확인하십시오.
-
지시사항에 따라 로컬 머신에 버전 3 Helm 클라이언트를 설치하십시오.
IBM Cloud 계정에서 VRF 및 서비스 엔드포인트를 활성화한 경우, 비공개 IBM Cloud Helm 저장소를 사용하여 이미지 가져오기 트래픽을 비공개 네트워크 내에서 처리할 수 있습니다. 계정에서 VRF 또는 서비스 엔드포인트를 사용으로 설정할 수 없으면 공용 Helm 저장소를 사용하십시오.
-
클러스터에 IBM Cloud Helm 저장소를 추가하십시오.
helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm -
Helm 저장소를 업데이트하여 이 저장소에 있는 모든 Helm 차트의 최신 버전을 가져오세요.
helm repo update -
이전에 IBM Cloud Object Storage Helm 플러그인을 설치한 경우
ibmc플러그인을 제거하십시오.helm plugin uninstall ibmc -
Helm 차트를 다운로드하고 현재 디렉토리에서 차트의 압축을 푸십시오.
helm fetch --untar ibm-helm/ibm-object-storage-plugin출력에
Error: failed to untar: a file or directory with the name ibm-object-storage-plugin already exists가 표시되면ibm-object-storage-plugin디렉토리를 삭제하고helm fetch명령을 다시 실행하십시오. -
플러그인을 처음 설치하는 경우 IBM Cloud Object Storage Helm 플러그인
ibmc을 설치하세요. 이 플러그인은 클러스터 위치를 자동으로 검색하고 스토리지 클래스의 IBM Cloud Object Storage 버킷에 대한 API 엔드포인트를 설정합니다. Windows를 운영 체제로 사용하는 경우 이 단계를 건너뛰세요.ibmc플러그인은 Windows에서 지원되지 않습니다.- Helm 플러그인을 설치하십시오.
helm plugin install ./ibm-object-storage-plugin/helm-ibmc ``` 2. `ibmc` 플러그인이 성공적으로 설치되었는지 확인하십시오. ```sh {: pre} helm ibmc --help ``` 출력 예 ```sh {: screen} Helm version: v3.13.1+g3547a4b Install or upgrade Helm charts in IBM K8S Service(IKS) Usage: helm ibmc [command] Available Commands: install Install a Helm chart upgrade Upgrade the release to a new version of the Helm chart Available Flags: -h, --help (Optional) This text. -u, --update (Optional) Update this plugin to the latest version Example Usage: Install: helm ibmc install ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin Upgrade: helm ibmc upgrade [RELEASE] ibm-helm/ibm-object-storage-plugin Note: 1. It is always recommended to install latest version of ibm-object-storage-plugin chart. 2. It is always recommended to have 'kubectl' client up-to-date. ``` 3. **선택 사항**: 출력에 “ `Error: fork/exec /home/iksadmin/.helm/plugins/helm-ibmc/ibmc.sh: permission denied` ” 오류가 표시되면 다음 명령을 실행하십시오. ```sh {: pre} chmod 755 /Users/<user_name>/Library/helm/plugins/helm-ibmc/ibmc.sh ``` 그런 다음 `ibmc --help` 명령을 재시도하십시오. ```sh {: pre} helm ibmc --help ``` -
선택 사항: ‘ IBM Cloud Object Storage ’ 플러그인이 ‘ IBM Cloud Object Storage ’ 서비스 자격 증명을 포함하는 ‘ Kubernetes ’ 시크릿에만 접근하도록 제한합니다. 기본적으로 이 플러그인은 클러스터의 모든 Kubernetes 시크릿에 액세스할 수 있습니다.
- IBM Cloud Object Storage 서비스 인스턴스를 작성하십시오.
- IBM Cloud Object Storage 서비스 인증 정보를 Kubernetes 시크릿에 저장하십시오.
- 디렉토리를
ibm-object-storage-plugin디렉토리로 변경하십시오.
cd ibm-object-storage-plugin ``` 3. `ibm-object-storage-plugin`에서 `templates` 디렉토리로 이동하여 사용 가능한 파일을 나열하십시오. OS X 및 Linux ```sh {: pre} cd templates && ls ``` Windows ```sh {: pre} chdir templates && dir ``` 4. `provisioner-sa.yaml` 파일을 열고 `ibmcloud-object-storage-secret-reader` `ClusterRole` 정의를 찾으십시오. 5. `resourceNames` 섹션에서 플러그인이 액세스할 수 있는 시크릿의 목록에 이전에 작성한 시크릿의 이름을 추가하십시오. ```yaml {: codeblock} kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: ibmcloud-object-storage-secret-reader rules: - apiGroups: [""] resources: ["secrets"] resourceNames: ["<secret_name1>","<secret_name2>"] verbs: ["get"] ``` 6. 변경사항을 저장하고 작업 디렉토리로 이동하십시오. -
클러스터에
ibm-object-storage-plugin을 설치하십시오. 플러그인을 설치하면 사전 정의된 스토리지 클래스가 클러스터에 추가됩니다. IBM Cloud Object Storage 서비스 인증 정보를 보유한 Kubernetes 시크릿에만 액세스하도록 IBM Cloud Object Storage 플러그인을 제한하기 위한 이전 단계를 완료했고 여전히templates디렉토리를 대상으로 지정하는 경우, 디렉토리를 작업 디렉토리로 변경하십시오. 버킷에 사용 가능한 스토리지 양에 대한 한계를 설정하려면--set quotaLimit=trueVPC 클러스터 전용을 설정하십시오. VPC에서 권한 부여된 IP를 사용하려면--set bucketAccessPolicy=true옵션을 설정하십시오.
설치 중에 --set quotaLimit=true 옵션을 설정하지 않으면 PVC에 대한 할당량을 설정할 수 없습니다.
예: helm ibmc install Windows 이외의 운영 체제용 명령.
helm ibmc install ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin --set license=true [--set quotaLimit=true/false] [--set bucketAccessPolicy=true/false] [--set allowCrossNsSecret=true/false]
Windows의 경우 예제 helm install 명령입니다.
helm install ibm-object-storage-plugin ./ibm-object-storage-plugin --set dcname="${DC_NAME}" --set provider="${CLUSTER_PROVIDER}" --set workerOS="${WORKER_OS}" --set region="${REGION} --set platform="${PLATFORM}" --set license=true [--set bucketAccessPolicy=false]
quotaLimit- 할당량 한계는 버킷에 사용 가능한 최대 스토리지 양 (바이트) 을 설정합니다. 이 옵션을
true로 설정하면 PVC를 작성할 때 해당 PVC에서 작성된 버킷의 할당량이 PVC 크기와 동일합니다. 기본값은true입니다. allowCrossNsSecret- 기본적으로 플러그인은 PVC 네임스페이스 이외의 네임스페이스에서 Kubernetes 시크릿을 검색합니다. 이 옵션을
false로 설정하면 플러그인이 PVC 네임스페이스에서만 Kubernetes 시크릿을 검색합니다. 기본값은true입니다. kubeDriver/usr/libexec/kubernetes로 설정하십시오.DC_NAME- 클러스터 데이터 센터입니다. 데이터 센터를 검색하려면
kubectl get cm cluster-info -n kube-system -o jsonpath="{.data.cluster-config\.json}{'\n'}"을 실행하십시오.SET DC_NAME=<datacenter>를 실행하여 환경 변수에 데이터 센터 값을 저장하십시오. 선택사항:$env:DC_NAME="<datacenter>"를 실행하여 Windows PowerShell에서 환경 변수를 설정하십시오. CLUSTER_PROVIDER- 인프라 제공자입니다. 이 값을 검색하려면
kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/iaas-provider}{'\n'}"을 실행하십시오. 이전 단계의 출력에softlayer가 포함된 경우CLUSTER_PROVIDER를"IBMC"로 설정하십시오. 출력에gc,ng또는g2가 포함된 경우,CLUSTER_PROVIDER를"IBMC-VPC"로 설정하십시오. 환경 변수에 인프라 제공자를 저장하십시오. 예를 들면SET CLUSTER_PROVIDER="IBMC-VPC"와 같습니다. WORKER_OS및PLATFORM- 작업자 노드의 운영 체제입니다. 이러한 값을 검색하려면
kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/os}{'\n'}"을 실행하십시오. 작업자 노드의 운영 체제를 환경 변수에 저장하십시오. IBM Cloud Kubernetes Service 클러스터의 경우SET WORKER_OS="debian"및SET PLATFORM="k8s"을 실행하십시오. REGION- 작업자 노드의 지역입니다. 이 값을 검색하려면
kubectl get nodes -o yaml | grep 'ibm-cloud\.kubernetes\.io/region'을 실행하십시오.SET REGION="< region>"을 실행하여 작업자 노드의 지역을 환경 변수에 저장하십시오.
IBM Cloud Object Storage 플러그인 업데이트
기존 IBM Cloud Object Storage 플러그인을 최신 버전으로 업그레이드할 수 있습니다.
-
IBM Cloud Object Storage 플러그인 Helm 릴리스의 이름과 클러스터에 있는 플러그인의 버전을 가져오십시오.
helm ls -A | grep object출력 예
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION <release_name> <namespace> 1 2020-02-13 16:05:58.599679 -0500 EST deployed ibm-object-storage-plugin-1.1.2 1.1.2 -
IBM Cloud Helm 저장소를 업데이트하여 이 저장소에 있는 모든 Helm 차트의 최신 버전을 검색하십시오.
helm repo update -
IBM Cloud Object Storage
ibmcHelm 플러그인을 최신 버전으로 업데이트하십시오.helm ibmc --update -
운영 체제에 맞는
ibm-object-storage-plugin의 최신 버전을 설치하십시오.예: Windows 이외의 운영 체제의 경우
helm ibmc upgrade명령.helm ibmc upgrade ibm-object-storage-plugin ibm-helm/ibm-object-storage-plugin --set license=true [--set quotaLimit=true/false] [--set bucketAccessPolicy=true/false] [--set allowCrossNsSecret=true/false]Windows의 경우 예제
helm upgrade명령입니다.helm upgrade ibm-object-storage-plugin ./ibm-object-storage-plugin --set dcname="${DC_NAME}" --set provider="${CLUSTER_PROVIDER}" --set workerOS="${WORKER_OS}" --set region="${REGION} --set platform="${PLATFORM}" --set license=true [--set bucketAccessPolicy=false]DC_NAME- 클러스터 데이터 센터입니다. 데이터 센터를 검색하려면
kubectl get cm cluster-info -n kube-system -o jsonpath="{.data.cluster-config\.json}{'\n'}"을 실행하십시오.SET DC_NAME=<datacenter>를 실행하여 환경 변수에 데이터 센터 값을 저장하십시오. 선택사항:$env:DC_NAME="<datacenter>"를 실행하여 Windows PowerShell에서 환경 변수를 설정하십시오. CLUSTER_PROVIDER- 인프라 제공자입니다. 이 값을 검색하려면
kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/iaas-provider}{'\n'}"을 실행하십시오. 이전 단계의 출력에softlayer가 포함된 경우CLUSTER_PROVIDER를"IBMC"로 설정하십시오. 출력에gc,ng또는g2가 포함된 경우,CLUSTER_PROVIDER를"IBMC-VPC"로 설정하십시오. 환경 변수에 인프라 제공자를 저장하십시오. 예를 들면SET CLUSTER_PROVIDER="IBMC-VPC"와 같습니다. WORKER_OS및PLATFORM- 작업자 노드의 운영 체제입니다. 이러한 값을 검색하려면
kubectl get nodes -o jsonpath="{.items[*].metadata.labels.ibm-cloud\.kubernetes\.io\/os}{'\n'}"을 실행하십시오. 작업자 노드의 운영 체제를 환경 변수에 저장하십시오. IBM Cloud Kubernetes Service 클러스터의 경우SET WORKER_OS="debian"및SET PLATFORM="k8s"을 실행하십시오. REGION- 작업자 노드의 지역입니다. 이 값을 검색하려면
kubectl get nodes -o yaml | grep 'ibm-cloud\.kubernetes\.io/region'을 실행하십시오.SET REGION="< region>"을 실행하여 작업자 노드의 지역을 환경 변수에 저장하십시오.
-
ibmcloud-object-storage-plugin이 성공적으로 업그레이드되었는지 확인하십시오. CLI 출력에deployment "ibmcloud-object-storage-plugin" successfully rolled out이 나타나면 플러그인의 업그레이드가 완료된 것입니다.kubectl rollout status deployment/ibmcloud-object-storage-plugin -n ibm-object-s3fs -
ibmcloud-object-storage-driver이 성공적으로 업그레이드되었는지 확인하십시오. CLI 출력에daemon set "ibmcloud-object-storage-driver" successfully rolled out이 나타나면 플러그인의 업그레이드가 완료된 것입니다.kubectl rollout status ds/ibmcloud-object-storage-driver -n ibm-object-s3fs -
IBM Cloud Object Storage 팟(Pod)이
Running상태인지 확인하십시오.kubectl get pods -n <namespace> -o wide | grep object-storage
IBM Cloud Object Storage 플러그인 업데이트에 문제가 있으면 오브젝트 스토리지: 오브젝트 스토리지 ibmc Helm 플러그인 설치 실패 및 오브젝트 스토리지: IBM Cloud Object Storage 플러그인 설치 실패를
참조하십시오.
IBM Cloud Object Storage 플러그인 제거
클러스터에서 IBM Cloud Object Storage를 프로비저닝하고 사용하지 않으려면 ibm-object-storage-plugin 및 ibmc Helm 플러그인을 설치 제거할 수 있습니다.
ibmc ( Helm ) 플러그인이나 ibm-object-storage-plugin 를 제거하더라도 기존 PVC, PV 또는 데이터는 삭제되지 않습니다. ibm-object-storage-plugin 을 제거하면 모든 관련 드라이버 포드 및 데몬 세트가 클러스터에서 제거되므로 앱이 IBM Cloud Object Storage API를 직접 사용하도록 구성하지
않는 한 클러스터에 대해 새 IBM Cloud Object Storage 을 프로비저닝할 수 없습니다. 기존 PVC및 PV에는 영향을 주지 않습니다.
시작하기 전에:
- 계정에 로그인하십시오. If applicable, target the appropriate resource group. 클러스터에 대한 컨텍스트를 설정하십시오.
- IBM Cloud Object Storage를 사용하는 클러스터에 PVC 또는 PV가 없는지 확인하십시오. 특정 PVC를 마운트하는 모든 팟(Pod)을 나열하려면
kubectl get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"을 실행하십시오.
ibmc Helm 플러그인 및 ibm-object-storage-plugin을 제거하려면 다음을 수행하십시오.
-
ibm-object-storage-pluginHelm 설치 이름을 가져오십시오.helm ls -A | grep ibm-object-storage-plugin출력 예
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION ibm-object-storage-plugin default 2 2020-04-01 08:46:01.403477 -0400 EDT deployed ibm-object-storage-plugin-1.1.4 1.1.4 -
ibm-object-storage-plugin을 설치 제거하십시오.helm uninstall <release_name>ibm-object-storage-plugin으로 이름 지정된 릴리스의 명령 예.helm uninstall ibm-object-storage-plugin -
ibm-object-storage-plugin팟(Pod)이 제거되었는지 확인하십시오.kubectl get pod -n <namespace> | grep object-storageCLI 출력에 팟(Pod)이 표시되지 않으면 팟(Pod) 제거가 성공한 것입니다. CLI 출력에 스토리지 클래스가 표시되지 않으면 스토리지 클래스 제거가 성공한 것입니다.
-
스토리지 클래스가 제거되었는지 확인하십시오.
kubectl get sc | grep s3 -
OS X 또는 Linux 배포판을 사용하는 경우에는
ibmcHelm 플러그인을 제거하십시오. Windows를 사용하는 경우에는 이 단계가 필요하지 않습니다.ibmcHelm 플러그인을 제거하십시오.
helm plugin uninstall ibmc ``` 2. `ibmc` 플러그인이 제거되었는지 확인하십시오. `ibmc` 플러그인이 CLI 출력에 나열되지 않으면 `ibmc` 플러그인이 성공적으로 제거된 것입니다. ```sh {: pre} helm plugin list ``` 출력 예 ```sh {: screen} NAME VERSION DESCRIPTION ```
오브젝트 스토리지 구성 결정
IBM Cloud Kubernetes Service는 특정 구성의 버킷을 작성하는 데 사용할 수 있는 사전 정의된 스토리지 클래스를 제공합니다.
-
IBM Cloud Kubernetes Service에서 사용 가능한 스토리지 클래스를 나열하십시오.
kubectl get sc | grep s3출력 예
ibmc-s3fs-cold-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-cold-regional ibm.io/ibmc-s3fs 8m ibmc-s3fs-smart-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-smart-perf-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-smart-perf-regional ibm.io/ibmc-s3fs 8m ibmc-s3fs-smart-regional ibm.io/ibmc-s3fs 8m ibmc-s3fs-standard-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-standard-perf-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-standard-perf-regional ibm.io/ibmc-s3fs 8m ibmc-s3fs-standard-regional ibm.io/ibmc-s3fs 8m ibmc-s3fs-vault-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-vault-regional ibm.io/ibmc-s3fs 8m -
데이터 액세스 요구사항에 맞는 스토리지 클래스를 선택하십시오. 스토리지 클래스는 버킷의 저장 용량, 읽기 및 쓰기 작업, 그리고 아웃바운드 대역폭을 결정합니다. 사용자에게 적합한 옵션은 서비스 인스턴스에 대한 데이터 읽기 및 쓰기 빈도에 따라 결정됩니다.
- 표준: 이 옵션은 자주 액세스되는 핫(hot) 데이터에 사용됩니다. 공통 유스 케이스는 웹 또는 모바일 앱입니다.
- Vault: 이 옵션은 자주 액세스되지 않는 워크로드 또는 쿨(cool) 데이터에 사용됩니다(예: 1개월에 1회 이하). 공통 유스 케이스는 아카이브, 단기 데이터 보관, 디지털 자산 보존, 테이프 교체 및 재해 복구입니다.
- Cold: 이 옵션은 거의 액세스되지 않는 콜드(cold) 데이터(매 90일마다 또는 이보다 덜 액세스됨) 또는 비활성 데이터에 사용됩니다. 공통 유스 케이스는 아카이브, 장기 백업, 준수용으로 보관되는 히스토리 데이터 또는 거의 액세스되지 않는 워크로드와 앱입니다.
- 스마트: 이 옵션은 특정 사용 패턴을 따르지 않거나, 규모가 너무 커서 사용 패턴을 파악하거나 예측하기 어려운 워크로드 및 데이터에 사용됩니다.
-
버킷에 저장된 데이터의 복원성 레벨을 결정하십시오. 자세한 정보는 지역 및 엔드포인트를 참조하십시오.
- 교차 지역(Cross-region): 이 옵션을 사용하면 데이터가 고가용성을 위해 지리적 위치 내의 3개 지역에 걸쳐 저장됩니다. 지역 간에 분산된 워크로드가 있으면 최인접 지역 엔드포인트로 요청이 라우트됩니다. 지리적 위치에 대한 API 엔드포인트는 클러스터가 있는 위치를 기반으로 이전에 설치된
ibmcHelm 플러그인에 의해 자동으로 설정됩니다. 예를 들어, 클러스터가US South에 있으면 버킷에 대해US GEOAPI 엔드포인트를 사용하도록 스토리지 클래스가 구성됩니다. - 지역적(Regional): 이 옵션을 사용하면 데이터가 한 지역 내의 다중 구역 간에 복제됩니다. 동일한 지역에 있는 워크로드가 있는 경우에는 교차 지역 설정보다 낮은 대기 시간과 더 높은 성능이 나타납니다. 지역적 엔드포인트는 클러스터가 있는 위치를 기반으로 이전에 설치된
ibmHelm 플러그인에 의해 자동으로 설정됩니다. 예를 들어, 클러스터가US South에 있으면 버킷의 지역적 엔드포인트로서US South를 사용하도록 스토리지 클래스가 구성됩니다.
- 교차 지역(Cross-region): 이 옵션을 사용하면 데이터가 고가용성을 위해 지리적 위치 내의 3개 지역에 걸쳐 저장됩니다. 지역 간에 분산된 워크로드가 있으면 최인접 지역 엔드포인트로 요청이 라우트됩니다. 지리적 위치에 대한 API 엔드포인트는 클러스터가 있는 위치를 기반으로 이전에 설치된
-
스토리지 클래스의 세부 IBM Cloud Object Storage 버킷 구성을 검토하십시오.
kubectl describe storageclass <storageclass_name>출력 예
Name: ibmc-s3fs-standard-cross-region IsDefaultClass: No Annotations: <none> Provisioner: ibm.io/ibmc-s3fs Parameters: ibm.io/chunk-size-mb=16,ibm.io/curl-debug=false,ibm.io/debug-level=warn,ibm.io/iam-endpoint=https://iam.bluemix.net,ibm.io/kernel-cache=true,ibm.io/multireq-max=20,ibm.io/object-store-endpoint=https://s3-api.dal-us-geo.objectstorage.service.networklayer.com,ibm.io/object-store-storage-class=us-standard,ibm.io/parallel-count=2,ibm.io/s3fs-fuse-retry-count=5,ibm.io/stat-cache-size=100000,ibm.io/tls-cipher-suite=AESGCM AllowVolumeExpansion: <unset> MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: Immediate Events: <none>ibm.io/chunk-size-mb- IBM Cloud Object Storage에서 읽거나 이에 쓴 데이터 청크의 크기(MB)입니다. 자체 이름에
perf가 있는 스토리지 클래스는 52MB로 설정됩니다. 자체 이름에perf가 없는 스토리지 클래스는 16MB 청크를 사용합니다. 예를 들어,1GB인 파일을 읽으려는 경우 플러그인은 16 또는 52MB 청크의 배수로 이 파일을 읽습니다. ibm.io/curl-debug- IBM Cloud Object Storage 서비스 인스턴스로 전송된 요청의 로깅을 사용합니다. 이를 사용하면 로그가
syslog로 전송되며 사용자가 로그를 외부 로깅 서버로 전달할 수 있습니다. 기본적으로 모든 스토리지 클래스는 이 로깅 기능을 사용하지 않도록false로 설정됩니다. ibm.io/debug-level- IBM Cloud Object Storage 플러그인에서 설정한 로깅 레벨입니다. 모든 스토리지 클래스는
WARN로깅 레벨로 설정되어 있습니다. ibm.io/iam-endpoint- IBM Cloud IAM(Identity and Access Management)에 대한 API 엔드포인트입니다.
ibm.io/kernel-cache- 볼륨 마운트 지점에 대해 커널 버퍼 캐시를 사용하거나 사용하지 않습니다. 이를 사용하면 데이터에 대한 빠른 읽기 액세스를 보장할 수 있도록 IBM Cloud Object Storage에서 읽은 데이터가 커널 캐시에 저장됩니다. 이를 사용하지 않으면 데이터가 캐시되지 않으며 항상 IBM Cloud Object Storage에서 데이터를 읽습니다.
standard및smart스토리지 클래스에서는 커널 캐시가 활성화되며,cold및vault스토리지 클래스에서는 비활성화됩니다. ibm.io/multireq-max- 단일 디렉토리의 파일을 나열하기 위해 IBM Cloud Object Storage 서비스 인스턴스에 전송될 수 있는 병렬 요청의 최대 수입니다. 모든 스토리지 클래스는 최대 20개의 병렬 요청으로 설정됩니다.
ibm.io/object-store-endpoint- IBM Cloud Object Storage 서비스 인스턴스의 버킷에 액세스하는 데 사용할 API 엔드포인트입니다. 엔드포인트는 클러스터의 지역에 따라 자동으로 설정됩니다. 클러스터가 위치한 리전과 다른 리전에 있는 기존 버킷에 액세스하려면, 직접 스토리지 클래스를 생성하고 해당 버킷의 API 엔드포인트를 사용해야 합니다.
ibm.io/object-store-storage-class- 스토리지 클래스의 이름입니다.
ibm.io/parallel-count- 단일 읽기 또는 쓰기 오퍼레이션에 대해 IBM Cloud Object Storage 서비스 인스턴스에 전송될 수 있는 병렬 요청의 최대 수입니다. 자체 이름에
perf가 있는 스토리지 클래스는 최대 20개의 병렬 요청으로 설정됩니다.perf가 없는 스토리지 클래스는 기본적으로 두 개의 병렬 요청으로 설정됩니다. ibm.io/s3fs-fuse-retry-count- 오퍼레이션이 실패로 간주되기 전에 읽기 및 쓰기 오퍼레이션의 최대 재시도 횟수입니다. 모든 스토리지 클래스는 최대 5번의 재시도로 설정됩니다.
ibm.io/stat-cache-size- IBM Cloud Object Storage 메타데이터 캐시에 보관되는 최대 레코드 수입니다. 모든 레코드는 0.5KB까지 가능합니다. 모든 스토리지 클래스는 기본적으로 최대 레코드 수를 100000으로 설정합니다.
ibm.io/tls-cipher-suite- IBM Cloud Object Storage에 대한 연결이 HTTPS 엔드포인트를 통해 설정될 때 사용되어야 하는 TLS 암호 스위트입니다. 암호 모음의 값은 OpenSSL 형식을 따라야 합니다. 작업자 노드가 Ubuntu 운영 체제를 실행하는 경우, 기본적으로
스토리지 클래스는
AESGCM암호 스위트를 사용하도록 설정됩니다. Red Hat 운영 체제를 실행하는 작업자 노드의 경우, 기본적으로ecdhe_rsa_aes_128_gcm_sha_256암호화 스위트가 사용됩니다.
각 스토리지 클래스에 대한 자세한 정보는 스토리지 클래스 참조를 참조하십시오. 사전 설정된 값 중 변경하고 싶은 것이 있다면, 사용자 정의 스토리지 클래스를 생성하십시오.
-
버킷의 이름을 결정하십시오. 버킷 이름은 IBM Cloud Object Storage에서 고유해야 합니다. IBM Cloud Object Storage 플러그인에 의한 버킷 이름 자동 작성을 선택할 수도 있습니다. 버킷의 데이터를 구성하기 위해 서브디렉토리를 작성할 수 있습니다.
이전에 선택한 스토리지 클래스는 전체 버킷의 가격을 결정합니다. 서브디렉토리에 대해 서로 다른 스토리지 클래스를 정의할 수 없습니다. 서로 다른 액세스 요구사항의 데이터를 저장하려면 다중 PVC를 사용한 다중 버킷 작성을 고려하십시오.
-
클러스터 또는 지속적 볼륨 클레임(PVC)이 삭제된 후에 데이터와 버킷을 보관하고자 하는지를 선택하십시오. PVC를 삭제하면 PV가 항상 삭제됩니다. PVC를 삭제할 때 데이터와 버킷도 자동으로 삭제할지 여부를 선택할 수 있습니다. IBM Cloud Object Storage 서비스 인스턴스는 데이터에 대해 선택한 보관 정책과는 무관하며, 이는 PVC 삭제 시에 제거되지 않습니다.
원하는 구성을 결정했으므로 IBM Cloud Object Storage를 프로비저닝하기 위한 PVC를 작성할 준비가 되었습니다.
설치 검증
팟(pod) 세부사항을 검토하여 플러그인 설치가 완료되었는지 확인하십시오.
-
드라이버 팟(Pod)을 나열하여 설치에 성공했는지 확인하십시오.
kubectl get pod --all-namespaces -o wide | grep object출력 예
ibmcloud-object-storage-driver-9n8g8 1/1 Running 0 2m ibmcloud-object-storage-plugin-7c774d484b-pcnnx 1/1 Running 0 2m하나의
ibmcloud-object-storage-plugin팟(Pod)과 하나 이상의ibmcloud-object-storage-driver팟(Pod)이 표시되면 설치가 완료된 것입니다.ibmcloud-object-storage-driver팟(Pod)의 수는 클러스터의 작업자 노드 수와 동일합니다. 플러그인이 제대로 작동하려면 모든 팟(Pod)이Running상태여야 합니다. 팟(pod)이 실패하는 경우 실패의 근본 원인을 찾으려면kubectl describe pod -n ibm-object-s3fs <pod_name>을 실행하십시오. -
스토리지 클래스가 성공적으로 작성되었는지 확인하십시오.
kubectl get sc | grep s3출력 예
ibmc-s3fs-cold-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-cold-regional ibm.io/ibmc-s3fs 8m ibmc-s3fs-smart-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-smart-perf-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-smart-perf-regional ibm.io/ibmc-s3fs 8m ibmc-s3fs-smart-regional ibm.io/ibmc-s3fs 8m ibmc-s3fs-standard-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-standard-perf-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-standard-perf-regional ibm.io/ibmc-s3fs 8m ibmc-s3fs-standard-regional ibm.io/ibmc-s3fs 8m ibmc-s3fs-vault-cross-region ibm.io/ibmc-s3fs 8m ibmc-s3fs-vault-regional ibm.io/ibmc-s3fs 8mIBM Cloud Object Storage 스토리지 클래스 중 하나를 기본 스토리지 클래스로 설정하려면
kubectl patch storageclass <storageclass> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'를 실행하십시오.<storageclass>를 IBM Cloud Object Storage 스토리지 클래스의 이름으로 대체하십시오. -
지시사항에 따라 앱에 오브젝트 스토리지를 추가하십시오.
IBM Cloud Object Storage 플러그인 설치에 문제가 있으면 오브젝트 스토리지: 오브젝트 스토리지 ibmc Helm 플러그인 설치 실패 및 오브젝트 스토리지: IBM Cloud Object Storage 플러그인 설치 실패를
참조하십시오.