mybinder.org-deploy
mybinder.org-deploy copied to clipboard
Try using image streaming on GKE to speed up binder starts
GKE now supports streaming docker images, where they can theoretically start before the entire image is pulled. Since docker image pulling is what takes the most amount of time in starting a user pod, this could offer binder enormous speedups.
https://github.com/berkeley-dsep-infra/datahub/issues/2958 is my attempt at enabling it in the Berkeley JupyterHub installation. I don't think it's ready for prime time yet, but we should keep an eye on it due to the enormous benefit it could offer
I saw this, too! I would love to see it work. Since it doesn't seem ready yet, it seems like we could take some early steps like migrating to artifact registry that make sense anyway.
Copying task list:
- [ ] Enable Artifact Registry - streaming pulls are only supported from there
- [ ] Move all user images to artifact registry
- [ ] Fix permissions for our service account to push to artifact registry
- [ ] Enable Container Filesystem API
- [ ] Move node pools to the cos + containerd node image
- [ ] Enable streaming image pulls
- [ ] Upgrade k8s master to be min supported version for this
- [ ] Create new node pools after k8s master is new enough and streaming image pulls have been enabled
I think if we move to containerd on the node, we'll have to update https://github.com/jupyterhub/docker-image-cleaner to support containerd as well.
we'll have to update https://github.com/jupyterhub/docker-image-cleaner to support containerd as well.
I don't think so, actually, because we only use image-cleaner on dind now (imageCleaner.host = False). We leave the host up to k8s own ImageGC routines.