我正在尝试将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
我也试着自己创建卷,但也没有工作。
我已经尝试了很多不同的东西,但我不确定我是否在这里错过了什么。
如果你能帮忙的话,我将不胜感激。
谢谢
1条答案
按热度按时间yftpprvb1#
我不认为这会起作用,因为OCI目前不支持将对象存储用作PVC。
这里有一个可行的替代方案,但目前涉及手动步骤:
在每个节点上安装s3 fs。这将允许您将s3 bucket(包括OCI的S3)挂载为挂载文件夹。然后,您可以使用host path将卷挂载到容器中。如果重新启动节点,则需要重新挂载存储桶,或设置服务在重新启动时启动。如果你有多个节点,或者不断地删除/添加节点,这可能是一个痛苦。