Kubernetes推动了竞争力的提升。如今,作为一项成熟的技术,全球各地的企业都在迅速采用基于微服务的,容器驱动的方法来交付软件。Kubernetes是行业标准。行业领导者正在帮助它如雨后春笋般发展,基于Kubernetes核心开发综合应用程序和生态系统。它是最流行的开源容器编排平台,因为它能够支持应用程序可以创建的各种要求和约束。
我们将研究15种最佳的Kubernetes工具。这些应用程序将补充K8s,并增强您的开发工作,因此您可以从Kubernetes获得更多。
cAdvisor是一个Kubernetes工具,用于监视资源使用情况和性能。它是开源的,由Google维护。cAdvisor本机支持Docker,并与Kubelet集成。支持任何容器类型。cAdvisor可以自动检测服务器中的所有容器。然后收集,处理和分发容器信息。它有一个缺点。在存储用于长期监视的指标方面受到限制。cAdvisor的容器抽象基于lmctfy。它继承了嵌套的层次结构行为。
Kubernetes Dashboard是基于Web的Kubernetes监视工具,它更适合于较小的集群。它提供了一个用于管理Kubernetes的UI。这些任务包括发现,负载平衡和监视。许多选项可用于故障排除。仪表板允许监视总计的CPU和内存使用情况。它可以监视工作负载的运行状况。可以直接使用现成的YAML模板进行安装。该机舱是Kubernetes仪表板的移动版本。它为Android和iOS提供类似的功能。
Kubelet是在Kubernetes集群的每个节点上运行的“节点代理”。他们可以在中央API服务器上注册该节点。“ PodSpec”,它是用于描述每个吊舱的YAML或JSON对象。因此,Kubelet能够通过其PodSpec监视这些节点。此外,Kublet接受来自API服务器的PodSpecs。他们还可以从其他来源来这样做。但是无法管理它们。Docker的cAdvisor就是其中之一。它的主要好处是可以监视整个群集。
容器的安全性要求是唯一的。它们不同于其他类型的托管,例如VPS。原因是它们有更多的层需要保护。其中包括容器运行时,协调器和应用程序映像。以下是一些专用工具。
Twistlock是一个全生命周期的容器安全解决方案。它具有VMS,可扫描任何易受攻击的区域。它会持续扫描Kubernetes。也有一个自动防火墙。扫描容器图像是Twistlock的另一个重要功能。支持使用Node.js组件和Docker映像。Twistlock专注于容器安全性的两个基本方面。首先,它会持续扫描容器图像。原因是每天都会出现新的威胁数据。接下来,它着重于运行容器的安全性。必须首先设置正常行为的基准。之后,可以轻松对其进行监视。
Falco是针对安全性的Kubernetes工具,可检测容器中的异常活动。它源自Sysdig项目,现已成为商业产品。Falco监视容器,重点放在内核系统调用上。它使用一组规则。这些用于监视容器的多层。其中包括容器本身,应用程序,主机和网络。它支持Kubernetes和容器。您可以为每个Kubernetes集群构建唯一的规则。这些规则可以在所有容器中强制执行。Falco还为容器运行时提供本地支持。
Aqua Security会在部署之前扫描容器映像。此功能使您可以将图像设为只读。不变的图像不太容易受到威胁。此外,它还可以轻松检测异常。这些扫描是在每个应用程序上下文上完成的。规模和性能是开发过程中的关键重点,并在官方文档中进行了说明。保护多租户环境是其核心功能之一。它在确保租户之间隔离的同时执行此任务。隔离既涉及数据又涉及访问。它扫描多个安全问题。其中包括已知威胁,嵌入式机密和恶意软件。它会运行其他测试来检查设置和权限中的问题。除了Kubernetes,Aqua Security还与十多个容器供应商兼容。
Kubectl是Kubernetes的默认CLI工具。它支持与Kubernetes相关的所有操作。通过$ HOME目录中的配置文件检测节点。kubectl也接受其他kubeconfig文件。只需设置相关的环境变量。也可以使用–kubeconfig标志来完成。Docker用户可以使用kubectl与API服务器进行交互。kubectl命令类似于Docker命令。只有一些细微的差异。
这些Kubernetes工具都可以通过共享存储库使用。它们通过kubectl提供其他功能。kubectx是多集群环境中的有用工具。您可以使用它在集群之间切换上下文。避免使用kubectx关键字执行复杂的命令。kubectx的一个显着优势是别名名称的能力。该功能允许使用命令“ kubectx [alias]”切换上下文。kubectx会记住先前的上下文。该内存可以通过“ kubectx-”切换回去。kubectx在Windows上不可用。因此,您将需要使用kubectxwin代替。kubens是一个类似的工具,对于在Kubernetes命名空间之间切换非常有用。“ kubens-”命令将您切换回上一个上下文。
Kube-shell是另一个Kubernetes工具,可用于补充kubectl。它是在kubectl之上构建的shell。它通过为命令提供自动完成功能来提高效率。它根据输入的值建议命令。执行命令后,Kube-shell将提供内联描述。另一个重要功能是循环浏览以前的功能。可以使用箭头键进行滚动。
helm
Helm是用于应用程序的更新的Kubernetes管理工具。它使用一种称为Charts的YAML文件。它们类似于Homebrew,Apt或Yum RPM。图表用于定义,安装和升级Kubernetes。它们是一种模板,甚至支持最复杂的Kubernetes。图表的设计使其易于创建和维护。它们可以共享并用于发布Kubernetes。图表包含包装说明和至少一个模板。模板包含Kubernetes清单文件。它们可以重复使用以多次部署。如果多次安装同一图表,则将创建一个新版本。
apollo
Apollo提供了一个用于管理Kubernetes的UI。它允许查看日志。只需单击一下即可恢复部署。它提供了灵活的权限模型。它是在Kubernetes中连续部署的轻量级工具。Apollo可以与任何现有的构建过程集成。只需要通知“就绪工件”即可。此Kubernetes管理工具允许用户管理多个Kubernetes集群。这些群集中的每个群集都可以具有多个名称空间。实时查询功能允许查看部署的当前状态。它支持查看窗格状态,查看日志和重新启动窗格。它由Java客户端和用于监视的REST API组成。
kubespray
Kubespray是一个通过Ansible角色工作的Kubernetes管理工具。它支持AWS,Google Cloud Environment,Azure和OpenStack.Kubespray使熟悉Ansible的人受益。对于此类用户而言,它具有轻微的学习曲线,从而可以通过单个工具进行供应和管理。Kubespray支持连续集成测试。大多数Linux发行版均提供支持。
kubeless此工具是用于部署小型应用程序的本地Kubernetes工具。它使用Kubernetes资源来启用许多任务。这些有助于自动扩展,路由API,进行监视和故障排除。Kubeless脱颖而出,因为它支持自定义资源定义。该功能允许Kubeless创建自定义的Kubernetes资源。然后,您可以使用集群内控制器对其进行监视。它允许您根据需要启动运行时。然后,这些运行时可以通过HTTP使用。此外,还可以使用PubSub机制。
fission
Fission可以在本地计算机或公共/私有云上运行。它提供对许多编程语言的支持。它们是Python,NodeJS,Go,C#和PHP。然后可以将这些功能映射到HTTP请求或其他触发器。部署是通过单个命令完成的。您无需担心构建容器。此功能与管理Docker注册表相同。像许多无服务器工具一样,Fission允许您专注于代码。管道留给框架和协调器。同样,这将使您能够构建容器。Fission的基本功能是其工作流程。它允许通过逻辑门链接多个无服务器功能。您无需处理网络或消息队列等问题。
ironfunction
IronFunction是另一个用Golang编写的开源无服务器工具。它支持任何编程语言中的功能。它支持AWS Lambda函数,这是其主要功能之一。您可以导入Lambda函数并在任何平台上运行它们。这样可以节省使用成本。这方面与不考虑其用途的活动API不同。无服务器功能仅在使用时产生费用。这些成本是按时间划分的。扩展是另一个增强的领域。您要做的就是增加IronFunction节点的数量。每个应用程序都没有缩放比例。