移除CPU限制,服务运行更快
转自: https://blog.fleeto.us/post/k8s-faster-services-no-cpu-limits/ 配合站内最大最小内存设置为一致文章一起阅读 Kubernetes:移除 CPU 限制,服务运行更快我们(Buffer)早在 2016 年就开始使用 Kubernetes 了。我们使用 kops 对 Kubernetes 集群进行管理,其中包含了大约 60 个运行在 AWS 的节点,运行着 1500 个左右的容器。我们的微服务迁移之路充满坎坷。在和 Kubernetes 相处多年以后,我们还是会时不时遭到它的毒打。本文接下来要讨论的案例就是这样——CPU Limit 是一头披着狼皮的羊。 CPU 限制和流控Google 等公司强烈建议设置 CPU 限制。如果不进行这一限制,节点上的容器可能会耗尽所有 CPU 资源,这可能会引发多种意料之外的事故——例如导致 Kubernetes 关键进程(比如说 kubelet)停止响应。因此理论上为容器设置 CPU 限制能够很好的对节点进行保护。 该特性能限制一个容器在给定周期内(缺省为 100 毫秒)能够消耗...
结合prometheus调整Kubernetes资源限制
转自: https://www.51cto.com/article/704723.html Kubernetes 资源限制往往是一个难以调整的配置,因为你必须在太严格或者太宽松的限制之间找到最佳的平衡点。 通过本文,你可以学习到如何设置正确的 Kubernetes 资源限制:从检测到无限制的容器,到找出你应该在集群中正确配置的 Kubernetes 资源限制。我们假设你使用 Prometheus 来监控你的 Kubernetes 集群。这就是为什么本文中的每个步骤都使用 PromQL 查询进行示例说明的原因。 检测没有 Kubernetes 资源限制的容器 设置正确的 Kubernetes 资源限制的第一步是检测没有任何限制的容器。没有 Kubernetes 资源限制的容器可能会在你的节点中造成非常严重的后果。在最好的情况下,节点将开始按顺序或评分驱逐 pod。由于 CPU 节流,它们也会出现性能问题。在最坏的情况下,节点将由于内存不足而被终止。 查找没有 Kubernetes 资源限制的容器 根据命名空间查找没有限制 CPU 的容器 1sum by (namespace...
记录一次k8s网络DNS问题排查过程
问题1: k8s环境下,服务使用node:xxx-alpine镜像,服务间访问报错: getaddrinfo EAI_AGAIN问题2: 非alpine镜像, 使用clusterip访问频繁出现超时问题: connect ECONNRESET,read ECONNRESET还有服务本身axios报的timeout问题3: 非alpine镜像, 使用dns访问报错: getaddrinfo ENOTFOUND 详细背景见: https://github.com/k3s-io/k3s/issues/5897 问题4: coreDns报错出现error: [ERROR] plugin/errors: 2 . NS: read udp 10.42.2.5:38764->183.60.82.98:53: i/o timeout[DONE]记录问题解决过程问题1问题排查/解决过程 现象1: 问题发生在流量高峰阶段 现象2: 压测tps,200线程仅30多每秒, 吞吐量极差 现象3: 是偶尔性的, 200线程50次仅发现十几条这样的报错日志 原因描述(...
