当前位置: 首页 > 知识库问答 >
问题:

选择哪种库伯内特斯模式

司空坚
2023-03-14

我遇到的情况是,消息队列中的每条消息都必须由一个单独的实例处理(一个pod一次可以处理一条消息)。许多消息可以一次处理,但是并行执行是有限制的。一旦到达,就不会从队列中提取新消息。消息处理大约需要30分钟。在调用之间,pod上不需要存储任何状态(当pod开始处理消息时,所有数据都从数据库中读取)。新消息应该产生一个新的pod,一旦处理完成,pod就应该死亡。

我应该使用部署、复制集、状态集和服务吗?(我们用Kubernetes搭配Azure)我想主要的

我尝试过ReplicaSet,但是在处理三条消息并完成一条消息的情况下,缩小ReplicaSet可以杀死一个工作pod,这绝对不是我需要的。

共有1个答案

轩辕华辉
2023-03-14

我想说的是,由于不需要处理状态,所以必须放弃状态集,另一方面,部署是复制集的更高级概念,因此,您应该使用部署,因为它负责复制集。最后,当你的处理需要时,我会考虑使用工作,一旦任务完成任务,它释放资源和死亡,这将需要额外的代码来创建基于助手的工作,但可能非常方便。

 类似资料:
  • 我假设没有愚蠢的问题,所以这里有一个我找不到直接答案的问题。 现在的情况 我目前有一个运行1.15的Kubernetes集群。AKS上的x,通过Terraform部署和管理。AKS最近宣布Azure将在AKS上停用Kubernetes的1.15版本,我需要将集群升级到1.16或更高版本。现在,据我所知,直接在Azure中升级集群不会对集群的内容产生任何影响,即节点、豆荚、秘密和当前在那里的所有其他

  • 我在Kubernetes是个新手。我想知道在kubernetes环境中最好的生产部署场景是什么。 在过去的学派中,我习惯于将Web服务器(例如Nginx或Apache)放在DMZ层,而将其放在其他层(我们称之为层)。这样,只有web服务器在DMZ上,恶意攻击只能在web服务器VM上进行。 据我所知,K8S部署不再需要这种方法;这是因为K8S自己处理网络、吊舱和流量。所以我在考虑最确定的部署方案。

  • 据我所知,作业对象应该在一定时间后收获豆荚。但是在我的GKE集群(库伯内特斯1.1.8)上,“kubectl get pods-a”似乎可以列出几天前的豆荚。 所有这些都是使用乔布斯API创建的。 我确实注意到在使用 kubectl 删除作业后,pod 也被删除了。 我在这里主要担心的是,我将在批量作业中在集群上运行成千上万个pod,并且不想让内部待办系统过载。

  • 我试图设置Kubernetes入口,将外部http流量路由到前端pod(路径/)和后端pod(路径/rest/*),但我总是得到400错误,而不是主nginx索引。html。 所以我在第https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer页尝试了谷歌库伯内特斯的例子,但我总是得到400个错误。有什么想法吗?

  • 我是Kubernetes的新手,他们的概念我不太清楚:云提供商。 我已经使用RKE(Rancher引擎)安装了我的库伯内特斯集群。 我的集群设置在rancher2的顶部。 我的节点是托管OVH服务器的虚拟机。 我设法让运行中的应用程序具有L7入口和ClusterIP服务,但每次我尝试使用L4负载平衡器时,负载平衡器都处于挂起状态。根据https://github.com/rancher/ranch

  • 我有一个简单的容器,它由安装在阿尔卑斯山上的OpenLDAP组成。它被安装为以非root用户身份运行。我能够使用我的本地Docker引擎运行容器而没有任何问题。但是,当我将其部署到我们的库伯内特斯系统时,它几乎立即被OOMKill杀死。我尝试在没有任何更改的情况下增加内存。我还查看了pod的内存使用情况,没有发现任何异常。 服务器启动为slapd-d debug-hldap://0.0.0.0:1