请选择 进入手机版 | 继续访问电脑版

ITIL,DevOps,ITSS,ITSM,IT运维管理-ITIL先锋论坛

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 214|回复: 0

为高效 Ops 和 SRE 团队准备的 10 个开源 k8s 工具

[复制链接]
发表于 2020-11-21 14:06:57 | 显示全部楼层 |阅读模式
  \; I+ A+ k8 [& }7 ]7 ?
店家小二 2018-12-17 1372浏览量
% w: J$ B( f) h; \' o! E简介: 如果你正在 Kubernetes 上工作,你的 SRE 和 Ops 团队需要正确的工具来确保Kubernetes集群的高可用和在其中运行的工作负载。这里我们列出了10个开源Kubernetes工具来使得你的SRE和Ops团队更高效的达到他们的服务水平目标(SLA)。
& T! @6 c& [, i& W1 e) I如果你正在 Kubernetes 上工作,你的 SRE 和 Ops 团队需要正确的工具来确保Kubernetes集群的高可用和在其中运行的工作负载。这里我们列出了10个开源Kubernetes工具来使得你的SRE和Ops团队 更高效的达到他们的服务水平目标(SLA)。
& c* ~2 z4 T& E% E/ I6 Q- }2 ]Kube-ops-view
+ M6 c$ C# @  g5 }) |- CKube-ops-view为多个Kubernetes集群提供了一个通用的操作视图,对于SRE和Ops团队来说这是一个方便的工具,Kube-ops-view提供只读的系统仪表。Kube-ops-view 提供了一些非常酷的特性:/ b* f7 Z1 t" a9 X, u) t/ x1 g
在多个Kubernetes 集群间切换。% _! o. L7 a* D6 r+ w
渲染节点并指明它们的总体状态(“Ready”)。& f8 ^' q3 A$ k4 D9 U- i
展示节点的容量和资源利用率(CPU,内存)。
$ f3 r% ?3 Q) \6 q1 B8 \指明pods的状态(绿色:ready/running,红色:error等)。9 j3 r1 C5 @1 S- N( \
为节点和pods提供工具提示信息。& ^7 D! r, U" X  }
pod创建和终止。
9 ~0 J0 Z% k" }" `. P7 g使用屏幕令牌在TV屏幕上提供仪表盘。% ~3 ]" Y& Z8 j2 U( I
Cabin& e. B0 K( [% ?! b4 b
Cabin是一个Kubernetes 的原生的手机App仪表盘。Cabin UI是使用React Native,因此可以运行在 IOS和Android硬件上。它是一个移动助手,提供了细粒度操作来维护Kubernetes 资源。Cabin app做了触摸优化。例如,你可以通过一个左滑动来删除一个pod。你也可以通过一个手指滚动来扩展部署。
% V. k/ w* h( B! z' f8 f Cabin 的一些有趣的特性:
0 M6 r6 `8 {" Y! _3 A( y- x) D无缝的支持 Google Kubernetes Engine (GKE),你可以直接在你的移动手机上创建 GKE集群。
4 S$ Q) y% P6 k* G早期支持帮助图表,你可以浏览图表库,并且通过点击移动运行图表。
, R/ n0 P+ q5 i9 \访问 pod 日志,通过标签(label)搜索资源,通过改变你部署的镜像触发滚动升级等。* N' [/ {8 ]9 ], |- c: Q
Kubectx' V2 Q% D8 U, t) C5 b6 d
如果你工作在多k8s 集群,kubectx是另外一个必须要有的工具。Kubectx与kubens捆绑在一起,当你使用kubectl的时候,允许你在Kubernetes集群和命名空间之间切换。
+ P7 Z6 D1 K( o$ l1 ?kubectx 和 kubens支持在bash/zsh 环境通过 tab 来帮助你补全长的长下文名称。你不在需要记得完整的上下文名称。. f) ~9 c1 q& m6 O" ]2 d, J
Kube-shell0 O& j$ i& n" J: E* z
Kube-shell是一个和Kubernetes CLI集成的 Shell,它有一些非常漂亮的特性,比如:3 D0 j: S- G- m2 ]  D+ b8 P/ K
自动补全命令,自我提示,联机文档。
* s# a/ E4 |2 L  o5 f9 l3 L- c8 c通过使用 up/down 键盘命令访问历史命令的执行。  r- o7 n- ]/ D- y# Z/ {
从kubeconfig获取当前上下文,在 集群/命名空间之间非常容易的切换。6 {7 q6 _  H$ [+ S6 f
相关工具
9 _6 {" I/ N* qKube-prompt是另外一个有自动补全特性的交互式Kubernetes客户端。它接受没有kubect前缀的命令。7 t& x& K) X3 J8 ^2 ]8 ~( p, y
另外,Kube-ps1是一个类似的脚本让你添加配置在kubectl的当前Kubernetes 上下文和命名空间到你的Bash/Zsh提示字符。
7 w, h7 i* r0 v( |最后,Kail是一个 Kubernetes tail。作为一个Kubernetes日志查看器,kail允许你使用选择器从匹配的pods流式的查看日志。7 ?: W! W' W& D' O
Kail - kubernetes 日志查看器
# W5 z" {6 D2 ~+ a' E4 J( q你可以基于标准的标签选择器匹配 pods,通过名字,通过服务,通过部署,等等。
& q- _- a9 F( P8 o- dStern是另外一个专注于 pods和 pods中容器的日志 tail 解决方案。使用 Stern,为了快速调试,结果是有颜色的。! Z6 C0 K/ d) H5 K! w7 ~
Telepresence$ u: S9 `& @# Y1 J" h
Telepresence是一个开源的工具,可以让你在本地调试服务,虽然该服务与它位于远程Kubernetes集群或者是远程云服务资源(如数据库)的依赖服务保持连接。
- _/ s9 s1 C6 M" b- eTelepresence 本地开发和和对远程Kubernetes 集群的调试。* C- _; o8 q+ a* Q7 B2 X" u
就个人而言,我认为Telepresence有很大的潜力,对于运行在 Kubernetes 上的服务而言,Telepresence已经是一个丰富的本地开发环境。在线调试是一个新事物,但是发展很快。
+ }7 O0 [* Q" s% y5 ?* L* k2 j: aWeave Scope  m# `6 m* {* t& @* k* m: Q2 ?! c. S
Weave Scope是一个Docker 和 Kubernetes的排错&监控工具。它为你的应用自动的构建逻辑拓扑以及基础设施,以便你的SRE和Ops团队可以直观的明白,监控,控制你的容器,基于应用的微服务。
; e  s6 j. ?6 E, [5 ?7 z除了拓扑视图,Weave Scope也提供了一个深入视图,比如节点和进程之间的任何事情,包括部署,服务,副本集,pods 和容器。另外,你基于CPU和内存使用率应用过滤,或者是通过名字,标签,甚至路径使用搜索快速的找到节点类型,容器和进程。0 Z' u. Q. e% u& _9 _7 k
PowerfulSeal; ^5 ~0 n5 u; `, W; j! ^
PowerfulSeal 的灵感来源于 Chaos Monkey,由 Bloomberg 工程师团队开发。它可以给你的Kubernetes集群添加混乱,如杀掉目标的pods或者是节点。它以两个模式操作:交互式和自治的。
% N5 f( U( k& `交互式模式被设计为允许你发现你的集群组件,并且人工的停止一些事情看会发生什么。它操作在节点,pods,部署,和命名空间上。
8 E" x: o" E* r# e自治模式读取一个策略文件,可以包含任意数量的pod和节点的场景。每个场景描述了在集群上匹配,过滤,和行动的列表。
( G. |: d- Y. x1 U+ K# Y策略文件是以YAML 格式编写的,包含将被自治客户端执行的场景。
1 R" e8 b4 {8 L/ h# t相关工具1 z  z* z4 r* `0 w5 C/ \/ R
kube-monkey是用于Kubernetes集群的Netflix的Chaos Monkey 的另外一种实现方式。它随机删除在Kubernetes集群中的pods,鼓励并验证恢复服务的开发。
) h# N" ~2 I: `/ b% g/ T$ h* X7 P  wMarmot# n+ q+ l! N* k; F4 J% N# i
Marmot是一个来自于谷歌的工作流执行引擎,用于处理SRE和Ops需要的工作流。它被设计为处理基础架构变更的工具,但它可以和Kubernetes一起使用。/ G/ d" q9 O$ I
它特别适用于那些有一定节奏,可能需要对健康进行状态检查的任何类型的操作。因此,比如,你正在使用大量实例发布一个新服务版本,这时你执行了一个增量在受控的发布(金丝雀发布)。
5 ^) N& J. `" B( g/ p# E4 }& SArk" m& k5 X2 \: O* g0 [# K
Ark 是一个用于管理从你的Kubernetes资源和卷做灾难恢复的工具。Ark提供一个简单并且鲁棒的方式来备份和从系列的检查点恢复Kubernetes资源和持久化的卷。备份文件被存储在一个对象存储服务(如,Amazon S3)。
$ O3 E/ H6 e4 T$ r. bArk 确保你以一个高效的方式自动化以下场景:
: I' N) `1 |4 }1 q减低灾难恢复的TTR(响应时间)。
1 p0 V/ P  e; H: i6 IKubernetes API 对象提供跨云服务器商迁移。# l  X. ^6 Z4 p$ |1 b$ e7 z7 L6 v/ d
通过复制生产环境副本,开发和测试环境的设置(+CI)。
. r/ ]/ v& \) l9 A! qArk 附带一个集群服务(Ark server)和CLI(Ark 客户端),集群服务最重要的工作就是它运行所有的Ark控制器。Ark服务器执行实际的备份,校验,和把备份文件加载进云对象存储中。0 w3 t: ~/ b7 H( D5 W6 q
Sysdig$ t* H9 `3 g0 r, M4 T
Sysdig是一个容器排错工具,它可以捕获系统调用和来自于Linux内核的事件。简单的说,对于整个集群,Sysdig就是strace + tcpdump + htop + iftop + lsof + wireshark。; N4 f  t9 L0 g, z
Sysdig 在物理机和虚拟机的操作系统级别使用。通过安装进Linux内核,捕获系统调用和其他操作系统事件。Sysdig 也可以为系统活动创建trace文件。
0 _4 d+ q# t4 o8 G7 I( K相关工具! P- [! t$ X8 g0 ^, z0 ?$ w& V+ W6 `
Sysdig Inspect是一个可视化通过Sysdig收集的数据的接口。Sysdig Inspect 使得SRE和Ops团队在容器排错和安全调查方面很方便。
$ J5 S1 R$ C- n8 A; c4 a  uInspect的用户接口被设计为直观的导航Sysdig捕获的数据,包含系统,网络和一个Linux系统的应用活动。Sysdig Inspect帮助你明白趋势,相关性的指标,和大海捞针(从一堆数据中找到关键数据)。它包含了功能设计来支持性能和安全调查,深入容器查询。1 l2 a/ y5 `' C, n0 E; z! a; @) A- ~
Sysdig Falco 是另外一个构建与Sysdig收集的数据基础之上的工具。Falco监控活动行为,它被设计为发现你应用中异常的活动。比如,使用Falco你可以发现活动,如:8 ~& Z" Q3 ?: M4 o! U& a" k
运行在一个容器中的脚本。
$ g, w4 J( l: [# A! S0 P% K一个运行在私密模式的容器。  f5 ~+ R  V( p# c
一个挂载在敏感主机的容器。# I5 \# _7 V( e
最后的思考
$ u8 Q: O8 ~9 N' ?8 m6 K; vKubernetes 生态系统正在爆炸性增长。有大量的开源和商业工具可以帮助你更高效的操作非关键性的Kubernetes集群和服务。. c) \$ e4 {* b9 X




上一篇:谷歌视角的DevOps vs SRE
下一篇:支付宝的SRE实践之路

本版积分规则

本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2021-3-9 15:59 , Processed in 0.161255 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表