gpt4 book ai didi

工作节点之间的 Kubernetes 卷复制

转载 作者:行者123 更新时间:2023-12-02 18:39:15 25 4
gpt4 key购买 nike

我有一个简单的网络应用程序,它使用/持久卷声明来提供静态数据。 Pod 仅在卷所在的第一个工作节点上进行调度。如果我想要扩展 Pod 并将它们分配到所有可用节点上,如何处理节点之间的共享卷?

      - name: app-nginx
image: nginx:1.20.0
command: ["/usr/sbin/nginx", "-g", "daemon off;"]
volumeMounts:
- name: static-volume
mountPath: "/opt/static"

volumes:
- name: static-volume
persistentVolumeClaim:
claimName: pvc-static

一种选择是使用 NFS 并且不在 EC2 实例上物理分配卷。另一种方法是为每个 pod 复制静态文件(使用 init 容器将它们填充到正确的目录中),但这需要额外的时间,并且对于大量静态数据来说是不可行的。

在 Kubernetes 中处理这种情况的正确方法是什么?有没有一种方法可以声明将使用逻辑上相同的卷但物理上位于不同节点上的不同实例的部署?

最佳答案

您正在寻找的是支持ReadOnlyMany的卷提供程序或ReadWriteMany Access Mode .

点击文档链接即可获取官方支持的列表。

如果您使用 AWS,那么通过 NFS 插件使用 EFS 可能是最简单的解决方案,但请考虑以下事实它是一个基于 NFS 的解决方案,您可能会遇到性能损失。

顺便说一句,你想要做的事情对我来说听起来像是反模式。应用程序的 Docker 镜像应该是独立的。在您的情况下,拥有一个服务于静态网站的容器应该包含它需要的所有静态文件,以便完全可移植。这将消除对完全包含数据的外部卷的需要。

关于工作节点之间的 Kubernetes 卷复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68282609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com