VPC: 設定 IBM Cloud Object Storage 的授權 IP 位址
Virtual Private Cloud
您可以授權「VPC 雲端服務端點」來源 IP 位址存取 IBM Cloud Object Storage 儲存區。 當您設定授權 IP 位址時,只能從那些 IP 位址存取儲存區資料; 例如,在應用程式 Pod 中。
- 最低必要許可權
- IBM Cloud Kubernetes Service 服務的 管理員 服務存取角色。
- IBM Cloud Object Storage 服務的 撰寫者 服務存取角色。
-
遵循指示來安裝
ibmc
Helm 外掛程式。 請務必安裝ibm-object-storage-plugin
,並將bucketAccessPolicy
選項設為true
。 -
為 IBM Cloud Object Storage 實例建立一個
Manager
HMAC 服務認證及一個Writer
HMAC 服務認證。 -
將 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
-
在叢集裡建立密碼。
kubectl create -f secret.yaml
-
驗證已建立密鑰。
kubectl 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 內存取儲存區。
-
在叢集裡建立應用程式。
kubectl create -f app.yaml
- 驗證您的應用程式 Pod 是
Running
。
kubectl get pods | grep <app_name>
-
驗證磁區已裝載,且您可以讀取及寫入 COS 儲存區。
-
登入應用程式 Pod。
kubectl 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