Kubernetes的故障排查一直困扰众多运维团队或DevOps,除了Kubernetes本身的复杂性之外,还有Kubernetes的工作负载是动态的原因。本文将介绍1个工具可以帮助你可视化K8S的网络和流量,以提升你的故障排查效率。


本文来自Rancher Labs

作为领先的多集群Kubernetes管理平台,Rancher使运维团队可以部署、管理和保护企业的Kubernetes集群。Rancher还为用户提供了一系列容器网络接口(CNI)选项可供选择,包括开源项目Calico(https://www.projectcalico.org/)。Calico为Kubernetes Pod提供了原生Layer3路由功能,从而简化了网络架构,提高了网络性能,并提供了丰富的网络策略模型,可以轻松地阻止通信。因此,只有你指定的流量才能流动。

在部署Kubernetes过程一个常见的问题是获取对集群环境的可见性,以有效监控网络和安全问题并进行故障排除。可见性和故障排查(https://www.tigera.io/tigera-products/visibility-and-troubleshooting/ )是我们在Tigera上看到的3大Kubernetes用例之一。这在生产部署中尤其重要,因为宕机时间十分宝贵并且分布式应用很难进行故障排查。如果你是平台团队的一员,你还需要承受SLA的压力。如果你是DevOps团队的一员,则需要启动生产工作负载。对于两个团队来说,共同的目标都是尽快解决问题。

为什么K8S故障排查如此具有挑战性?

由于Kubernetes工作负载是动态的,因此连接问题十分难以解决。而常规的网络监控工具是为静态环境设计的。它们无法理解Kubernetes上下文并且当应用到Kubernetes时并不高效。如果没有特定的Kubernetes诊断工具,对于平台团队而言,进行故障排除会令人沮丧。例如,当pod-to-pod的连接被拒绝时,几乎无法确定哪个网络安全策略拒绝了流量。当然,你可以手动登录到节点并查看系统日志,但这并不可行也无法扩展到多个节点。

基于此,你十分需要一种方法来快速查明任何连接或安全问题的根源。或者更好的是,能够有一些具备预见性的工具,从而避免出现问题。随着Kubernetes部署规模的扩大,围绕可见性、监控和日志记录的限制可能导致无法诊断的系统故障,从而导致服务中断并影响客户满意度和你的业务。

流量日志以及流量可见性

对在生产上运行Rancher的用户,Calico Enterprise(https://www.tigera.io/tigera-products/calico-enterprise/ )网络流量日志可以为解决Kubernetes网络和安全问题提供了坚实的基础。例如,流量日志可用于运行queries以分析来自既定命名空间或工作负载标签的所有流量。但是,要有效地对Kubernetes环境进行故障排查,你需要带有Kubernetes特定数据的流量日志,例如pod、标签和命名空间,以及哪些策略接受或拒绝了连接。

Calico Enterprise Flow Visualizer

Rancher用户中有很大一部分属于DevOps团队。尽管传统的ITOps具有管理网络和安全策略,但我们看到DevOps团队正在寻找能够实现自给自足并加快CI/CD流程的解决方案。对于在生产环境中运行的Rancher用户,Calico Enterprise包含Flow Visualizer,这是一个功能强大的工具,可简化连接故障排查。这种方法可以直观地与网络流量进行交互并对其进行深入研究。DevOps可以使用此工具进行故障排查和策略创建,而ITOps可以使用RBAC建立策略层次结构以实施保护,因此DevOps团队不会覆盖任何企业范围的策略。

防火墙可以为安全团队创建可见空间

Kubernetes工作负载大量使用网络并产生大量东西流量。如果你在Kubernetes架构中部署常规的防火墙,则将无法可视化流量以及故障排查。防火墙并不了解Kubernetes流量所需的上下文(命名空间、Pod、标签、container id等)。这样就无法对网络问题进行故障排除,进行取证分析或报告安全控制措施是否合规。

为了获得所需的可见性,Rancher用户可以部署Calico Enterprise,将基于区域的防火墙规则转换为Kubernetes网络策略,该策略将集群划分为各个区域并应用正确的防火墙规则。然后,可以使用现有的防火墙和防火墙管理器来定义区域并在Kubernetes中创建规则,就像创建所有其他规则一样。可以将流量穿越区域发送到安全团队的安全信息和事件管理平台(SIEM),从而为它们提供与常规防火墙相同的可见性,以进行故障排除。

其他Kubernetes故障排除注意事项

对于使用Rancher平台的平台、网络、DevOps和安全团队,Tigera提供了其他可见性和监控工具,可帮助你更快地进行故障排除:

  • 可以向所有监控的数据添加阈值和警报。例如,拒绝的流量激增会向你的DevOps团队或安全运维中心(SOC)发出警报,以进行进一步调查。

  • Filter使你能够按命名空间、pod和视图状态(例如允许或拒绝的流量)进行深入分析。

  • 能够将日志存储在EFK(Elasticsearch、Fluentd和Kibana)堆栈中以供将来访问。

无论你是刚刚接触Kubernetes,还是仅仅想简单了解集群意外行为的“原因”,亦或是处于生产环境中部署了大规模的工作负载状态,使用正确的工具进行有效的故障排除将有助于你避免出现宕机和服务中断的情况。

最新文章

  1. 怎么通过 Mysql 实现数据同步呢?
  2. Vue-loader 开启压缩后的一些坑
  3. Angular.js 以及个人学习网站
  4. CDH版本升级
  5. 自定义input[type="file"]的样式
  6. Win7_64位使用Mysql Odbc
  7. Windows 环境下基于 Redis 的 Celery 任务调度模块的实现
  8. 移动平台3G手机网站前端开发布局技巧
  9. python 文件查找 glob
  10. Altium Designer 从导入DXF文件,并转换成板框
  11. 符号表实现(Symbol Table Implementations)
  12. php类于对象
  13. ESRI ArcGIS 产品线资源网站大集合
  14. ZJOI2008树的统计Count
  15. office web apps 整合Java web项目
  16. 201521123087 《Java程序设计》第3周学习总结
  17. OpenSCAD 建模:矿泉水瓶盖
  18. MySQL插入命令_INSERT INTO
  19. springboot xml声明式事务管理方案
  20. 64位Windows的Dos中取消了edit命令

热门文章

  1. SpringMVC最详细笔记partⅠ
  2. 我们是怎么实现Grpc CodeFirst
  3. 面试刷题17:线程两次start()会发生什么?
  4. Alpine Linux 常用命令
  5. 干净直接安装+PS下载
  6. 服务器上安装.NET Framework 3.5 sp1
  7. iOS nil,Nil,NULL,NSNULL的区别
  8. HFSS——平面正弦加载阿基米德螺旋线模型设计
  9. java单元/集成测试中使用Testcontainers
  10. A 组队参赛