kubernetes - 节点、Pod、容器之间的关系是什么?应用程序如何在集群中复制?
问题描述
我是 Kubernetes 的新手,我浏览了很多文章,但没有找到基本答案来解决我的疑问。
假设我有 2 个节点 kubernete 集群,然后我在上面部署了 2 个应用程序。
我的两个应用程序都将托管在两个节点上?就像两个节点上的 app1 和 app2 一样?这意味着我们的复制因子默认为 2。正确的?
每个节点会有 1 个 pod?结构会是怎样的?
Node 1, Pod1 - > App1 Node 1, Pod1 - > App2 Node 2, Pod1 - > App1 Node 2, Pod1 - > App2
- 如果我设置了复制因子=2,那么它将如何影响结构?会不会创造
Node 1- Pod1 - > App1 Node 1- Pod2 - > App2 Node 2- Pod1 - > App1 Node 2- Pod2 - > App2
- 就上述物理/逻辑结构而言,部署是什么?它与服务有何不同?部署特定于每个节点?
解决方案
没有预定义的 Pod 与节点的绑定。Kubernetes 调度程序会在创建 pod 时动态决定将 pod 分配给哪个节点。
通常,Kubernetes 应用程序由一组复制的 pod 组成(大多数情况下由部署资源管理)。这些 pod 最终在哪些节点上运行取决于调度程序。没有内置策略要求同一应用程序的副本 pod必须在不同节点上运行。
但是,您可以通过各种机制影响调度程序的决策:
推荐阅读
- flutter - 自定义小部件右侧的 RenderFlex 溢出
- influxdb - 如何根据测量名称将数据写入不同的数据库
- c# - 在 LINQ 中将 DateTime 与毫秒进行比较
- r - 在 R markdown 输出中将图形标题分配给 html 小部件(vtree 包)
- vue.js - Keycloak 错误:代码无效 - 用于客户端令牌请求
- mongodb - 如何在 MongoDB Atlas 和 Google App Engine 标准环境节点应用程序之间建立对等互连
- java - LayoutManager 用于不同大小的组件,无需编码绝对位置
- git - AppData\Local\Programs\Microsoft' 未被识别为内部或外部命令
- javascript - 从输入数据中绘制 svg 矩形
- r - 带有 if 条件的包装函数