口试题整理17----K8s中request和limit资源限制是如何实现的 ...

打印 上一主题 下一主题

主题 967|帖子 967|积分 2901

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在Kubernetes(K8s)中,Pod的资源限制(Resource Limits)和资源请求(Resource Requests)是通过与容器运行时(如Docker、containerd)和Kubernetes调理器的交互来实现的。以下是关于request和limit底层的限制方式的具体解释:
1. 资源请求(Resource Requests)


  • 调理决议

    • 当创建或更新Pod时,Kubernetes调理器会思量每个容器的资源请求。
    • 调理器会选择一个节点,该节点有足够的可用资源来满意Pod的所有资源请求。

  • 资源预留

    • 资源请求现实上是为容器预留资源,确保容器启动时有足够的资源可用。
    • 这些预留资源不会被其他容器使用,纵然节点上有空闲资源。

  • 与容器运行时的交互

    • 容器运行时(如Docker)会根据Kubernetes提供的资源请求来设置容器的资源限制。
    • 比方,在Docker中,这可以通过--memory和--cpu标志来实现。

2. 资源限制(Resource Limits)


  • 容器级别的限制

    • 资源限制是在容器级别设置的,用于控制容器可以使用的最大资源量。
    • 这些限制会被容器运行时逼迫执行。

  • 与容器运行时的交互

    • 容器运行时会监控容器的资源使用情况,并确保不超过设定的限制。
    • 假如容器试图超过其资源限制,容器运行时会采取相应的措施,如杀死容器或限制其资源使用。

  • CPU限制

    • 对于CPU限制,容器运行时会使用操纵体系级别的隔离机制(如Linux的命名空间和cgroups)来限制容器的CPU使用率。
    • 假如容器超过其CPU限制,它可能会被调理器降级,大概在极度情况下被杀死。

  • 内存限制

    • 对于内存限制,容器运行时会监控容器的内存使用情况,并在达到限制时采取措施。
    • 假如容器的内存使用超过限制,容器运行时通常会杀死该容器,以防止节点上的其他进程受到影响。

3. 总结

Kubernetes中的资源请求和限制是通过与容器运行时的交互来实现的,确保容器在启动时有足够的资源可用,并且在运行时不会超过设定的资源限制。这些机制有助于提高集群的稳固性和可靠性,防止资源耗尽导致的体系瓦解。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

八卦阵

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表