1个工具,助你提升K8S故障排查效率!
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故障排查效率!的更多相关文章
- 外媒速递:十大最佳心理学概念助你提升Web设计效果
外媒速递是核子可乐精选的近日国外媒体的精彩文章推荐,希望大家喜欢! 本期给大家推荐的是帮助你提升Web设计效果的十大最佳心理学概念.改善企业云环境协作效率的九款卓越工具.选择移动应用开发工具时要考虑的 ...
- 超长可视化指南!带你理清K8S部署的故障排查思路,让bug无处遁形
本文将帮助你厘清在Kubernetes中调试 deployment的思路.下图是完整的故障排查思路,如果你想获得更清晰的图片,请在公众号后台(RancherLabs)回复"troublesh ...
- 一次“不负责任”的 K8s 网络故障排查经验分享
作者 | 骆冰利 来源 | Erda 公众号 某天晚上,客户碰到了这样的问题:K8s 集群一直扩容失败,所有节点都无法正常加入集群.在经过多番折腾无解后,客户将问题反馈到我们这里,希望得到技术支持 ...
- 使用strace工具故障排查的5种简单方法
使用strace工具故障排查的5种简单方法 本文源自5 simple ways to troubleshoot using strace strace 是一个非常简单的工具,用来跟踪可执行程序的系统调 ...
- 学Android开发 这19个开发工具助你顺风顺水
学Android开发 这19个开发工具助你顺风顺水 要想快速开发一个Android应用,通常会用到很多工具,巧妙利用这些工具,能让我们的开发工作事半功倍,节省大量时间,下面大连Android开发培训小 ...
- SQL Server 2008性能故障排查(一)——概论
原文:SQL Server 2008性能故障排查(一)--概论 备注:本人花了大量下班时间翻译,绝无抄袭,允许转载,但请注明出处.由于篇幅长,无法一篇博文全部说完,同时也没那么快全部翻译完,所以按章节 ...
- Java线上应用故障排查之二:高内存占用
搞Java开发的,经常会碰到下面两种异常: 1.java.lang.OutOfMemoryError: PermGen space 2.java.lang.OutOfMemoryError: Java ...
- atitit.提升软件开发的效率and 质量的那些强大概念and方法总结
atitit.提升软件开发的效率and 质量的那些强大概念and方法总结 1. 主流编程中三个最糟糕的问题 1 1.1. 从理解问题后到实现的时间很长 1 1.2. 理解和维护代码 2 1.3. 学 ...
- paip.hql的调试故障排查流程总结
paip.hql的调试故障排查流程总结 环境.myeclipse7.0 1 Hql的调试工具myeclipxe默认工具.../Hibernate8IDE 1 故障的排除方法overview 1 Hql ...
随机推荐
- hdu2612 又是迷宫系列
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/2612/ 题意:有两个人在地图上不同的位置,地图上由若干个餐厅,求两人能同时到达一个餐厅所用最少的总时间. 代码如 ...
- Effective python(五):内置模块
1,考虑使用contextlib和with语句改写可复用的try/finally代码 with lock:print('lock is held')相当于try:print('lock is held ...
- JS 冒泡排序详解
冒泡排序原理:比较相邻两个数的大小,如果第一个数大于第二个数,那么交换位置,从第一位数开始,对后面每一对相邻的数据进行同样的比较和交换,直到最后没有任何一位需要进行比较大小和交换: 思路演算: arr ...
- wr720n v4 折腾笔记(五):终篇-编译安装openwrt附带njit
前言: 由于没有多余的U盘,所以想直接压缩生成一个带njit-client的openwrt固件.其中按照网上的教程走,遇到了一些问题,这里前面的步骤来源于网络.后面给出处理问题的方法. 一.准备工作 ...
- Hive知识点
1.Hive是一种建立在Hadoop文件系统上的数据仓库架构,并对存储在HDFS中的数据进行分析和管理:(也就是说对存储在HDFS中的数据进行分析和管理,我们不想使用手工,我们建立一个工具把,那么这个 ...
- C++实现秒表
完整代码下载 思路概括:如果有键按下,判断按下的是什么键并处理.没有键按下,计时.传统的Sleep无法满足秒表精确到百毫秒的需求,这里使用更精确的clock,clock的作用是统计从程序开始运行到现在 ...
- 模块 jieba结巴分词库 中文分词
jieba结巴分词库 jieba(结巴)是一个强大的分词库,完美支持中文分词,本文对其基本用法做一个简要总结. 安装jieba pip install jieba 简单用法 结巴分词分为三种模式:精确 ...
- JS 剑指Offer(五) 二叉树的重建
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 题目分析:已知二叉树的前序和中序遍历,根据前序遍历和中序遍历的规则,前序遍历的第一 ...
- ㊙力荐!!!那些炒鸡有用的chrome插件㊙
今天咱们来说一说那些炒鸡
- netcore webapi参数
1.参数带[FormBody]标签 2.ajax 请求 content-type:application/json 3.post时 需要JSON.stringify 4.GET 时不需要JSON.st ...