在专用吊舱上运行Kubernetes cronjob
我有一个作为Kubernetes服务的API,我需要每小时在API中运行一个端点。(繁重的统计计算,大约需要3-5分钟) 目前我使用curl直接调用端点:在专用吊舱上运行Kubernetes cronjob,kubernetes,kubernetes-cronjob,Kubernetes,Kubernetes Cronjob,我有一个作为Kubernetes服务的API,我需要每小时在API中运行一个端点。(繁重的统计计算,大约需要3-5分钟) 目前我使用curl直接调用端点: containers: - name: callout image: 'buildpack-deps:curl' args: - /bin/sh - '-ec' - 'curl http://api-service/v1/Stats/CalculateStats' 问题是任务被
containers:
- name: callout
image: 'buildpack-deps:curl'
args:
- /bin/sh
- '-ec'
- 'curl http://api-service/v1/Stats/CalculateStats'
问题是任务被发送到服务,并且它最终在一个pod上结束。运行计算会使pod忙碌,而来自常规用户的其他请求通过前端会减慢速度
如何从具有更高CPU请求的同一API映像创建专用pod(这样它可以运行得更快)并在其上运行计算,然后移除pod并在下一个计划中重复该过程
谢谢这就是我想到的:
0
。无论何时更新生产部署,都可以更新此部署,因此两个部署都运行相同版本的AppApplication- 放大在1中创建的部署。至
1
- 等待部署的吊舱准备就绪
- 执行
-命令curl
- 缩小在1中创建的部署。返回到
0
顺便提一下:我还建议使用“昂贵的操作”对公众保护/隐藏端点,这样用户就不能“意外”或出于恶意破坏生产部署。而不是运行
curl
,CronJob能否启动一个pod,其图像:
与您的普通应用程序相同,但使用不同的命令:
执行更新任务?@DavidMaze我不确定.Net Core是否支持它。我会检查一下,thanksI找到了“向上/向下扩展部署”命令,但是有没有办法在cronjob中运行kubectl命令?kubectl规模--副本=部署