-
Notifications
You must be signed in to change notification settings - Fork 961
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
[FEATURES] Add the Proposal for Vineyard Runtime #3528
Comments
Welcome any comments! |
@dashanji Thanks for your great contributions! I'm considering why the vineyardRuntime API cannot be consistent with alluxioRuntime. Also, what is the necessity of exposing the concept of etcd? Can it be more abstract? Here is a sample from my perspective. It's just a example. :) spec:
replicas: 1
volumes:
- name: pvc-1
secret:
secretName: pvc-1
# statefulset
tieredstore:
levels:
- level: 0
mediumtype: MEM
quota: 2GB
high: "0.95"
low: "0.7"
- level: 1
mediumtype: SSD
volumeType: Hostpath
path: /swap-path
worker:
image: vineyardcloudnative/vineyardd
imagePullPolicy: IfNotPresent
imageTag: latest
env: {}
nodeSelector: {}
volumeMounts:
- name: pvc-1
readOnly: true
mountPath: "/var/pvc-1"
options:
socketPath: /var/run
ports:
port: 9600
# statefulset
master:
replicas: 1
options:
socketPath: /var/run
ports:
etcd: 1200
rpc: 5000
env:
volumeMounts:
- name: pvc-1
readOnly: true
mountPath: "/var/pvc-1"
# daemonset
fuse:
image: ghcr.io/v6d-io/v6d/vineyard-mount-socket
imagePullPolicy: IfNotPresent
imageTag: latest
cleanPolicy: OnRuntimeDeleted |
Make sense to me. It seems that |
Vineyard Runtime Design
Background
Why we need vineyard?
The following is a common big data workflow case.
Challenges: Using external storage (local disk or cloud S3, OSS service, etc.) to implement data exchange will bring a lot of I/O consumption, often becoming the entire Workflow bottlenecks
What is Vineyard?
Vineyard is a distributed in-memory data management system, it provides the following features:
How to use vineyard in kubernetes
Each object in the vineyard is composed of metadata + payload:
The following is the layout of vineyard components in kubernetes:
Vineyard data access method
Important configuration in vineyard: shared memory
size limit
that allows users to set it.The observability of vineyard’s shared memory in kubernetes
true
when starting vineyardd.false
when starting vineyardd.Integrate with fluid
How to mount vineyard socket and perform service discovery.
Create a socket in the specified directory and expose the configuration file (configmap) of the vineyard service (IPC and RPC).
/runtime-mnt/vineyard/{{ .Release.Namespace }}/{{ template "vineyard.fullname" . }}
./runtime-mnt/vineyard/{{ .Release.Namespace }}/{{ template "vineyard.fullname" . }}/vineyard-fuse/dummy-path
./runtime-mnt/vineyard/{{ .Release.Namespace }}/{{ template "vineyard.fullname" . }}
directory to/runtime-mnt/vineyard/{{ .Release.Namespace } }/{{ template "vineyard.fullname" . }}/vineyard-fuse
.How tasks perform service discovery?
fuse.vineyard.fluid.io/inject: "true"
label for task Pod, and inject configmap env.How task pod access data.
Vineyard Runtime API Design
Best Practice
How to set the vineyard pod's own
required
,limits
, and vineyardd'ssize-limit
.How to set the required and limits of task pod memory.
reserveMemory
option is enabled.required
andlimits
.reserveMemory
option is disabled.required
andlimits
of additional memory.required
andlimits
.Optimum performance.
poc
dashanji#1
The text was updated successfully, but these errors were encountered: