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

时间:2018-09-25 14:04:55

标签: asp.net-core kubernetes data-protection

要解决我们在Docker中遇到的一些问题并运行某些服务的多个实例,我们需要能够在同一Docker映像的运行实例之间共享值。我发现的原始解决方案是在Azure中创建一个存储帐户(我们在其中运行容纳容器的kubernetes实例)和Azure中的密钥保管箱,并通过Microsoft为数据保护提供的定义良好的API进行访问(详细信息{ {3}}。

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

是否有应用于持久卷的扩展方法?这会像共享文件位置一样使用PersistKeysToFileSystem API进行数据保护访问吗?您可以向我指出的任何资源将不胜感激。

1 个答案:

答案 0 :(得分:2)

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

PesistentVolume:

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

密钥库:

  • 将密钥存储在由Azure管理的集中位置
  • 在静止和传输过程中对数据进行加密。
  • 您依赖于远程API而不是本地文件系统。
  • 使用外部服务可能会降低性能
    • 我认为这不是Azure中的主要问题。
  • Kubernetes Pod可以从任何地方访问该服务,只要它们与该服务具有网络连接即可。
  • 更少的维护时间,因为它已经由Azure维护。