VPC: IBM Cloud Object Storage의 권한 부여된 IP 주소 설정
가상 프라이빗 클라우드
IBM Cloud Object Storage 버킷에 액세스할 수 있도록 VPC Cloud 서비스 엔드포인트 소스 IP 주소에 권한을 부여할 수 있습니다. 권한 부여된 IP 주소를 설정하면 해당 IP 주소에서만 버킷 데이터에 액세스할 수 있습니다(예: 앱 팟(Pod)에서).
- 최소 필수 권한
- Red Hat OpenShift on IBM Cloud 서비스에 대한 관리자 서비스 액세스 역할.
- IBM Cloud Object Storage 서비스에 대한 작성자 서비스 액세스 역할.
-
지시사항에 따라
ibmcHelm 플러그인을 설치하십시오.ibm-object-storage-plugin을 설치하고bucketAccessPolicy옵션을true으로 설정해야 합니다. -
IBM Cloud Object Storage 인스턴스에 대해 하나의
ManagerHMAC 서비스 인증 정보와 하나의WriterHMAC 서비스 인증 정보를 작성하십시오. -
IBM Cloud Object Storage 관리자 인증 정보의
apikey를 Base64로 인코딩하십시오.echo -n "<cos_manager_apikey>" | base64 -
IBM Cloud Object Storage 작성자 인증 정보의
access-key및secret-key를 Base64로 인코딩하십시오.echo -n "<cos_writer_access-key>" | base64 echo -n "<cos_writer_secret-key>" | base64 -
인코딩한 값으로 시크릿 구성 파일을 작성하십시오.
access-key및secret-key에 대해, 작성한 작성자 HMAC 인증 정보의 Base64 인코딩된access-key및secret-key를 입력하십시오.res-conf-apikey의 경우, 관리자 HMAC 인증 정보의 base64 인코딩apikey를 입력하십시오.apiVersion: v1 kind: Secret metadata: name: <secret_name> type: ibm/ibmc-s3fs data: access-key: # Enter your base64 encoded COS Writer access-key secret-key: # Enter your base64 encoded COS Writer secret-key res-conf-apikey: # Enter your base64 encoded COS Manager api-key -
클러스터의 시크릿을 작성하십시오.
oc create -f secret.yaml -
시크릿이 작성되었는지 확인하십시오.
oc get secrets -
작성한 시크릿을 사용하는 PVC를 작성하십시오. 데이터를 캐시하는 버킷을 자동으로 작성하기 위해
ibm.io/auto-create-bucket: "true"및ibm.io/auto_cache: "true"어노테이션을 설정하십시오.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: <pvc_name> annotations: ibm.io/auto-create-bucket: "true" ibm.io/auto-delete-bucket: "false" ibm.io/auto_cache: "true" ibm.io/bucket: "<bucket_name>" ibm.io/secret-name: "<secret_name>" ibm.io/secret-namespace: "<secret-namespace>" # By default, the COS plug-in searches for your secret in the same namespace where you create the PVC. If you created your secret in a namespace other than the namespace where you want to create your PVC, enter the namespace where you created your secret. spec: accessModes: - ReadWriteMany resources: requests: storage: 8Gi storageClassName: ibmc-s3fs-standard-regional volumeMode: Filesystem -
VPC의 Cloud 서비스 엔드포인트 소스 IP 주소 목록을 가져오십시오.
-
VPC 목록을 가져오십시오.
ibmcloud is vpcs -
VPC 세부사항을 가져오고 Cloud Service Endpoint 소스 IP 주소를 기록해 두십시오.
ibmcloud is vpc <vpc_ID>출력 예
... Cloud Service Endpoint source IP addresses: Zone Address us-south-1 10.249.XXX.XX us-south-2 10.249.XXX.XX us-south-3 10.249.XXX.XX
-
-
VPC의 Cloud 서비스 엔드포인트 소스 IP 주소가 IBM Cloud Object Storage 버킷에서 권한 부여되어 있는지 확인하십시오.
-
IBM Cloud Object Storage 리소스 목록에서 IBM Cloud Object Storage 인스턴스를 선택하고 PVC에 지정된 버킷을 선택하십시오.
-
액세스 정책 > 권한 부여된 IP를 선택하고 VPC의 Cloud 서비스 엔드포인트 소스 IP 주소가 표시되어 있는지 확인하십시오.
콘솔에서는 버킷을 읽거나 버킷에 쓸 수 없습니다. 클러스터의 앱 팟(Pod)에서만 버킷에 액세스할 수 있습니다.
-
클러스터에서 앱을 작성하십시오.
oc create -f app.yaml
- 앱 팟(Pod)이
Running상태인지 확인하십시오.
oc get pods | grep <app_name>
-
볼륨이 마운트되었으며 COS 버킷을 읽고 쓸 수 있는지 확인하십시오.
-
앱 팟(Pod)에 로그인하십시오.
oc exec -it <pod_name> bash -
앱 팟(Pod)에서 COS 버킷이 마운트되었으며 COS 버킷을 읽고 쓸 수 있는지 확인하십시오. 사용 가능한 디스크 공간을 표시하는
df명령을 사용하여 시스템에서 사용 가능한 디스크 공간을 보십시오. COS 버킷은s3fs파일 시스템 유형 및 PVC에 지정한 마운트 경로를 표시합니다.df이 예제에서 COS 버킷은
/cos-vpc에 마운트됩니다.Filesystem 1K-blocks Used Available Use% Mounted on overlay 102048096 9071556 87786140 10% / tmpfs 65536 0 65536 0% /dev tmpfs 7565792 0 7565792 0% /sys/fs/cgroup shm 65536 0 65536 0% /dev/shm /dev/vda2 102048096 9071556 87786140 10% /etc/hosts s3fs 274877906944 0 274877906944 0% /cos-vpc tmpfs 7565792 44 7565748 1% /run/secrets/kubernetes.io/serviceaccount tmpfs 7565792 0 7565792 0% /proc/acpi tmpfs 7565792 0 7565792 0% /proc/scsi tmpfs 7565792 0 7565792 0% /sys/firmware -
디렉토리를 COS 버킷이 마운트된 디렉토리로 변경하십시오. 이 예에서는 버킷이
/cos-vpc에 마운트됩니다.cd cos-vpc -
test.txt파일을 COS 버킷에 작성하고 파일을 나열하여 파일이 작성되었는지 확인하십시오.touch test.txt && ls -
파일을 제거하고 앱 팟(Pod)에서 로그아웃하십시오.
rm test.txt && exit