Hands-On Kubernetes on Windows
上QQ阅读APP看书,第一时间看更新

Using remote/cloud storage for container storage

Storing data locally in a container host filesystem is not suitable for use cases that require high-availability, failover, and ease of data backup. In order to provide storage abstraction, Docker provides volume drivers (plugins), which can be used to manage volumes that are hosted on remote machines or in cloud services. Unfortunately, at the time of writing this book, Windows containers running on-premises do not support the volume plugins that are currently available on Linux OS. This leaves us with three choices when it comes to using cloud storage in Windows containers:

  • Use Docker for Azure and the Cloudstor volume plugin, which is a partially managed solution for running Docker in swarm mode on Azure VMs. In this book, we will not cover Docker for Azure as this solution is separate from Kubernetes, including Azure offerings for managed Kubernetes. If you are interested in more details about this service, please refer to https://docs.docker.com/docker-for-azure/persistent-data-volumes/.
  • Use cloud storage directly in application code using cloud service provider SDKs. This is the most obvious solution, but it requires embedding storage management into your application code.
  • Use bind mounts and Server Message Block (SMB) global mappings in order to mount Azure Files, which is a fully managed cloud file share that can be accessed via the SMB protocol.

Soon, we will demonstrate how to leverage the last option: SMB global mappings for Azure Files. But first, we have to install the Azure CLI in order to manage Azure resources.