使用 Kubernetes 持久卷进行数据保护

Using Kubernetes Persistent Volume for Data Protection

为了解决我们 运行 涉及 docker 和 运行 某些服务的多个实例的一些问题,我们需要能够在 运行 之间共享值相同 docker 图片的实例。我找到的最初解决方案是在 Azure 中创建一个存储帐户(我们在 运行 我们的 kubernetes 实例中容纳容器)和 Azure 中的 Key Vault,通过定义明确的 APIs 访问两者微软已提供数据保护(详细here)。

我们的架构师反而想使用 Kubernetes Persitsent Volumes,但他没有提供有关如何实现此目的的信息(他只是想通过没有额外的存储帐户或密钥存储来节省 Azure 订阅的费用)。我是 kubernetes 的新手,不知道如何实现这一点,到目前为止,我的搜索没有多大用处。

是否有适用于持久卷的扩展方法?这是否就像共享文件位置一样,并且可以通过 PersistKeysToFileSystem API 进行数据保护访问?如果您能指出我的任何资源,我们将不胜感激。

Azure 中带有 Kubernetes 的 PersistentVolume 不会为您提供与 Azure 中的 Key Vault 完全相同的功能。

PesistentVolume:

  • 本地存储在服务器上已安装的卷上
  • 卷可以加密
  • 音量随吊舱移动。
    • 如果 pod 在不同的服务器上启动,卷会移动。
  • 从其他 pods 访问卷并不那么容易。
  • 您可以通过为卷分配保证的 IOP 来控制性能(来自云提供商)

密钥保管库:

  • 将密钥存储在由 Azure 管理的集中位置
  • 数据在静态和传输过程中被加密。
  • 您依赖远程 API 而不是本地文件系统。
  • 转到外部服务可能会影响性能
    • 我认为这不是 Azure 中的主要问题。
  • Kubernetes pods 可以从任何地方访问服务,只要他们有网络连接到服务。
  • 更少的维护时间,因为它已经由 Azure 维护。