gpt4 book ai didi

kubernetes - 对于应用程序开发人员来说,在 Kubernetes 中运行应用程序意味着什么?

转载 作者:行者123 更新时间:2023-12-02 11:54:58 25 4
gpt4 key购买 nike

通常,应用程序开发人员(以 J2EE 为例)在设计应用程序时不会优先考虑与基础设施相关的问题。很难与传统的不可编程基础设施进行交互。传统方法是构建一个 .war 文件,然后可以在 JBoss 等应用服务器中运行。 Spring等传统框架(除了新风格的Spring Cloud)都以此为前提。现在,如果有一个可用的容错、弹性部署运行时(例如 Kubernetes 提供的),那么以相同的方式编写业务应用程序似乎会忽略运行时提供的调度等功能。一个具体的问题:应用程序通常会从运行时(即 Kubernetes、Mesos 等)API 中进行对话(并从中受益)吗?如果是这样,你能举一个很好的例子吗?我发现的大多数资源都更多地关注运维方面,而不是开发方面。

最佳答案

不,Kubernetes 的重点是您的应用程序不必“意识到”它。 (Mesos 更多的是“应用程序需要了解我们”的理念。)

在 Kubernetes 中,每个 Pod 只是启动并监听端口。该应用程序不会注册它的存在,甚至不会告诉它是什么版本。当它需要与另一个服务通信时,它使用 DNS(甚至固定服务 IP)来查找该下游服务的 LB。

Typically application developers don't prioritize infrastructure-related concerns when designing an application

一般来说,只有两件事需要担心:

1)使您的服务无状态,这样您就可以将状态推到边缘(数据库和/或客户端)。这允许 Kubernetes 通过运行更多副本来“扩展”您的应用程序。有状态服务几乎不可能扩展。

2) 将您的应用分解为多个“微服务”,这样您就可以扩展“产品 View ”功能,而无需扩展“客户登录”功能。

3) 可选:前往 12factor应用程序。

关于kubernetes - 对于应用程序开发人员来说,在 Kubernetes 中运行应用程序意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35169392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com