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. JWT签发token

    目录 一. 认证的发展历程简介 二. JWT签发Token源码分析 2.1 JWT工作原理及简介 2.2 JWT生成token源码分析 返回目录 一. 认证的发展历程简介 这里真的很简单的提一下认证的 ...

  2. demo08-js条件运算符

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. windows10 64位 安装mysql服务端 并使用navicat客户端链接 掉的一堆坑

    1.目的 安装mysql服务端 并使用navicat客户端链接 2.过程 1)下载mysql服务端 下载过程(参考https://blog.csdn.net/youxianzide/article/d ...

  4. 图论-最短路径 floyd/dijkstra-Find the City With the Smallest Number of Neighbors at a Threshold Distance

    2020-01-30 22:22:58 问题描述: 问题求解: 解法一:floyd 这个题目一看就是floyd解最合适,因为是要求多源最短路,floyd算法是最合适的,时间复杂度为O(n ^ 3). ...

  5. MySQL5.7 import表结构报错超出表空间界限

    事后测试了一下,一下方法就是垃圾,看看可以,别跟着学!!! 数据库重启后,问题依然暴露出来了,参数什么的都是扯,擦 记录一个困扰我好几天的问题.先贴上报错: space name jxtms/Cost ...

  6. Python IDE ——Anaconda+PyCharm的安装与配置

    一 前言 最近莫名其妙地想学习一下Python,想着利用业余时间学习一下机器学习(或许仅仅是脑子一热吧).借着研究生期间对于PyCharm安装的印象,在自己的电脑上重新又安装了一遍.利用周末的一点时间 ...

  7. 用FME处理物探点表和线表,生成管线和设施

    在项目的数据处理中,客户会提供物探点表和线表. 点表主要包括该点的物探编号.该点的X坐标.Y坐标.点的其他属性 线表主要包括该线的起始点物探编号.终止物探编号.线的其他属性 点表

  8. python框架-Django创建项目

    创建项目 django-admin startproject douban//创建project cd douban python manage.py startapp books//创建app项目 ...

  9. Unix 网络编程卷一源码编译踩坑记录 ubtutu 19.10

    在阅读unpv1时运行源代码的环境配置,这里简单记录一下 源代码里的README 写得挺详细的,但是在Linux 系统的下还没没办法直接编译通过的, 这里我使用的是ubuntu 19.10(在腾讯云1 ...

  10. 移动端rem布局实现(vw)

    什么是rem?在W3C官网上是这样描述的:“font size of the root element (根元素的字体大小)”.就是说rem是相当于html的,因为网页的默认字体大小是 16px,所以 ...