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 ...
随机推荐
- 概率-Knight Probability in Chessboard
2018-07-14 09:57:59 问题描述: 问题求解: 本题本质上是个挺模板的题目.本质是一个求最后每个落点的数目,用总的数目来除有所可能生成的可能性.这种计数的问题可以使用动态规划来进行解决 ...
- spring最核心思想--ioc控制反转
一核心概念 控制反转:将bean的生成交给容器,程序可以从容器中获取指定的bean. 个人理解:此优势也是spring能够流行并成为java主流框架的主要原因,java是帮助java程序员以对象的方式 ...
- Building Applications with Force.com and VisualForce (DEV401) 中用到的Recruiting Application介绍
1.Who uses Recruiting Application. 2. Recruiting Application Object Model
- 构建一个简单的 Google Dialogflow 聊天机器人【上】
概述 本教程将向您展示如何构建一个简单的Dialogflow聊天机器人,引导您完成Dialogflow的最重要功能.您将学习如何: 创建Dialogflow帐户和第一个Dialogflow聊天机器人, ...
- 我的Keras使用总结(4)——Application中五款预训练模型学习及其应用
本节主要学习Keras的应用模块 Application提供的带有预训练权重的模型,这些模型可以用来进行预测,特征提取和 finetune,上一篇文章我们使用了VGG16进行特征提取和微调,下面尝试一 ...
- iOS 重构AppDelegate
一.Massive AppDelegate AppDelegate 是应用程序的根对象,它连接应用程序和系统,确保应用程序与系统以及其他应用程序正确的交互,通常被认为是每个 iOS 项目的核心. 随着 ...
- Python学习笔记:set集合类型所有方法汇总
################################################## 集合的作用是:# 1.获得两个集合之间某种关系的集合(比如求两个集合的交集)# 2.计算集合之间的 ...
- Spring中的设计模式:模板模式
导读 模板模式在是Spring底层被广泛的应用,比如事务管理器的实现,JDBC模板的实现. 文章首发于作者的微信公众号[码猿技术专栏] 今天就来谈谈「什么是模板模式」.「模板模式的优缺点」.「模板模式 ...
- Dockerfile极简入门与实践
前文中,罗列了docker使用中用到的基本命令 此文,将会对怎样使用Dockerfile去创建一个镜像做简单的介绍 Dockerfile命令 要开始编写Dockerfile,首先要对相关的命令有个清晰 ...
- vue引入echart Error in mounted hook: "ReferenceError: myChart is not defined" found in
解决办法: // 实例化echarts对象 var/let myChart = echarts.init(this.$refs.myChart)