Ceph Object Gateway, S3 호환 Object Storage
Operator 설정
rook-ceph-values.yaml
rbacAggregate:
enableOBCs: true
CephObjectStore 생성
Reference
Local Object Store
apiVersion: ceph.rook.io/v1
kind: CephObjectStore
spec:
metadataPool:
dataPool:
gateway:
port: 9000
instances: 1
priorityClassName: system-cluster-critical
metadataPool
failureDomain: <crushType|osd>
- 기본 값은
host
입니다.
- 기본 값은
replicated
size: <size>
dataPool
failureDomain: <crushType|osd>
- 기본 값은
host
입니다.
- 기본 값은
replicated
size: <size>
gateway
port: <port>
instances: <replicas>
resources
placement
nodeAffinity
podAffinity
podAntiAffinity
tolerations
topologySpreadConstraints
External Object Store
apiVersion: ceph.rook.io/v1
kind: CephObjectStore
spec:
gateway:
port: 9000
externalRgwEndpoints:
- ip: <objectStoreIP>
# hostname: <objectStoreHostname>
gateway
port: <port>
externalRgwEndpoints: []
- ip 또는 hostname을 지정합니다.
ip: <objectStoreIP>
hostname: <objectStoreHostname>
노트
externalRgwEndpoints
의 첫번째 ip 또는 hostname을 참조하는 리소스들이 많으므로, Provider Storage Cluster에 Object Store에 대한 LoadBalancer 또는 NodePort 타입의 Service를 만들어서 하나만 설정하는 것을 권장합 니다.
StorageClass 생성
apiVersion: storage.k8s.io/v1
kind: StorageClass
provisioner: <cephClusterNamespace>.ceph.rook.io/bucket
volumeBindingMode: Immediate
reclaimPolicy: Delete
parameters:
objectStoreName: <cephObjectStoreName>
objectStoreNamespace: <cephObjectStoreNamespace>
경고
문서상에 provisioner
로 <operatorNamespace>.ceph.rook.io/bucket
을 사용하라고 되어 있지만, <cephClusterNamespace>.ceph.rook.io/bucket
을 사용해야 작동합니다.