2
  1. 首先,我了解 k8s 以及它如何与他们的所有东西一起工作;
  2. 其次,我需要介绍一下我的应用程序以及它如何在 k8s 上运行
  3. 第三,我要问我的问题:

这个应用程序由三个 Pod 组成,每个 Pod 都有自己的服务:

1. nginx with php-fpm (called sample-app)

2. redis

3. queue(based on node js)

这个应用程序以这种方式工作:

当请求进入示例应用程序时,此应用程序将请求存储为 Redis 中的作业,同时队列监视 Redis 以获取未处理的作业并处理它们(例如发送电子邮件)。

现在我的问题:

队列 pod 没有理由,没有时间顺序,也没有日志停止工作,需要在 k8s 日志中再次告诉您看不到任何错误或警告,这主要就像卡住并且什么也不做!!这个应用程序在 minikube 和 k8s 之前的 VM 上运行良好。所以每次我删除队列 Pod 时,新创建的 Pod 开始正常工作并处理来自 Redis 的作业。

我使用基准工具在 minikube 上测试了这个应用程序(使用 ab 命令从集群外部发送请求)没有问题也没有错误,所以每当我移动到 k8s 并以高请求密度测试这个应用程序时,队列 pod 也会再次停止工作,因为我这个应用程序的第二个问题。

*关于我的集群的额外信息:k8s 版本是 1.15,docker 版本是 19.3.1,CNI 插件是 calico,我使用 helm。

现在有什么方法可以解决问题并识别问题出在哪里?

4

0 回答 0