我有一个功能齐全的Kubernetes集群,其中有一个主服务器和一个工作服,在CoreOS上运行。
一切正常,我的播客和服务运行良好。现在我不知道如何继续进行网络服务器的想法。
在我走得更远之前:我现在没有关于我想要解释的想法。我刚做了很多研究。
使用服务设置pod(nginx)时。您将获得默认的nginx页面。之后,您可以使用hostvolume(从主机到容器的卷映射)设置装载卷。
但是我想说我想要分隔每个站点(多个站点用不同的pod分隔),我怎样才能让我的用户将文件添加到他们的pod / nginx文档根目录?在CoreOS节点中使用FTP会删除Kubernetes方式并增加安全漏洞。
如果有人可以帮助我阐明这个问题,那就太好了。
感谢您的时间。
答案 0 :(得分:1)
我假设你想要运行多个nginx服务器。每个nginx服务器的内容由不同的管理员管理(您称之为用户)。
<强> TL; DR:强>
选项1:每次静态文件更改和部署新图像时,每个管理员都需要构建自己的nginx docker镜像。如果您将这些静态文件视为nginx应用程序源代码的一部分
,那就是这样选项2:对nginx使用持久性卷,nginx映像的init-script应使用类似s3的内容来将所有文件与s3同步,然后启动nginx
在继续使用kubernetes构建应用程序之前。最重要的是将您的服务分成两个概念类别,并放弃直接触摸底层节点的愿望:
1)无状态:这些是由开发人员构建并可以发布的服务。它们可以被停止,启动,从一个节点移动到另一个节点,它们的文件系统可以在重启期间重置,它们将完美地工作。您的大多数网络服务都适合此类别。
2)有状态:这些服务无法像上面那样无法停止和重新启动。首先,它们的底层文件系统必须是持久的,并且在服务运行期间保持不变。数据库,文件服务器和类似服务属于此类别。这些需要特别小心,应该使用k8s persistent-volumes和现在stateful-sets。
典型应用:
单独的网站:
存储文件的应用程序用户:
开发人员更改文件:
答案 1 :(得分:1)
虽然iamnat列出的选项和推理是正确的,但至少还有一个选项可以添加到列表中。您可以考虑使用.rightNav {float: right}
@media only screen and (min-width : 768px) {
float: none;
}
个对象,在configmap中维护文件并将它们安装到容器中。
官方文档中可以找到一个很好的例子 - 查看Real World Example configuring Redis部分以获得一些可操作的输入。