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

Separate volume or EmptyDir for dind #754

Closed
minrk opened this issue Oct 2, 2018 · 2 comments · Fixed by #777
Closed

Separate volume or EmptyDir for dind #754

minrk opened this issue Oct 2, 2018 · 2 comments · Fixed by #777

Comments

@minrk
Copy link
Member

minrk commented Oct 2, 2018

Now that we are back to having long-lived nodes, our dind image caches are filling up. Our image-cleaning script seems to cause various problems, and is disabled right now (I just re-enabled it for dind-only in #753). If we used EmptyDir for the dind volume instead of /var/lib/dind, then deleting the dind pod would immediately empty;

Advantages of using EmptyDir volume instead:

  • it's very easy/fast to delete the build cache (delete the dind pod)

Disadvantages:

  • updates to the dind deployment always clear the dind image cache, causing an immediate and significant slowdown across the cluster for builds after any upgrade that touches the dind configuration.
@minrk
Copy link
Member Author

minrk commented Oct 15, 2018

An alternative here is to put dind storage on a different volume. If we could do this, then I think the separate image cleaning would play just fine together. I don't know how to get each dind pod to have its own volume, though, since each pod would need its own state, and the current number of dind pods is variable (one per node, since it's a daemonset)

@minrk
Copy link
Member Author

minrk commented Oct 15, 2018

I think we can use local ssds to put dind on its own disk.

This will require:

  1. allocate a new node pool, with: gcloud beta container node-pools create ... --local-ssd-count 1
  2. drain the old node pool
  3. update config/prod.yaml with dind.hostLibDir: /mnt/ssd0/dind

That should alleviate all of our disk-full woes, because dind and host quota/gc behavior will be using different disks, and thus shouldn't conflict with each other.

I'd like to schedule this to deploy tomorrow, since alternating full-disk and image-cleaner issues have been an ongoing low-level headache.

@minrk minrk changed the title Switch back to EmptyDir for dind? Separate volume for dind Oct 15, 2018
@minrk minrk changed the title Separate volume for dind Separate volume or EmptyDir for dind Oct 15, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant