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
Kubernetes cluster - use of EC2 instance storage for pods #15055
Comments
The problem here is that I allocated a very small partition to the 'kubernetes' mount vs the 'docker' mount. That was my bad, and should be fixed by #13803 and cherry-picked in #14272 (although I just noticed the cherry-pick has failed tests so I kicked shippable...) I should have time to answer the SO question tomorrow... |
Does this make all of instance storage available to pods for "emptyDir" type volumes. I remember seeing somewhere that there will not be any separate partitioning of instance storage between Docker and Kubernetes. When do you think this will be out? We badly in need of instance storage for persistence etc. Today all of the instance storage not usable and we had to Create EBS volumes for this purpose. EBS volumes are slow and expansive compared to free instance storage that comes with the larger EC2 instances Appreciate it! |
Additionally, AWS/EBS volumes can not be used with replication controller. This is because each EBS volume need to be attached to one pod at a time compared to one replication controller spec with say 'scale = 3'. For any real use 'emptyDir' volumes from local instance storage are required . In the meantime, in there a pattern to have single EBS volume shared across multiple pods that spawned through replication controller scale instruction? |
EBS is like most block-devices - single writer. On Fri, Oct 9, 2015 at 4:58 PM, Ravindar Reddy notifications@github.com
|
What would be the "kubernetes way" to deploy a production cassandra or other database cluster? |
Given Above, here is the typical way Cassandra is deployed with data storage
Kubernates way could be
|
Hey @rroopreddy and thanks for taking the time to reply, you are absolutely right on all points. My only concern is that by using named volumes you can no longer use a replication controller to scale your service as you'd need custom pod configs for each cassandra node. Or am I missing something? Using your proposed "kubernetes way" for each cassandra node I would need the following:
This way in order to add a new cassandra node I would need to 1) create the EBS 2) create a new VP 3) create a new RC. |
Currently we are using EBS volume and has the issue you mentioned, i.e: replication controller can not be used. This i.e. because EBS volume can be mounted only on one cassandra node (pod in this case). So each node YAML has a pod definition with specific volume id. Host volumes can differ a bit. Say you defined a pool of host volume disks available with some capacity (e.g: 30GB of 3-minions). And then, say carve out 15GB for each node (similar to persistentVolumeClaim). Only thing here is that previously allocated space has to be remembered and linked back while new one has to created. This will work for replication controller scale up models well |
Hi @geoah thanks for chasing this; lot of people have been asking for this for different use case scenarios. Just to clarify, here is a difference between EBS volume based model (persistent forever) and Host instance based model (persistent until machine goes down). We have been using EBS volume model for testing until the host instance approach is figured out. As I mentioned above, could not figure out a way to use replication controller with current EBS volumes approach. I love to hear if there is a way to use replication controller with EBS volumes |
We now create one big volume for ephemeral storage:
I think the issue about RCs and persistent volumes is important, but if there are remaining questions perhaps we an open new issues (I think issues already exist) |
This seems like a pretty good question, but I don't know the answer.
http://stackoverflow.com/questions/32915059/kubernetes-cluster-use-of-ec2-instance-storage-for-pods
@justinsb @thockin
The text was updated successfully, but these errors were encountered: