0

k8s ボリュームに問題があります

構造

1 つのサービスがファイルを生成し、もう 1 つのサービスがそれらのファイルを Web 経由で公開する 2 つのサービス (ポッド) について説明します。

最初のサービスには、世界中に公開されている UDP 接続と、他のポッド間で通信するための TCP 接続が必要です。
(UDP 用と TCP 用の 2 つのサービス)

サービス番号 2 には、世界 (Web) への接続が必要です。
(イングレスに接続する 1 つのサービス)


問題
R/W プロセスを高速化するには、これら 2 つの Pod の間にメモリのボリュームが必要です。

EmptyDir ボリュームを使用してマルチコンテナ構造を操作するために、私が確認したソリューション (このボリュームをメモリ内で実行するオプションがあります)

このソリューションの問題は、これらのコンテナーの k8s サービス オブジェクトに接続できず、サービスがポッドにのみ接続し、ポッドのみが IP を取得し、コンテナーは取得しないことです。

この状況の解決策やアイデアはありますか?

ps問題がある場合は、AKSで実行しています。

4

1 に答える 1

0

どうしてもマルチコンテナー ポッドを使用したい場合は、2 つの Kubernetes サービス リソースを作成してみませんか? ContainerPort A への 1 つのマッピングと、containerPort B への 1 つのマッピング? このようにして、すべてのコンテナを個別に公開します。

EmptyDir は「メモリ内」にあるのではなく、同じホスト上の単なる共有ボリュームであり、emptyDir を共有しているコンテナのみがアクセスできることに注意してください。
編集: @Matt が指摘したように、私は間違った情報を受け取りました:emptyDir.medium="Memory"設定を認識していませんでした。

したがって、別の解決策として、2 つの独立したポッドと専用ボリューム (ホスト レベルまたは Kubernetes 永続ボリュームのいずれか) を使用することができます。taints と tolerations を使用すると、実際のボリュームが接続されている同じノードで両方のポッドがスケジュールされていることを確認できます。

于 2021-01-10T10:56:43.233 に答える