Linux下开发者习惯在物理机或者虚拟机环境下使用top和free等命令查看机器和进程的内存使用量,近年来越来越多的应用服务完成了微服务容器化改造,过去查看、监控和定位内存使用量的方法似乎时常不太奏效。如果你的应用程序刚刚迁移到K8s中,经常被诸如以下问题所困扰:容器的内存使用率为啥总是接近99%?malloc/free配对没问题,内存使用量却一直上涨?内存使用量超过了限制量却没有被OOM Kill? 登录容器执行top,free看到的输出和平台监控视图完全对不上?... 本文假设读者熟悉Linux环境,拥有常见后端开发语言(C/C++ /Go/Java等)使用经验,希望后面的内容能在读者面临此类疑惑时提供一些有效思路。
容器网络接口(CNI)在 Kubernetes 中常常是基础设施管理中最令人着迷的部分之一,至少对我而言如此。最近几周,我专注于研究 Calico CNI,特别是它的 BGP(边界网关协议)组件。我尝试通过创建类型为 LoadBalancer 的服务,并使用 BGP 将 Kubernetes 服务暴露到互联网。由于没有内部数据中心或裸金属服务器的条件,我需要在 Mac 上配置相关工具和设置。本博客适合有此需求的用户,或供我以后复习使用。请跟随以下步骤进行设置。
上篇 6 张图带你深入了解 kube-scheduler ,已经知道 kube-scheduler 的工作流程,以及如何实现自定义插件。koordinator 和 crane 都是基于Scheduler Framework 进行实现的 负载感知插件。本文不再赘述,感兴趣可以看上篇文章。
在与 Kubernetes 用户的对话中,经常会听到这样一句话:“我只想让我的所有流量在 Kubernetes 中实现 mTLS 加密。” 有时,这种要求还会加上一些附加条件,比如 “…… 但不要涉及服务网格的复杂性。” 这是一个合理的需求,市面上有很多解决方案,各自有不同的取舍。在本文中,我将介绍几种选择,并提供一些建议。