我正在AKS集群中部署一个容器。
我想将配置文件夹(大小为200+ MB)装入此容器。配置文件夹位于git repo中。每个客户都有 他自己的配置数据,并存储在同一存储库中的单独分支中。
我正在考虑以下将配置文件夹加载到容器中的选项:
您能指导我哪个是最佳选择?还有其他更好的方法吗?
我已阅读到使用PVC共享卷存在安全问题,这些问题可能会向攻击者授予节点的根权限。 并且在容器内使用git也存在安全性问题。 您能否提供有关这些安全问题的原因/方式的更多信息?
答案 0 :(得分:1)
我建议使用某种类型的存储,然后再使用某种NFS驱动器。
您必须考虑一些注意事项: -那里有多少写 -多少读 -通常的文件大小是什么
我建议您不要使用启动脚本来下载它,因为这会使您的容器启动起来的速度变慢,通常来说,容器在启动时应准备好为流量提供服务。您可以在Azure https://docs.microsoft.com/en-us/azure/storage/blobs/storage-how-to-mount-container-linux
上执行类似的操作答案 1 :(得分:1)
如果使用的是AKS,则可以使用Azure File持久卷声明创建配置,还可以以更多的只读方式使用文件共享,这样可以提供更好的安全性。
在我看来,所有其他选项都不太方便(而且可以说不太安全)
答案 2 :(得分:1)
使用init容器将git repo中的配置文件夹加载到init容器和主容器之间的共享卷中
答案 3 :(得分:0)
我认为我们可以采用简单的方法。您可以将头盔与hookScript一起使用,我的想法是
FILE_DOWNLOAD_GIT_REPO
到您的PVC挂接的git clone。那个:)摆脱不必要的步骤,可以重复使用。对 ? :) 对不起,我很困了,无法为您编写示例头盔。但是希望您有个好主意。 :)
答案 4 :(得分:0)
我会使用git sync image(那里有很多)。这样,您应该使用只读访问权限(您提到的PAT令牌不应提供对存储库的写访问权限)。它支持从不同分支读取数据,只需要将值传递给它即可(轻松通过舵图)。 好处是您可以进一步同步配置(如果您的微服务支持的话)。
我看到所有其他解决方案都更加复杂。