VPC: 設定 IBM Cloud Object Storage 的授權 IP 位址
虛擬私有雲
您可以授權 VPC Cloud Service Endpoint 來源 IP 位址存取您的 IBM Cloud Object Storage 桶。 當您設定授權 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 Manager 認證中的
apikey編碼為 base64。echo -n "<cos_manager_apikey>" | base64 -
將 IBM Cloud Object Storage Writer 認證中的
access-key和secret-key編碼為 base64。echo -n "<cos_writer_access-key>" | base64 echo -n "<cos_writer_secret-key>" | base64 -
使用您編碼的值建立密鑰配置檔。 對於
access-key和secret-key,從您建立的 Writer 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 的雲端服務端點來源 IP 位址清單。
-
取得 VPC 的清單。
ibmcloud is vpcs -
取得 VPC 的詳細資料,並記下雲端服務端點來源 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
-
-
驗證已在 IBM Cloud Object Storage 儲存區中授權 VPC 的「雲端服務端點」來源 IP 位址。
-
從 IBM Cloud Object Storage 資源清單 中,選取 IBM Cloud Object Storage 實例,然後選取您在 PVC 中指定的儲存區。
-
選取 存取原則 > 授權 IP,並驗證是否顯示 VPC 的「雲端服務端點」來源 IP 位址。
您無法從主控台讀取或寫入儲存區。 您只能從叢集上的應用程式 Pod 內存取儲存區。
-
在群集中建立應用程式。
oc create -f app.yaml
- 驗證您的應用程式 Pod 是
Running。
oc get pods | grep <app_name>
-
驗證磁區已裝載,且您可以讀取及寫入 COS 儲存區。
-
登入您的應用程式 pod。
oc exec -it <pod_name> bash -
驗證 COS 儲存區已從應用程式 Pod 裝載,且您可以讀取及寫入 COS 儲存區。 執行 disk free
df指令,以查看系統中的可用磁碟。 COS 儲存區會顯示您在 PVC 中指定的s3fs檔案系統類型及裝載路徑。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