我正在研究一个集群,其中我在Instagram上进行了大量抓取工作以查找有价值的帐户,然后向他们发送消息,询问他们是否有兴趣出售其帐户。这是我的应用程序组成的:
除此之外,我正在考虑将每个步骤的每个数据上载到数据库中(步骤1中收集的整个帐户块,步骤2中收集的精炼帐户以及步骤3的消息用户)。单独的集合。我还考虑开发一个可通过向我发送错误报告并最终使它在用户响应时向我发送消息的方式来处理错误的Slack机器人。 如您所见,此应用程序有很多不同的部分,这就是为什么我认为使用Kubernetes来做是一个好主意的原因。
我最初的方法是将节点中的每个pod都设置为rest API。然后,每次我希望它们运行时,我都可以向每个吊舱发送请求。但是,如果认为这不是最佳解决方案,绝不是Kubernetes方式。
答案 0 :(得分:3)
用描述的方式实现它的唯一方法是从pod内部与Kubernetes API服务器进行通信。这需要几件事(添加服务帐户和角色绑定,使用kubernetes客户端等),我不建议将其作为常规应用程序流程使用(除非您是致力于提供某些通用/实用程序解决方案的devops)。
从另一个角度看,应避免在pod和工作之间共享卷(这会增加复杂性和限制)
您可以在此处进一步了解-https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/#accessing-the-api-from-within-a-pod-作为入门者。
如果我可以提出一些解决方案:
您可以共享S3量并安排Cronjob 每隔一段时间运行一次。如果cronjob找到数据-它将处理它。所以你做 无需从广告连播内部触发作业。
两个服务,通过http发送数据(如果可行)-第二个服务不执行 不需要的任何内容。
如果您共享用例的一些细节,可能会提供更好的答案。
欢呼
答案 1 :(得分:0)
kubectl
中提供了开箱即用的支持,可从cronjob(kubectl create job test-job --from=cronjob/a-cronjob
)运行作业,但没有官方支持直接从吊舱运行作业。您需要从集群中获取pod资源,然后通过使用pod规范作为作业规范的一部分来创建作业。