zhangxxxww 2020-05-13
利用这些Kubernetes 工具的优势来改善监视,命令行操作,多集群管理等。
Kubernetes已成为大规模部署容器化应用程序的标准方法(许多人会说是标准方法)。但是,如果Kubernetes帮助我们驯服了庞大而复杂的容器部署,那么有什么可以帮助我们驯服Kubernetes的呢?它也可能是复杂,混乱且难以管理的。
随着Kubernetes的发展壮大,毫无疑问,它的许多问题都将在项目内部得到驯服。但是有些用户并没有等着Kubernetes变得更容易使用,他们已经针对生产中Kubernetes的许多常见问题推出了自己的解决方案。
Goldpinger:可视化Kubernetes集群
人类是视觉生物。图形和图表使我们更容易理解全局。考虑到Kubernetes集群的范围和复杂性,可以使用可以获得的所有视觉帮助。
彭博社的技术部门开源的这个有趣的名字叫Goldpinger的工具很简单,它在Kubernetes集群中运行,并显示节点之间关系的交互式地图。健康的节点显示为绿色,不健康的节点显示为红色。只需单击一个节点以获取详细信息。可以使用Swagger自定义API,以引入其他报告,指标或其他集成。
K9s:全屏Kubernetes CLI UI
管理员喜欢“单一窗格”实用程序。K9s是Kubernetes集群的全屏CLI UI。它可以快速查看正在运行的Pod,日志和部署的视图,并可以快速访问Shell。请注意,将需要授予用户Kubernetes在用户和名称空间级别的读取特权,以使K9正常工作。
Kops:Kubernetes集群的命令行操作
Kops由Kubernetes团队开发,可让命令行管理Kubernetes集群。它支持在AWS和GCE上运行的集群,以及正在运行的VMware vSphere和其他环境。除了自动进行设置和拆卸过程外,Kops还可以帮助进行其他类型的自动化。例如,它可以生成Terraform配置,以允许使用Terraform重新部署群集。
Kubebox:Kubernetes的终端控制台
Kubebox是Kubernetes的高级终端控制台,不仅为Kubernetes及其API提供了shell。它提供内存和CPU利用率,窗格列表,运行日志和配置编辑器的交互式显示。最重要的是,它可以作为适用于Linux,Windows和MacOS的独立应用程序使用。
Kube-applier
作为Kubernetes服务运行,Kube应用程序从Git存储库中获取Kubernetes集群的声明性配置文件,并将其应用于集群中的Pod。每当对定义文件进行更改时,都会将它们从存储库中提取并应用于相关的广告连播。本质上,适用于Kube的应用程序类似于Google的Skaffold,但它用于管理整个Kubernetes集群而不是单个应用程序。
Kube-applier可以按计划或按需应用配置更改。它会在每次运行时记录其行为,并提供与Prometheus兼容的指标,因此您不必担心它如何影响集群行为。
Kube-ps1:Smart Kubernetes命令提示符
不,Kube-ps1并不是适用于Kubernetes的第一代Sony PlayStation模拟器(尽管那很漂亮)。这是对Bash的简单补充,可在提示中显示当前的Kubernetes上下文和名称空间。Kube-shell包括此功能以及许多其他功能,但是如果只想提供更智能的提示,Kube-ps1几乎不会带来任何开销。
Kube-prompt:交互式Kubernetes客户端
对Kubernetes CLI的另一种最小但有用的修改,Kube-prompt允许输入相当于与Kubernetes客户端的交互式命令会话的内容。Kube提示不必键入kubectl来为每个命令添加前缀,并为每个命令提供带有上下文信息的自动完成功能。
Kubespy:Kubernetes资源的实时监控
Pulumi的Kubespy是一种诊断工具,可实时跟踪对Kubernetes资源的更改,从而提供了一种实时的文本视图仪表板。例如,可以在启动时查看Pod状态的变化:将Pod定义写入Etcd,将Pod计划在节点上运行,在该节点上的Kubelet创建Pod,最后将Pod标记为正在运行。Kubespy可以作为独立的二进制文件运行,也可以作为Kubectl的插件运行。
Kubeval:验证Kubernetes配置
Kubernetes的YAML配置文件本来应该是人类可读的,但这并不总是意味着它们可以被人类验证。很容易错过逗号或胖手指的名字,直到为时已晚才发现它。最好使用Kubeval。Kubeval在本地使用或集成到CI/CD流水线中,接受Kubernetes YAML配置定义并报告其有效性。它可以产生JSON或TAP格式的输出,甚至可以解析Helm图表配置中引用的源模板,而无需其他提示。
Kube-ops-view:多个Kubernetes集群的仪表板
Kubernetes有一个有用的仪表板,可用于通用监控,但是Kubernetes社区正在尝试其他方法,以向Kubernetes管理员有用地呈现数据。Kube-ops-view是这样的一种实验。它提供了以图形方式呈现的多个Kubernetes集群的概览视图,因此可以一目了然地看到集群中整个CPU和内存使用率以及Pod的状态。请注意,它不允许调用任何命令;仅用于可视化。但是,它提供的可视化效果惊人且高效,是为运营中心中的大屏监控所生。
Rio:Kubernetes的应用程序部署引擎
Rio是Rancher Labs的一个项目,它在Kubernetes中实现了常见的应用程序部署模式,例如从Git和A/B持续交付或蓝/绿部署。每次提交提交时,Rio都可以部署新版本的应用程序,从而有助于管理DNS,HTTPS和服务网格等复杂性。
Stern和Kubetail:Kubernetes的日志尾矿
通过Stern,可以从Kubernetes中的容器和容器中生成颜色编码的输出(按照tail命令)。这是一种将来自多个资源的所有输出传输到单个流中的快速方法,一目了然。同时,可以一目了然地(颜色编码)来区分流。
Kubetail同样将来自多个Pod的日志聚合到单个流中,并对不同Pod和容器进行颜色编码。但是Kubetail是Bash脚本,因此只需要一个shell。