【发布时间】:2019-05-14 18:17:07
【问题描述】:
我正在 AKS 集群中部署一个容器。
我想将一个配置文件夹(大小 200+ MB)安装到这个容器中。配置文件夹存在于 git repo 中。每个客户都有 他自己的配置数据,并存储在同一 repo 的单独分支中。
我正在考虑将配置文件夹加载到容器中的以下选项:
- 持久性卷声明 - PVC 我将创建一个文件共享并将配置文件夹复制到其中。使用 PVC 将文件共享挂载到容器中。 在这种方法中,我需要将存储访问密钥/sas 令牌添加到 kubernetes 机密中。
- 压缩配置文件夹并将其复制到 Blob 存储。在容器启动脚本中,从 blob 存储下载 zio 并挂载到所需位置。 在这种方法中,我必须使用 SAS 令牌来访问存储帐户。 (此令牌将在 kubernetes 中保存为秘密)
- 在容器启动脚本中,git clone 包含 config 文件夹的 repo,下载并复制到所需位置。 在这种方法中,我需要使用 PAT 令牌来克隆 git。
- 将 config 文件夹复制到 docker 映像本身。 在这种方法中,我不必担心如何在容器中加载配置文件夹。 但是,由于配置文件夹是特定于客户的并且有 100 多个客户,这导致大约 100 多个 图像标签。 (我们为客户添加了标签)
你能指导我哪个是最好的选择吗?还有其他更好的方法吗?
我了解到使用 PVC 共享卷存在安全问题,这可能会将节点上的 root 权限授予攻击者。 在容器内使用 git 也存在安全问题。 您能否提供有关这些安全问题的原因/方式的更多信息?
【问题讨论】:
-
为什么不创建一个特定于客户的 ConfigMap,然后volume mount the ConfigMap?
标签: azure kubernetes azure-aks kubernetes-pvc