Comments (2)
Discussing it on zoom with @nkvoll and @pebrc:
CSI does not work that well for us since it does not really map a persistent volume to a host. It works well for the case of "volume can actually be reached from any node". Otherwise, the controller plugin needs to take each individual node capacity into consideration and make sure to adapt affinity settings.
Works seems to be ongoing (cf. the design proposal) to more closely map local volumes attached to a particular node, dynamic provisioning, and remaining capacity considerations. Probably not ready for at least another year though; but that would be the appropriate "long-term" solution.
Meanwhile, a FlexVolume implementation seems to be the easier workaround for a short-term solution. The design is not as great as CSI, but simpler to deploy and implement.
The decision here for the short-term is to implement a FlexVolume plugin that handles LVM volumes provisioning. Having it running as a daemonset can also enable garbage collection on local volumes which are not referenced anymore.
It's harder to consider storage capacity though. A workaround that was also adopted on Cloud is to only consider RAM usage for pods allocation, while considering there is a global FS multiplier that we can apply from RAM to storage space. The goal here is that the cluster operator would run out of RAM before running out of disk on a given node.
This is to avoid hacky workarounds around persistent volume definitions vs. actual volume size that could still be implemented :-)
from cloud-on-k8s.
I'm closing this since we implemented our own dynamic local-volume provisioner based on a flex driver.
from cloud-on-k8s.
Related Issues (20)
- Potentially allow disabling the creation of the `elastic` user.
- [Elasticsearch] - double containers with use podTemplate.spec.containers HOT 1
- Allow to setup monitoring cluster for APM Server
- [Feature] Standalone Elastic Agent Composite Agent Policies HOT 2
- Expand documentation of elastic-operator command-line
- Logstash StatefulSet initContainers command is not properly reconciliated HOT 1
- Storage class parameter update stopped working with k8s 1.27 on GKE HOT 1
- Upgrade EKS version in use in CI
- Restricted Installation instructions incomplete/broken HOT 2
- Logging: Avoid uuids in field names
- Enhancing Kubernetes Controller Documentation for Elastic Agent Deployments
- GKE Autopilot tests broken on GKE 1.26 HOT 2
- ES restart after encrypting etcd data on openshift container platform 4.12
- TestFleet* is failing HOT 13
- OCP CI always using plans.yml instead of env var overrides
- Support controller-runtime v0.18.0
- ECK Operator chart webhook secret name reference invalid
- elastic-internal-diagnostics may not allow to detect all stack versions HOT 2
- How to add volumeClaimTemplate to eck elastic search HOT 1
- Custom Logs with operator eck dosen't works HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cloud-on-k8s.