Kubernetes监控与日志:全面指南
1. 监控基础设施
在考虑应用程序的运行环境以及它与其他组件和用户的交互方式时,需要监控的主要部分是应用程序主机和连接网络。
对于主机监控,通常由监控框架提供的代理来执行收集任务。代理会提取并发送关于主机的综合指标,如负载、磁盘、连接或其他进程统计信息,帮助我们确定主机的健康状况。
对于网络,可能涉及同一主机上的Web服务器软件和网络接口,或许还有负载均衡器,甚至是像Istio这样的平台。一般来说,要测量的指标包括流量、延迟和错误。
2. 监控外部依赖
除了上述两个组件,还需要检查依赖组件的状态,如外部存储的利用率或队列的消费率。例如,若应用程序订阅队列作为输入并执行队列中的任务,就需要考虑队列长度和消费率等指标。如果消费率低且队列长度持续增长,应用程序可能会出现问题。
对于Kubernetes上的容器,由于其资源利用方式与传统主机有所不同,需要调整监控策略。不能仅以主机为中心进行监控,还应在监控栈中添加容器层,同时也要考虑Kubernetes本身。
3. 监控容器
容器是程序和依赖运行时库的轻量级包装,容器级收集的指标与容器主机的指标相似,特别是在系统资源使用方面。从容器和主机收集这些指标看似冗余,但实际上有助于解决监控移动容器的问题。可以为指标附加逻辑信息,如Pod标签或控制器名称,这样来自不同主机的容器指标就能有意义地分组。
此外,与CPU节流相关的指标仅在容器级别报告。如果某个应用程序遇到性能问题,但主机的CPU资源有空闲,就可以使用相关指标检查是否被节流。
超级会员免费看
订阅专栏 解锁全文
1618

被折叠的 条评论
为什么被折叠?



