Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vineyard-Operator Integration with kubernetes #97

Closed
3 of 4 tasks
sighingnow opened this issue Dec 17, 2020 · 1 comment · Fixed by #223 or #589
Closed
3 of 4 tasks

Vineyard-Operator Integration with kubernetes #97

sighingnow opened this issue Dec 17, 2020 · 1 comment · Fixed by #223 or #589
Labels
component:vineyardd Issues about vineyardd kubernetes priority:high proposal Enhancement proposals for vineyard.
Milestone

Comments

@sighingnow
Copy link
Member

sighingnow commented Dec 17, 2020

Describe your problem

To make vineyard works with kubernetes, we need:

n.b.: some of the work has been merged to the dev/kubernetes branch.

  • basic support for deploying vineyard as DaemonSet
  • Python API like KubeCluster
  • A kubernetes scheduler plugin prototype, to demostrate data-aware scheduling
  • Distribute the vineyard operator to artifacthub to help others operate vineyard cluster easier.
@sighingnow sighingnow added kubernetes component:vineyardd Issues about vineyardd labels Dec 17, 2020
@sighingnow sighingnow added this to the cncf-kickoff milestone Jan 11, 2021
@sighingnow sighingnow changed the title Integration with kubernetes Vineyard-Operator Integration with kubernetes Jan 27, 2021
@sighingnow sighingnow added the proposal Enhancement proposals for vineyard. label Jan 27, 2021
@sighingnow
Copy link
Member Author

Close as the kubernetes part is ready for CNCF proposal.

sighingnow added a commit that referenced this issue Jun 1, 2021
…#223)

Vineyard operator is a kubernetes controller to operator the vineyard cluster. Within the
vineyard operator, there's a scheduler-plugin called vineyard-scheduler which performs
data aware job scheduling based on the locality information of objects in vineyard.

Vineyard operator defines two CRDs to represents objects in vineyard:

+ GlobalObject for global objects
+ LocalObject for local objects

The scheduler plugin works based the CRDs in the cluster. When vineyardd persists objects
to etcd, it will create a CRD entry in kubernetes as well. The metadata of CRD has location
information and scheduler plugin scores pod based on the data locality of required objects
by jobs. For jobs, some label annotation are used to describe which objects are required
in the pod spec.

```
labels:
    app: pytorch
    scheduling.k8s.v6d.io/job: pytorch
    scheduling.k8s.v6d.io/required: "o0000022285553e22"
    scheduling.k8s.v6d.io/replica: "4"
```

Resolves #97.

Signed-off-by: Tao He <linzhu.ht@alibaba-inc.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:vineyardd Issues about vineyardd kubernetes priority:high proposal Enhancement proposals for vineyard.
Projects
None yet
1 participant