24

16个工具让你的k8s如虎添翼

 3 years ago
source link: https://zhuanlan.zhihu.com/p/277393189
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在DevOps生态系统中,拥有出色的DevOps工具来减轻人为操作非常重要。每个DevOps阶段都可以使用大量的DevOps工具。

如果您在DevOps领域中工作并在容器中运行应用程序,那么Kubernetes是必备工具之一。有数百种工具可与Kubernetes配合使用以添加更多功能。我说的是用于更好地管理,安全性,仪表板和Kubernetes集群监控的工具。

这是一系列令人惊奇的工具,它们为您的Kubernetes增加了更多功能。

Helm

Helm是Kubernetes的软件包管理器,可以轻松地获得高度可重复的应用程序和服务,或在许多不同的场景中使用它们,从而使将它们轻松部署到典型的Kubernetes集群中变得更加容易。使用Helm,您可以查找,共享和使用为Kubernetes构建的软件。

它使用称为Helm Charts的图表来定义,安装和升级复杂的Kubernetes应用程序。

Helm功能:

  • 使用图表处理所有Kubernetes应用程序的复杂性
  • 使用升级和自定义钩子轻松更新内容。
  • 可以在公共或私有服务器上轻松共享图表。
  • 只需一个命令即可轻松回滚
  • 提高开发人员的生产力并增强操作准备

Flagger

Flagger是Kubernetes的渐进交付operator。

它使用Istio,App Mesh,Nginx,Linkerd,Contour,Gloo,Skipper路由进行流量转移,并使用Prometheus进行金丝雀分析,从而自动促进金丝雀部署。在Canary部署中,您将发行版发布给一小群用户,对其进行测试,如果运行良好,则将发行版发布给所有人。

ZRnIZjB.jpg!mobile

它使用集群中运行的服务网格来管理一个部署和另一个部署之间进行的通信。为了将流量转移到Canary,它会测量性能指标,例如平均请求持续时间,HTTP请求成功率,pod运行状况等。

Flagger可以针对几种部署策略(如Canary,A / B测试,蓝/绿部署)运行自动化的应用程序分析,升级和回滚。

Kubewatch

Kubewatch是开源的Kubernetes观察程序,它通过slack发送通知。

它是用Go编程编写的,由Bitnami Labs开发。它用于监视Kubernetes资源并通知是否有任何更改。

您可以通过kubectl或使用helm图表来安装Kubewatch。它易于理解,并且具有非常易于使用的界面。除了slack之外,它还支持HipChat,Mattermost,Flock,webhook和SMTP。

根据要监视的Kubernetes,可以在ConfigMap文件中为那些资源设置true或false。设置kubewatch配置并运行Pod之后,您将开始在Kubernetes事件上接收通知,如下所示。

QrABNvJ.jpg!mobile

Gitkube

Gitkube是使用git push在Kubernetes上构建和部署Docker镜像的工具。它包含三个组件–Remote,gitkube-controller和gitkubed。Remote由gitkube-controller管理的自定义资源组成。 gitkube-controller将更改发送到gitkubed,然后gitkubed构建并部署docker镜像。

VZjuQzu.jpg!mobile

Gitkube 功能:

  • 易于安装,即插即用
  • 提供基于角色的访问控制以提高安全性
  • 使用公钥即可轻松进行身份验证
  • 支持多租户的名称空间
  • 除了kubectl和git外没有其他依赖项

kube-state-metrics

kube-state-metrics是一项通过侦听Kubernetes API服务器生成状态对象指标的服务。它用于检查各种对象(例如节点,吊舱,名称空间和部署)的运行状况。它通过Kubernetes API为您提供未经修改的原始数据。

以下是kube-state-metrics提供的信息:

  • CronJob和Job状态
  • Pod的状态(就绪,正在运行等)
  • 资源需求及其范围
  • 节点容量及其状态
  • 副本集的规格

Kamus

Kamus是一个开源GitOps工具,用于对Kubernetes应用程序的secret进行加密和解密。 Kamus所做的加密secret只能由Kubernetes集群上运行的应用程序解密。它使用AES,Google Cloud KMS,Azure KeyVault进行secret加密。您可以使用Helm图表开始使用Kamus。

Kamus带有两个实用程序– Kamus CLI和Kamus init容器。 Kamus CLI用于与加密API集成,而Kamus初始化容器用于与API解密集成。

Kubernetes普通secret未加密;它们是base64编码的。您不能按原样保留它。这是不安全的。任何有权访问该存储库的人都可以使用这些secret。因此,需要像Kamus这样的适当的加密/解密解决方案。它还提供了一种威胁模型,可以处理威胁并确保secret安全。

Untrak

Untrak是Kubernetes中使用的一种开源工具,用于查找未跟踪的资源并对其进行垃圾收集。它可以帮助您从集群中查找和删除那些未跟踪的文件。

在使用kubectl apply或helm模板将清单注入到CI/CD管道后,Kubernetes不知道何时从存储库中删除对象。删除对象后,将不会在交付过程中对其进行跟踪,而仍将其驻留在Kubernetes集群上。

它使用简单的配置文件 untrak.yaml 在内部执行命令,以查找不再属于源代码管理一部分的资源。

EbMZBnY.jpg!mobile

Scope

Weave Scope用于可视化,监视Docker和Kubernetes并对其进行故障排除。

它显示了容器化应用程序的俯视图以及完整的基础结构,您可以使用它们轻松地发现任何问题并进行诊断。

在Docker容器中运行微服务架构应用程序并不是那么容易。这里的组件非常动态,很难监控。借助scope,您可以轻松地解决内存泄漏问题并控制CPU消耗,可视化网络瓶颈。

a2Ej2uR.jpg!mobile

Scope 功能:

  • 帮助您实时监控Docker容器
  • 提供在容器中运行的进程之间的轻松导航
  • 显示主机或服务的CPU和内存使用情况
  • 使用CLI重新启动,停止或暂停容器,而无需离开范围浏览器窗口
  • 支持自定义插件以获取有关容器,进程和主机的更多详细信息

Kubernetes Dashboard

Kubernetes仪表板是Kubernetes提供的Web界面。它用于在Kubernetes集群上部署,故障排除和管理容器化的应用程序。它提供了有关集群的所有信息,例如有关节点,名称空间,角色,工作负载等的详细信息。

BB3eUj2.jpg!mobile

Kops

Kops是一个开源项目,用于非常轻松,快速地建立可投入生产的Kubernetes集群。 Kops主要可用于在AWS和GCE上部署Kubernetes集群。

小型Kubernetes集群很容易创建和维护,但是在扩展集群时,会添加许多配置,并且很难进行操作管理。 Kops是可帮助您解决此类问题的工具。它遵循配置驱动的方法,该方法可以使集群始终保持最新和安全。

Kops还具有许多网络后端,根据使用情况选择其中一个,可以使您轻松设置各种类型的集群。

cAdvisor

cAdvisor是用于监视容器的开源工具。它用于了解集群上运行的容器的性能特征和资源使用情况。

它在节点级别上运行,并且可以自动发现在特定节点上运行的所有容器,并收集内存,文件系统,CPU和网络统计信息。它提供了一个Web界面,可显示集群中所有容器的实时数据。

要开始使用cAdvisor,您需要运行其 docker image google/cadvisor,然后可以在Web浏览器中的 http:// localhost:80 80上访问它。

ramU3uq.jpg!mobile

Kubespray

Kubespray是一个免费工具,它是通过组合Ansible 剧本和Kubernetes创建的。它用于Kubernetes集群生命周期管理。

通过使用Kubespray,您可以快速部署集群并自定义集群实施的所有参数,例如部署模式,网络插件,DNS配置,组件版本,证书生成方法等。

通过仅运行一本简单的ansible-playbook,您的集群即可启动并运行。您可以轻松扩展或升级Kubernetes集群。

K9s

K9s是基于开源终端的工具,其仪表板实用程序可以完成Kubernetes Web UI的所有工作。它用于导航,观察和管理Kubernetes集群上部署的应用程序。

Fnq2Ev.jpg!mobile

k9s功能:

  • 实时跟踪您的集群
  • 根据每个资源自定义显示
  • 放大以解决资源问题
  • 支持基于角色的访问控制
  • 内置基准以验证资源性能

Kubetail

Kubetail是一种简单的bash脚本,用于在一个流中聚合来自多个pod的日志。

最新的Kubetail版本还具有突出显示和过滤功能。此功能使您可以执行日志着色。使用自制软件,您可以使用单个命令安装Kubetail。您可以在Kubetail可以读取的环境变量中添加默认值,例如 KUBETAIL_NAMESPACEKUBETAIL_TAILKUBETAIL_SKIP_COLORS 等。

PowerfulSeal

PowerfulSeal是一个用Python编写的,用于Kubernetes集群的开源,功能强大的混沌工程工具。

混沌工程用于使系统有信心检查其处理生产中问题情况的能力。它给Kubernetes集群注入了故障,以便尽早发现其中的问题。

它受到Netflix Chaos Monkey的启发,用于提高Kubernete的弹性。工程师使用PowerfulSeal故意破坏集群中的内容,以检查系统的反应。

PowerfulSeal在三种模式下工作-自主,交互,标签。

在自主模式下,它通过读取您提供的策略文件来执行方案。在交互模式下,它会告诉您有关手动尝试破坏的集群组件的信息。在标签模式下,您可以使用标签杀死集群上的目标对象,例如Pod。

ZV73EnR.jpg!mobile

Popeye

Popeye是一种清洁实用程序,可充当Kubernetes集群的消毒器。

Y7fUBjU.jpg!mobile

它将扫描整个集群,并报告与配置和资源有关的问题。它可以帮助您在Kubernetes集群上执行最佳实践,以避开常见问题。

该实用程序可用于Windows,Linux和macOS。当前,它仅适用于节点,Pod,名称空间,服务。使用Popeye,您可以轻松地识别已用和未使用的资源,端口不匹配,RBAC规则,指标利用率等。

结论

DevOps工具在成功中扮演着至关重要的角色,我希望以上内容可以帮助您更好地管理Kubernetes。

PS: 本文属于翻译,原文


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK