在Oracle Kubernetes Engine中使用Oracle对象存储作为持久卷

t1rydlwq  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(79)

我正在尝试将Oracle Object Storage用作Oracle Kubernetes Engine中的持久化卷。
我创建了一个Kubernetes集群,并创建了一个名为test-bucket的公共存储桶。
我的yaml文件是:

存储类.yaml

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: object-storage
provisioner: oci.oraclecloud.com/object-storage
parameters:
  compartment-id: 
  bucket-name: test-bucket
  access-key: 
  secret-key:

PVC.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: object-storage-pvc
spec:
  storageClassName: object-storage
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: object-storage-pod
spec:
  containers:
  - name: object-storage-container
    image: busybox
    command: ["sleep", "infinity"]
    volumeMounts:
    - name: object-storage
      mountPath: /home/user/data
  volumes:
  - name: object-storage
    persistentVolumeClaim:
      claimName: object-storage-pvc

我已经应用了所有的文件,但是当我创建PVC时,我收到了这个错误。

Normal  ExternalProvisioning  3m2s (x26 over 8m53s)  persistentvolume-controller  waiting for a volume to be created, either by external provisioner "oci.oraclecloud.com/object-storage" or manually created by system administrator

我也试着自己创建卷,但也没有工作。
我已经尝试了很多不同的东西,但我不确定我是否在这里错过了什么。
如果你能帮忙的话,我将不胜感激。
谢谢

yftpprvb

yftpprvb1#

我不认为这会起作用,因为OCI目前不支持将对象存储用作PVC。
这里有一个可行的替代方案,但目前涉及手动步骤:
在每个节点上安装s3 fs。这将允许您将s3 bucket(包括OCI的S3)挂载为挂载文件夹。然后,您可以使用host path将卷挂载到容器中。如果重新启动节点,则需要重新挂载存储桶,或设置服务在重新启动时启动。如果你有多个节点,或者不断地删除/添加节点,这可能是一个痛苦。

相关问题