curve-operator icon indicating copy to clipboard operation
curve-operator copied to clipboard

curve-operator(v1.0.0) Roadmap

Open caoxianfei1 opened this issue 2 years ago • 0 comments

Curve Operator(v1.0.0) Roadmap(Curvebs)

Feature Priority Description
Create cluster P0 Create a Curve cluster with the ability of the K8s declarative API.
Delete cluster P0 Delete a Curve cluster with the ability of the K8s declarative API.
Update cluster P1 Update the cluster specification according to the cluster declaration setting. For example, add or remove ChunkServer services.
Cluster monitor P1 Deploy visual monitoring system to realize clustering including Prometheus and Grafana services.
Upgrade Cluster P1 Upgrade version of curve cluster on K8s if user modify the version information spec in the cluster declaration yaml file.
Migrate service P2 Migrate services in a cluster is accomplished by modifying the cluster declaration file.
Cluster scaling P2 Scaling cluster based on declarative modify Settings.
Disk discovery P2 Determine disk automatically based on all disks filter rule in the nodes that has joined the cluster.
Manage more than one cluster P2 Achieve multi-cluster management according to the creation of different CR resources.
Diagnosis recovery TODO(hard) A variety of fault diagnosis and recovery . For example, monitoring disk failure and bad disk handling.

Deployment and application

You will find below services after deployment:

$ kubectl get pod -n curvebs

  curve-etcd-axxx
  curve-etcd-bxxx
  curve-etcd-cxxx
  curve-mds-axxx
  curve-mds-bxxx
  curve-mds-cxxx
  curve-chunkserver-a
  curve-chunkserver-b
  curve-chunkserver-c
  curve-chunkserver-d
  curve-chunkserver-e
  curve-snapshotclone-axxx
  curve-snapshotclone-bxxx
  curve-snapshotclone-cxxx
  curve-csi-controller-xxx
  curve-csi-node-axxx
  curve-csi-node-bxxx
  curve-csi-node-cxxx

Apply the curve storage service

Step 1. Create storage class of curve

allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: curve
parameters:
  user: k8s
  cloneLazy: "true"
provisioner: curve.csi.netease.com
reclaimPolicy: Delete
volumeBindingMode: Immediate

Step 2. Provision dynamic volume by a PersistentVolumeClaim (PVC)

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

Step 3. Create a pod that use above PVC

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

caoxianfei1 avatar Feb 27 '23 07:02 caoxianfei1