使用这些令人惊叹的工具来强化Kubernetes
本文将向您介绍一些与Kubernetes配合使用的强大工具。
在DevOps生态系统中工作时,您将意识到拥有令人惊叹的DevOps工具对于减轻您的手动负担有多么重要。针对每个DevOps阶段和不同功能,都有大量的DevOps工具可用。
Kubernetes是您在DevOps领域工作并在容器内运行应用程序时必备的工具之一。有数百种与Kubernetes配合使用以增加更多功能的工具。我说的是用于更好地管理、安全性、仪表板、监控Kubernetes集群的工具。
下面是一些令人惊叹的工具列表,它们为您的Kubernetes增添了更多功能。
让我们开始!
Helm
Helm是Kubernetes的包管理器,可使将高度可重复使用或在许多不同场景中使用的应用程序和服务易于部署到典型的Kubernetes集群。使用Helm,您可以找到、共享和使用软件,该软件是 built for Kubernetes。
它使用称为Helm Charts的图表来定义、安装和升级复杂的Kubernetes应用程序。
Helm功能:
- 使用图表来处理所有Kubernetes应用程序的复杂性
- 使用升级和自定义钩子轻松更新事物
- 可以轻松在公共或私有服务器上共享图表
- 只需一个命令即可轻松回滚
- 提高开发人员的生产力,增强操作准备性
Flagger
Flagger是用于Kubernetes的渐进式交付操作器。
它使用Istio、App Mesh、Nginx、Linkerd、Contour、Gloo、Skipper路由进行金丝雀部署的自动推广,并使用Prometheus进行金丝雀分析。金丝雀部署中,您将发布到一小组用户,进行测试,如果一切正常,就会将发布推广到所有人。
它使用在您的集群中运行的服务网格来管理流向一个部署和另一个部署之间的流量。为了将流量切换到金丝雀,它测量性能指标,如请求的平均持续时间、HTTP请求的成功率、Pod的健康状况等。
Flagger可以对金丝雀、A/B测试、蓝绿部署等多种部署策略运行自动应用程序分析、推广和回滚。
Kubewatch
Kubewatch是一个开源的Kubernetes观察者,可以通过slack频道发送通知。
它是由Bitnami Labs编写的Go编程开发的。它用于监视Kubernetes资源,并在有任何更改时发送通知。
您可以通过kubectl
或使用helm chart安装Kubewatch。它易于理解,并且具有非常易于使用的界面。除了slack,它还支持HipChat、Mattermost、Flock、webhook和SMTP。
根据您要监视的Kubernetes,您可以在ConfigMap文件中为这些资源设置true或false。一旦设置了kubewatch配置并运行了一个pod,您将开始收到有关Kubernetes事件的通知,如下所示。
Gitkube
Gitkube是一种工具,使用git push在Kubernetes上构建和部署Docker镜像。它有三个组件-Remote、gitkube-controller、gitkubed。Remote包含由gitkube-controller管理的自定义资源。gitkube-controller将更改发送到gitkubed,后者构建Docker镜像并将其部署。
Gitkube功能:
- 安装简单,即插即用
- 提供基于角色的访问控制以实现安全性
- 使用公钥进行身份验证简单
- 支持多租户的命名空间
- 除了kubectl和git外,不需要额外的依赖
kube-state-metrics
kube-state-metrics是一种通过监听Kubernetes API服务器生成状态对象指标的服务。它用于检查各种对象(例如节点、Pod、命名空间和部署)的健康状况。它从Kubernetes API中提供原始、未修改的数据。
下面是kube-state-metrics提供的信息:
- 定时作业和作业状态
- Pod的状态(准备就绪、运行中等)
- 资源请求及其范围
- 节点容量及其状态
- 副本集的规范
Kamus
Kamus是一个开源工具,用于对Kubernetes应用程序的密钥进行加密和解密。Kamus所做的加密的密钥只能由在Kubernetes集群上运行的应用程序进行解密。它使用AES、Google Cloud KMS和Azure KeyVault对密钥进行加密。您可以使用helm chart开始使用Kamus。
Kamus带有两个实用程序-Kamus CLI和Kamus init container。Kamus CLI用于与加密API集成,Kamus init container用于与解密API集成。
Kubernetes的明文Secrets未经加密,它们是Base64编码的。您不能将其保留在Git上,因为它不安全。任何可以访问存储库的人都可以使用这些Secrets。因此,需要一个适当的加密/解密解决方案,例如Kamus。它还提供了一个威胁模型,可解决威胁并使Secrets安全。
Untrak
Untrak是一个在Kubernetes中使用的开源工具,用于查找未跟踪的资源并进行垃圾回收。它可以帮助您查找并从集群中删除那些未跟踪的文件。
在使用kubectl apply或helm template将清单注入到CI/CD流水线后,Kubernetes不知道对象将从存储库中删除的时间。一旦对象被删除,它们就不会在交付过程中被跟踪,并且仍然存在于Kubernetes集群中。
它使用一个简单的配置文件untrak.yaml
内部执行命令,以查找不再是源代码管理的一部分的资源。
Scope
Weave Scope用于可视化、监视和故障排除Docker和Kubernetes。
它以自上而下的方式显示您的containerized应用程序和完整的基础设施,您可以通过它轻松识别任何问题并对其进行诊断。
在Docker容器中运行微服务体系结构应用程序并不容易。这里的组件非常动态且难于监控。使用Weave Scope,您可以轻松解决内存泄漏和控制CPU消耗,可视化网络瓶颈。
Scope功能:
- 实时帮助您进行导航
- 提供容器中运行的进程之间的轻松导航
- 显示主机或服务的CPU和内存使用情况
- 使用CLI重新启动、停止或暂停容器,无需离开Scope浏览器窗口。
- 支持自定义插件以获取有关容器、进程和主机的更多详细信息
Kubernetes仪表板
Kubernetes Dashboard是Kubernetes提供的Web界面。它用于在Kubernetes集群上部署、故障排除和管理容器化应用程序。它提供有关集群的所有信息,如节点、命名空间、角色、工作负载等的详细信息。
您可以使用helm chart来部署Kubernetes仪表板,或者使用下面提到的简单的kubectl command:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml
Kops
Kops代表Kubernetes操作,是一个用于轻松快速部署生产就绪的Kubernetes集群的开源项目。Kops主要用于在AWS和GCE上部署Kubernetes集群。
一个小型的 Kubernetes 集群易于创建和维护,但当你扩展集群时,会添加很多配置,变得难以操作管理。Kops 是一个帮助你解决这些问题的工具。它采用了配置驱动的方法,始终保持集群的最新状态和安全。
Kops 还有很多网络后端,根据使用情况选择其中之一,可以轻松设置各种类型的集群。
cAdvisor
cAdvisor 是一个用于监控容器的开源工具。它用于了解集群上运行的容器的性能特征和资源使用情况。
它在节点级别上操作,并可以自动发现在特定节点上运行的所有容器,并收集内存、文件系统、CPU 和网络统计数据。它提供了一个 Web 界面,显示集群中所有容器的实时数据。
要开始使用 cAdvisor,您需要运行其 Docker 镜像 google/cadvisor,然后可以在 Web 浏览器中通过 http://localhost:8080 访问它。
Kubespray
Kubespray 是一个免费工具,它通过结合 Ansible playbooks 和 Kubernetes 来创建。它用于 Kubernetes 集群的生命周期管理。
使用 Kubespray,您可以快速部署集群,并自定义集群实现的所有参数,如部署模式、网络插件、DNS 配置、组件版本、证书生成方法等。
通过运行一个简单的 ansible-playbook,您的集群即可运行。您可以轻松扩展或升级您的 Kubernetes 集群。
K9s
K9s 是一个开源的基于终端的工具,其仪表板实用程序可以完成与 Kubernetes web UI 相同的所有操作。它用于导航、观察和管理 application deployed on the Kubernetes 集群。
K9s 功能:
– 实时跟踪集群
– 根据每个资源自定义显示
– 缩放到集群资源问题
– 支持基于角色的访问控制
– 内置基准测试,以验证资源性能
Kubetail
Kubetail 是一个简单的 bash 脚本,用于将多个 pod 的日志聚合到一个流中。
非常方便!
它可以帮助您轻松进行调试。
最新的 Kubetail 版本还具有高亮和过滤功能。这个功能可以进行日志着色。使用 homebrew,您可以使用一个命令安装 Kubetail。您可以将默认值添加到 Kubetail 可以读取的环境变量中,如 KUBETAIL_NAMESPACE
、KUBETAIL_TAIL
、KUBETAIL_SKIP_COLORS
等。
PowerfulSeal
PowerfulSeal 是一个用于 Kubernetes 集群的开源、强大的混沌工程工具,用 Python 编写。
Chaos engineering 用于获取系统的信心,检查其处理生产中的问题情况的能力。它会向 Kubernetes 集群注入故障,以尽早发现其中的问题。
它受 Netflix Chaos Monkey 的启发,用于改善 Kubernetes 的弹性。使用 PowerfulSeal,工程师有意地试图破坏集群,以检查系统的反应。
PowerfulSeal 有三种模式 – 自主模式、交互模式、标签模式。
在自主模式下,它通过读取您提供的策略文件执行场景。在交互模式下,它告诉您手动尝试破坏的集群组件。在标签模式下,您可以使用标签杀死集群上的目标对象,如 pod。
Popeye
Popeye 是一个清理工具,作为 Kubernetes 集群的消毒剂 🧼。
它将扫描整个集群并汇报与配置和资源相关的问题。它帮助您在Kubernetes集群上执行best practices,以远离常见问题。
此实用程序适用于Windows、Linux和macOS。目前,它仅适用于节点、Pod、命名空间和服务。使用Popeye,您可以轻松识别无效和未使用的资源、端口不匹配、RBAC规则、指标利用率等等。
结论
DevOps tools在成功中起着重要作用,希望上述内容能帮助您更好地manage Kubernetes。