《Kubernetes常见部署工具介绍及比较(对比).docx》由会员分享,可在线阅读,更多相关《Kubernetes常见部署工具介绍及比较(对比).docx(9页珍藏版)》请在优知文库上搜索。
1、1 MinikubeMinikube是由Kubemetes社区维护的单机版的Kubernetes集群快速部署工具,目前支持MaCOS、1.inUX以及WindOWS等多种操作系统平台,非常适合在自己的笔记本上作为Kubernetes入门环境或作为开发测试环境使用,当然由于只支持单节点不支持高可用因此不能用于生产部署。由于支持跨平台,但是我们知道MacOS以及Windows是不支持直接运行容器的,因此Minikube默认会启动一个1.inux虚拟机,然后在虚拟机上通过kubeadm部署Kubernetes集群,关于kubeadm工具下面将会介绍。当然如果运行的OS本身就是1.inux系统,则可以
2、通过指定-vm-driver=none参数直接部署Kubernetes集群在操作系统上,不需要虚拟机,不过需要自己手动部署DOCker。使用MinikUbe部署单节点KUbemeteS非常简单,可以参考官方文档,这里不再介绍。2 .kindkind是Kubemetes社区新维护的一个本地测试环境快速部署工具,除了用于本地测试,未来还可能用于做Kubemetes本身的CI集成测试。目前kind工具仍处于开发阶段,可以查看版本1.0的roadm叩。如kind的官方1.OgO所示,kind把Kubemetes的Node节点运行在DoCker容器上,因此需要提前安装DoCker。3 kopskops是
3、生产级别的Kubernetes集群部署、升级和管理命令行工具,它主要用于在公有云平台上通过Terraform自动创建虚拟机作为节点并自动化部署Kubernetes集群,目前官方支持的公有云平台为AWS,GCEDigitalOceanOpenStack目前处于beta阶段。国内fitcloud开源的KubeOperator也是一个类似的工具,通过WebUl在VMwareC)PenStaCk和物理机上规划、部署和运营生产级别的KUberneteS集群。4 kubesprayKubespray使用Ansible部署生产级别的Kubernetes集群。对于已经了解Ansible的人们来说,该工具是一个
4、不错的选择,因为无需使用其他工具进行预配和编排。5 kubeadmkubeadm是和Kubernetes一块发布的集群部署工具,与Kubernetes在同一个代码仓库中,因此可以说kubeadm是Kubernetes最亲的部署工具,目前使用最多的,同时也是社区最为推荐的Kubernetes部署工具。该工具的目标是实现尽可能简单地部署符合最佳实践、满足基本安全合规要求的KUbemeteS高可用集群,因此基本不需要太多的配置,就能快速的部署一套生产可用的Kubernetes集群。另外其实很多其他的部署工具也都是基于kubeadm实现的,前面提到的minikube、kind等工具都是基于kubead
5、m实现的。6部署工具对比除了以上介绍的部署工具,还有很多其他的部署工具,这些工具中:minikube和kind主要用于单机测试,一般不用于生产部署。kops主要用于在IaaS云平台上部署集群,如果在公有云上部署可以尝试使用这个工具。kubespray需要依赖Ansible自动化工具,如果熟悉Ansible可以尝试使用。kubeadm是Kubernetes项目自带的部署工具,社区最为推荐并且目前使用最多的工具,该工具基本不依赖外部工具,也基本不需要额外配置就可以快速搭建一个符合最佳实践的Kubernetes平台。附Kubernetes常用的工具集合在过去几年,Kubernetes在容器编排市场独
6、占鳌头。自2016年以来,DockerSwarm就退出了主要竞争者的行列,并且像AWS一样承诺对K8s进行支持和集成,换句话说,它承认了失败。目前,由Kubernetes作为首选的容器解决方案已迅速普及,因此,这里列出了所有K8s增强工具的综合清单,以进一步提升您的开发工作。Kubernetes集群部署KubesprayKubespray为Kubernetes的部署和配置提供了一组Ansible角色。Kubespray支持AWS、GCEAzure、OpenStack或裸机IaaS平台。Kubespray是具有开放开发模型的开源项目。由于无需使用其他工具进行配置和编排,因此对了解Ansible的
7、人来说,该工具是一个不错的选择。Kubespray基于kubeadm开发。MinikubeMinikube允许你在本地安装和试用Kuberneteso该工具是探索Kubernetes的一个很好的起点,它可以让你在笔记本电脑上的虚拟机(VM)中轻松启动单节点Kubernetes集群。Minikube在Windows1.inux和OSX上可用。只需5分钟,你就能探索Kubernetes的主要功能。只需一个命令即可直接启动Minikube控制台。Kubeadm自1.4版本以来,Kubeadm成为Kubemetes的发行工具。该工具是在已有基础架构上搭建Kubernetes集群的最佳实践。但是,Kub
8、eadm无法为您提供基础架构。它的主要优势是能够在任何地方部署最小的可用Kubernetes集群。不过,Kubeadm不包含其他附加组件和网络组件,因此你需要手动安装这些组件(或使用其他工具安装)。KopsKops可帮助你通过命令行创建、销毁、升级和维护生产级别的高可用Kubernetes集群。目前Kops正式版支持AmazonWebServices(AWS),beta版提供GCE支持,alpha版提供VMwarevSphere支持,其他平台的支持也在计划中。Kops允许您控制整个Kubernetes集群生命周期一一从基础架构配置到集群删除。BootkubeBootkube是一个用于启动自托管
9、Kubemetes集群的优秀工具。它可以帮助您设置一个临时的Kubemetes控制平面,该临时控制平面将一直运行到自托管控制平面能够处理请求为止。KubernetesonAWS(Kube-AWS)Kube-AWS是CoreOS提供的控制台工具,可使用AWSCloudFormation部署功能齐全的Kubernetes集群。Kube-AWS允许您部署传统的Kubernetes集群,并自动为每个K8s服务提供原生AWS功能(例如E1.B、S3和自动扩展等)。JAASJAAS(Juju即服务)可简化目前复杂软件的配置、扩展和操作。JUjU可以部署在任何地方,包括公共云和私有云。JAAS可将您的工作负
10、载部署到您选择的云平台中。Conjure-upConjure-up是另一种Canonical产品,它允许您使用一些简单的命令在Ubuntu上部署Kubernetes的Canonical发行版。它支持AWSGCE、AzureJOyent、C)PenStack、VMWare、裸机和本地主机等部署场景。ConjUre-UP基于Juju、MAAS和1.XD等基础技术。AmazonEKSAmazonEKS(AmazonElasticContainerService)是一项管理服务,你可以用它来轻松使用Kubernetes部署、管理和扩展容器化应用程序。AmaZonEKS跨多个AWS可用区管理您的Kube
11、rnetes基础架构,同时自动检测和替换不正常的控制节点,并提供按需升级和修补。你只需要配置工作节点并将它们连接到可用的AmazonEKS终端即可。监控工具KubeboxKubebox是一套用于Kubernetes集群的终端控制台,其能让用户通过美观且经典的界面对集群实时状态进行管理与监控。Kubebox能显示容器资源的使用情况、集群监控以及容器日志等。除此之外,用户还可借助Kubebox轻松导航到目标名称空间,并在目标容器中执行相关操作,借此以快速排故/恢复。KubernetesOperationalView(Kube-ops-view)Kube-ops-view是一款面向多个Kuberne
12、tes集群的系统监测面板。用户可通过Kube-ops-view导航到不同的K8s集群并监控节点以及pod健康状况,其还能够为部分Kubernetes过程提供动画效果,例如pod的创建与终止。Kube-ops-view也将Heapster作为其数据源。KubetailKubetail是一个小型bash脚本,其能够将来自于多个pod的日志聚合到同一数据流中。Kubetail的初始版本不提供过滤或高亮功能,但其目前已经在GitHub上添加了一个分支,该分支支持使用multitail工具构建日志并对日志着色。KubewatchKubewatch是一款Kubernetes监控工具,该产品可将Kubern
13、etes事件(events)发布到团队协作应用SlackoKubewatch以Pod形式运行于Kubernetes集群中,并监视系统中所发生的各种变化。此外,你可以通过编辑配置文件来指定需要接收的通知。WeaveScopeWeaveScope是一款面向Docker与Kubernetes集群的故障排除与监控工具,该工具可自动生成应用程序与基础架构拓扑,借此帮助,用户能轻松识别应用程序的性能瓶颈。用户可在本地服务器或笔记本电脑上将WeaveScope部署为独立应用程序,或者选用WeaveCloud上的WeaveScopeSaaS(软件即服务)解决方案。在WeaveScope的帮助下,用户可通过名称
14、、标签或资源消耗量对容器执行分组、筛选或搜索。PrometheusPrometheus已迅速成为Kubernetes监控的必备工具。它提供了多维数据模型以及用户可访问的格式和协议。在Kubernetes中公开Prometheus指标非常容易,抓取的数据可解释性强且易于阅读,并使用标准HTTP服务方式发布。SearchlightAppsCode推出的Searchlight是一款面向Icinga的Kubemetes监控工具。Searchlight会定期对Kubernetes集群执行各种检查,并会在发现问题后,通过电子邮件、短信或对话框发送警告信息。SearChlight包含专为Kubernetes
15、编写的默认检查套件。此外,其还能够通过联合外部黑盒子监控功能来增强Prometheus的监测性能,并在内部系统完全失效的情况下充当后备选项。CAdvisorCAdvisor默认安装在所有集群节点中,它采集Kubernetes运行容器和节点的资源使用指标。CAdvisorKubelet通过KubeletAPI(默认值分辨率为一分钟)公开这些指标。MetricsServer可识别所有可用节点并调用KubeletAPl以获取容器和节点的资源使用情况,然后通过Kubernetes的聚合APl公开这些指标。地址:Kube-state-metricskube-state-metrics通过监听Kubern
16、etes的APIserver即可从KubernetesAPl对象生成指标。它并不检查各个Kubemetes组件的运行状况,而是关注各种内部对象(如deployment节点和Pod)的运行状况。Sumo1.ogicAppSumo1.ogicKubernetes应用提供对集群中的工作节点及其应用程序日志的完整监控。该应用程序允许用户监视容器健康状况、副本、负载均衡、Pod状态和硬件资源分配并进行故障排除。该应用程序利用Falco事件来监视和检测异常的容器、应用程序、主机和网络活动。DynatraceDynatraceOneAgent具有容器感知功能,并内置支持对Kubernetes集群的开箱即用监视。Dynatrace为Kubernetes提供全栈监视,即从应用程序到基础架构层的监视。但是,如果您无权访问基础架构层,则