Kubernetes is not a closed system. Workloads running inside a Kubernetes cluster can access storage running outside the cluster. This is most appropriate when you migrate an existing application that is already in storage, and configured and operated outside of Kubernetes. In this case, it is a wise move to do it gradually. First, move the workloads to run as containers managed by Kubernetes. These containers will be configured with endpoints to data stores that live outside the cluster. Later, you can consider whether it is worth the effort to bring this external storage into the fold.
There are some other use cases where it makes sense to use out-of-cluster storage, such as the following:
- Your storage cluster uses some exotic hardware, or the networking doesn't have a mature in-tree or CSI plugin (hopefully, as CSI becomes the...