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个工具,助你提升K8S故障排查效率!的更多相关文章

  1. 外媒速递:十大最佳心理学概念助你提升Web设计效果

    外媒速递是核子可乐精选的近日国外媒体的精彩文章推荐,希望大家喜欢! 本期给大家推荐的是帮助你提升Web设计效果的十大最佳心理学概念.改善企业云环境协作效率的九款卓越工具.选择移动应用开发工具时要考虑的 ...

  2. 超长可视化指南!带你理清K8S部署的故障排查思路,让bug无处遁形

    本文将帮助你厘清在Kubernetes中调试 deployment的思路.下图是完整的故障排查思路,如果你想获得更清晰的图片,请在公众号后台(RancherLabs)回复"troublesh ...

  3. 一次“不负责任”的 K8s 网络故障排查经验分享

    作者 | 骆冰利 来源 | Erda 公众号 ​ 某天晚上,客户碰到了这样的问题:K8s 集群一直扩容失败,所有节点都无法正常加入集群.在经过多番折腾无解后,客户将问题反馈到我们这里,希望得到技术支持 ...

  4. 使用strace工具故障排查的5种简单方法

    使用strace工具故障排查的5种简单方法 本文源自5 simple ways to troubleshoot using strace strace 是一个非常简单的工具,用来跟踪可执行程序的系统调 ...

  5. 学Android开发 这19个开发工具助你顺风顺水

    学Android开发 这19个开发工具助你顺风顺水 要想快速开发一个Android应用,通常会用到很多工具,巧妙利用这些工具,能让我们的开发工作事半功倍,节省大量时间,下面大连Android开发培训小 ...

  6. SQL Server 2008性能故障排查(一)——概论

    原文:SQL Server 2008性能故障排查(一)--概论 备注:本人花了大量下班时间翻译,绝无抄袭,允许转载,但请注明出处.由于篇幅长,无法一篇博文全部说完,同时也没那么快全部翻译完,所以按章节 ...

  7. Java线上应用故障排查之二:高内存占用

    搞Java开发的,经常会碰到下面两种异常: 1.java.lang.OutOfMemoryError: PermGen space 2.java.lang.OutOfMemoryError: Java ...

  8. atitit.提升软件开发的效率and 质量的那些强大概念and方法总结

    atitit.提升软件开发的效率and 质量的那些强大概念and方法总结 1. 主流编程中三个最糟糕的问题 1 1.1. 从理解问题后到实现的时间很长 1 1.2. 理解和维护代码  2 1.3. 学 ...

  9. paip.hql的调试故障排查流程总结

    paip.hql的调试故障排查流程总结 环境.myeclipse7.0 1 Hql的调试工具myeclipxe默认工具.../Hibernate8IDE 1 故障的排除方法overview 1 Hql ...

随机推荐

  1. 文本编辑器之kindeditor

    摘要:最近在自己学习搭建网站的时候,突然要搭建网站的时候发现了一个好东西,那就是kindeditor这个文本编辑器,这个编辑器简单好用,而且很小,并且是开源的. 文本编辑器介绍 KindEditor ...

  2. canvas.toDataURL()报错的解决方案全都在这了

    报错详尽信息 Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases ...

  3. redis中setbit bitcount命令详解

    bitmap,位图,即是使用bit. redis字符串是一个字节序列. 1 Byte = 8 bit SETBIT key offset value 设置或者清空key的value(字符串)在offs ...

  4. nopcommerce4.0 安装步骤

    前言:近期因工作要求接触nopcommerce,最新版本为4.0,以下所有安装都是基于此版本.接下来我可能会写一系列,为了让自己更好的掌握,也希望能帮助到大家 好记性不如烂笔头,新手也可以避免走我的弯 ...

  5. 使用Jenkins与Docker持续集成与发布NetCore项目(实操篇)

    使用Jenkins与Docker持续集成与发布NetCore项目(教程一) 原文地址:https://www.cnblogs.com/Jackyye/p/12588182.html 基本环境 该教程的 ...

  6. Python第六章-函数02-函数的作用域

    函数 三.作用域规则 有了函数之后,我们必须要面对一个作用域的问题. 比如:你现在访问一个变量,那么 python 解析器是怎么查找到这个变量,并读取到这个变量的值的呢? 依靠的就是作用域规则! 3. ...

  7. CSS常用属性之选择器

    css选择器 序号 选择器 例子 例子描述 1 .class .intro 选择class="intro"的所有元素 2 #id #firstname 选择id="fir ...

  8. netty实现群聊功能

    [概述] 实现一个网络群聊工具.参与聊天的客户端消息是通过服务端进行广播的. 主要由两块组成:聊天服务器端(ChatServer)和聊天客户端(ChatClient). 聊天服务器(ChatServe ...

  9. 如何查看自己项目中vue的版本号和cli的版本号

    查看Vue版本号 代码方式 npm list vue 其他方式 找到package.json文件夹 找"dependencies"然后就可以看到你装的vue的版本了 查看cli版本 ...

  10. 对oracle里面clob字段里面xml的增删改查学习

    这段时间,我使用系统表里面有clob字段里面存放的xml信息,我们如何对xml进行增删改查操作呢,自己参考了很多也学到很多,给大家分享一下 首先我们先建测试表 CREATE TABLE EFGP_23 ...