代码之家  ›  专栏  ›  技术社区  ›  Jacob

在kubernetes pods中指定内存以部署docker映像

  •  0
  • Jacob  · 技术社区  · 6 年前

    我正在探索Kubernetes集群的实现,并通过CI/CD管道使用Jenkins部署到Kubernetes集群中。在研究时,我发现我们不需要定义需要部署pods的工作机节点。Kubernetes Master将负责在工作机器中部署/释放POD以进行部署。我们只需要在定义中定义这个pod需要多少内存。

    这里我的困惑是,我们已经为部署分配和配置了kubernetes集群。所有节点都根据创建的AWS EC2(因为我计划使用AWS EC2-Ubuntu 16.04 LTS)包含自己的内存。

    那么为什么我们还要在pod中定义内存呢?这是正确的吊舱部署方式吗?

    我只在CI/CD管道世界起步。

    1 回复  |  直到 6 年前
        1
  •  4
  •   Vishal Biyani    6 年前

    在POD规范中指定内存和CPU是完全可选的。仍然有几个方面需要在POD级别指定内存和CPU:

    • As explained here ,如果不指定CPU/内存-pod/容器可以消耗该节点上的所有资源,并可能影响该节点上运行的其他pod/容器。

    • 每个应用程序都应该指定运行应用程序所需的内存和CPU。Kubernetes在调度集群中某个节点上的pod时会使用这些信息,因为集群中有足够的资源可用。这些信息确保了更好的调度决策。

    • 当资源消耗超过一定限度时,水平吊舱自动分频器(HPA)可以对吊舱进行缩放。详细说明 in this doc . 除非指定了内存/CPU限制,否则无法计算POD正在运行该度量的80%,应将其缩放为两个副本。

    • 您还可以在命名空间级别启用特定的默认值,然后只为特定的应用程序进行重写, details here