Pod 之间内存中的 k8s 卷,或在多容器结构中将服务连接到容器

问题描述

我有 k8s 卷的问题

结构

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

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

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


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

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

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

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

附言如果重要的话,我正在使用 AKS。

解决方法

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

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

因此,另一种解决方案可能是使用两个独立的 pod 和一个专用卷(在主机级别或 Kubernetes 持久卷)。有了污点和容忍度,您就可以确保两个 Pod 都安排在实际卷所附加的同一节点上。