【问题标题】:k8s volume in memory betweens pods, or connect services to container in multi containet structurepod之间的k8s内存卷,或者在多容器结构中将服务连接到容器
【发布时间】:2021-01-10 09:11:05
【问题描述】:

我对 k8s 卷有疑问

结构

我们讨论了 2 个服务(pod),一个服务生成文件,另一个服务通过网络公开这些文件。

一号服务需要一个对外开放的 UDP 连接,以及一个 TCP 连接来在其他 pod 之间进行通信。
(两种服务,一种用于UDP,一种用于TCP)

二号服务需要连接到世界(网络)。
(连接到入口的一项服务)


问题
我需要这两个 pod 之间的内存容量,以加快 R/W 过程。

我检查的解决方案,使用 EmptyDir 卷处理多容器结构 (有一个选项可以在内存中运行此卷)

这个解决方案的问题是我无法为那些容器连接k8s服务对象,服务只连接到pod,并且只有pod获得IP而容器没有。

对于这种情况有什么解决方案或想法吗?

附言如果重要的话,我会在 AKS 上运行。

【问题讨论】:

  • 服务 A 可以使用 TCP 连接将文件发送到服务 B,而不是使用共享文件系统吗?这可能会也可能不会更快(不清楚您当前的设置是什么),但在 Kubernetes 中通常更容易管理;尝试在 pod 之间共享文件会增加很多复杂性。

标签: kubernetes service volume tmpfs


【解决方案1】:

如果你真的想使用多容器 pod,为什么不创建两个 Kubernetes 服务资源?一个映射到 ContainerPort A,一个映射到 containerPort B?这样你就可以独立地暴露每个容器。

请记住,EmptyDir 不是“在内存中”,它只是同一主机上的共享卷,只有共享 emptyDir 的容器才能访问。
编辑:正如@Matt 指出的那样,我被错误地告知:我不知道emptyDir.medium="Memory" 设置。

因此,另一种解决方案可能是使用两个独立的 Pod 和一个专用卷(在主机级别或 Kubernetes 持久卷)。通过 taints 和 tolerations,您可以确保将两个 pod 安排在附加实际卷的同一节点上。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
  • 2019-01-20
  • 2018-12-20
  • 1970-01-01
  • 2019-11-22
相关资源
最近更新 更多