内容简介:【51CTO.com快译】如今,Kubernetes已成为了业界一种调整与部署容器化应用的标准方式。不过对于非资深的开发人员而言,Kubernetes实在是太复杂、太混乱、也太难管理了。如果说Kubernetes能够帮助我们调教(调整)庞大而复杂的容器部署,那么谁有来帮助我们调教Kubernetes呢?随着Kubernetes的发展与改进,许多人都在尝试着运用自己的解决方案,让Kubernetes变得更加易用,同时也能够解决Kubernetes在生产环境中出现的各种常见问题。
【51CTO.com快译】如今,Kubernetes已成为了业界一种调整与部署容器化应用的标准方式。不过对于非资深的开发人员而言,Kubernetes实在是太复杂、太混乱、也太难管理了。如果说Kubernetes能够帮助我们调教(调整)庞大而复杂的容器部署,那么谁有来帮助我们调教Kubernetes呢?
随着Kubernetes的发展与改进,许多人都在尝试着运用自己的解决方案,让Kubernetes变得更加易用,同时也能够解决Kubernetes在生产环境中出现的各种常见问题。
下面我们将要重点介绍19款项目工具,它们分别从简化命令行的交互、应用部署的语法、与AWS的集成、以及在多个集群中新增Windows等方面,来简化Kubernetes。
Bitnami Cabin :适合于iOS和Android的Kubernetes仪表盘
如今的Web应用或服务,都无不为用户提供着各种形式的移动接口。因此,Cabin为Kubernetes管理员提供了一个可以通过使用iOS或Android手机,去访问Kubernetes仪表盘的版本。在Cabin上,您可以用到Kubernetes仪表盘的几乎所有功能,其中包括Helm图表、扩容部署、读取各种pod日志、以及访问由Kubernetes托管的、基于Web的应用程序等。
Goldpinger :可视化的Kubernetes集群
人类是视觉动物,因此图形和图表能让我们更容易掌握全局。而鉴于Kubernetes集群的规模和复杂性,我们更需要有可视化的帮助。
由Bloomberg(彭博)的科技部门带来的Goldpinger,是一款能够运行在Kubernetes的集群中,并以互动视图的形式显示节点间关系的简单工具。在图中,健康的节点被显示为绿色、不健康的则为红色。而节点在被点击时会出现详情信息。您可以通过使用Swagger来定制API,进而添加各种报表、指标、以及对其他集成元素进行滚动操作。
Kedge :简明的Kubernetes部署定义
有过开发经验的读者一定知道,针对Kubernetes最常见的抱怨莫过于其本身的复杂性、冗长的清单(manifests)、以及应用的各种定义。而对它们的写操作、以及维护,则更是让人苦不堪言。作为第三方工具,Kedge提供了更简单、更简洁的语法。您只需要提供Kubernetes定义文件的简单版本给Kedge,它就能将这些简单定义,扩展成为相应的Kubernetes全量定义。不像下文将要提到的Koki Short,Kedge并不会为了其定义文件而使用模块化的语法,它只是将各种应用定义归结成了各种常见的快捷方式。
Koki Short :可管理的Kubernetes清单
类似于上面提到的Kedge,Koki Short项目旨在改进Kubernetes中应用定义的方式和清单。同样类似于Kedge的定义,Short能够将那些使用缩略语法来描述的各种Kubernetes pod,翻译成对应的全量语法。不过,与Kedge定义的不同之处在于:Short的定义是模块化的。这就意味着某个Short定义可以被重用到他处,因此带有共同元素的多个pod可以得到简单定义。
Kops :Kubernetes集群的命令行ops
由Kubernetes团队开发的Kops能够让您通过命令行来管理Kubernetes集群。同时,它能够支持运行在AWS和GCE(译者注:Google Compute Engine)上,以及在VMware的vSphere和其他环境中的集群。除了能够自动化地安装与拆分各种进程之外,Kops还有助于实现其他类型的自动化。例如:它可以生成Terraform配置,以允许某个集群通过使用Terraform,来被重新部署。
Kubebox :Kubernetes的终端控制台
针对Kubernetes的高级终端控制台—Kubebox,不仅能够提供Kubernetes的 shell 及其API,还能提供CPU与内存的利用率、Pod列表、运行日志和各种配置编辑器。而且最重要的是,它可以作为一种支持 Linux 、Windows和MacOS的独立应用提供服务。
KubeDB :运行在Kubernetes中的数据库
由于各种原生的Kubernetes功能集,并没有真正解决与数据库相关的大量具体问题,因此数据库一般很难能够在Kubernetes中“优雅”地运行。
而KubeDB却能够允许管理员创建各种用来管理数据库的Kubernetes operator。它们可以执行备份、克隆、监控、快照、以及创建各种数据库。不过,它只能在部分数据库上(如PostgreSQL,而非MySQL)支持集群。。
Kube-monkey :Kubernetes的Chaos Monkey
对系统进行压力测试的一种最保险的方法是对它随机“施压”。这就是Netflix的Chaos Monkey背后的理论(请详见https://github.com/Netflix/chaosmonkey)。该混乱引擎工具,能够随机终止生产环境中的各种虚拟机和容器,以“鼓励”开发人员构建出各种更灵活的系统。根据对于Kubernetes集群的压力测试基本理念,Kube-monkey能够通过在指定的集群中随机终止pod,从而在特定的时间窗口内进行各种调优操作。
Kube-ps1 :智能的Kubernetes命令提示符
Kube-ps1并非Sony PlayStation为Kubernetes开发的第一代模拟器。它可以通过Bash的命令行显示当前Kubernetes的上下文和命名空间。Kube-shell虽然包含许多功能,但它也给系统带来了一定的开销。
Kube-prompt :交互式Kubernetes客户端
另一款对于Kubernetes CLI实施的最小却又十分有用的修改是Kube-prompt。它允许您设定需要与Kubernetes客户端进行交互式命令的会话数量。它省去了您在每一个命令不得不前添加的kubectl前缀,而且它能够根据每个命令的上下文信息进行参数自动补足。
链接:
Kube-shell :Kubernetes CLI的shell
Kube-shell将标准的Kubernetes命令行集成到了一个shell之中,进而提供各种具有自动完成和自动提示的公共命令。同时,它也能为您提供强大的命令历史记录功能,vi风格的编辑模式,与用户、命名空间、集群相关的上下文信息,以及其他特定的安装细节。
Kubespy :对Kubernetes资源的实时监控
Pulumi的Kubespy是一种诊断工具,它允许您跟踪Kubernetes资源的实时变化。同时,它也能够为您提供一种文本视图的仪表盘界面。例如,您可以在pod启动时,观察其状态的变化。即:pod定义被写入Etcd -> pod被调度到一个节点上 -> 该节点的Kubelet创建pod -> pod终于被标记为运行的状态。Kubespy既可以作为一个独立的二进制文件被运行,有可以作为Kubectl的插件。
AWS的Kubernetes Ingress Controller
Kubernetes通过一个名为Ingress的服务(请参见https://kubernetes.io/docs/concepts/services-networking/ingress/),向集群提供外部的负载均衡和各种网络服务。虽然Amazon Web Services本身就能够提供负载均衡功能,但是它不会将这些服务与Kubernetes的设施进行自动相连。AWS的Kubernetes Ingress Controller正好填补了该缺口。Ingress Controller能自动管理群集中每个Ingress对象的AWS资源,为新的入口资源创建负载均衡器,删除已去除资源的负载均衡器,并利用AWS CloudFormation实现群集的一致性。另外,它还能自动管理集群中正在使用的,诸如SSL证书和EC2自动扩展组(Auto Scaling Groups)之类的其他元素。
Kube-ops-view :多个Kubernetes集群的仪表盘
Kubernetes为通用监控提供了一种实用的仪表盘,但是Kubernetes社区却致力于用其他方式,向Kubernetes管理员提供更加有用的数据。Kube-ops-view就是其中的一种方式。它能够一站式地以图形方式呈现多个Kubernetes集群的全貌,因此您可以一眼了解到集群中的CPU和内存使用率,以及各种pod的状态。虽然它不允许您去调用任何指令,但是其高效、完善的可视性很适合被投影到运营中心的大屏幕上。
Skaffold :为Kubernetes进行迭代开发
Skaffold是Google针对Kubernetes各种应用的持续部署,而打造的一款工具。当您在变更源代码的同时,Skaffold会自动检测它们,或是直接触发构建和部署的过程,或是根据各种错误接口向您发出警告。Skaffold完全可以运行在用户的客户端上。它既可以在现有的CI/CD管道中被使用,又可以与Bazel之类的外部构建 工具 相集成。
Stern和Kubetail :Kubernetes的日志跟踪
Stern能够根据tail命令,为您生成有关Kubernetes pod和容器的不同颜色输出。它方便了用户通过单一数据流,一站式地了解来自多个资源的输出。
类似Stern,Kubetail也能够将来自多个pod的日志聚合成单个数据流,并以不同的颜色来表示各种pod与容器。Kubetail使用的是Bash脚本,因此它需要有一个shell环境。
Teresa :Kubernetes上的简单PaaS
Teresa是一款能够在Kubernetes上,作为简单PaaS运行的应用程序部署系统。它的用户可以在平台上部署和管理属于自己的应用。这对于那些只想关注特定应用,而无想法与Kubernetes直接打交道的人来说,提供了极大的便利。
Tilt : Kubernetes集群的流式容器更新
由Windmill Engineering开发的Tilt,能够通过实时监控Dockerfiles的变更,然后将这些变更逐步部署到某个Kubernetes集群中所对应的容器上。从本质上讲,它允许开发人员通过只更新Dockerfile的方式,实时地更新某个在线的集群。由于Tilt仅在集群内部执行构建,因此它只会推送源代码的变更部分。
原文标题:19 tools to tame Kubernetes deployments,作者:Serdar Yegulalp
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- linux 部署golang 项目(直接部署和基于nginx部署)
- 部署策略对比:蓝绿部署、金丝雀发布及其他
- 使用Docker容器化部署实践之Django应用部署(一)
- 【前端打包部署】谈一谈我在SPA项目打包=>部署的处理
- 「实战篇」开源项目docker化运维部署-后端java部署(七)
- Kubernetes 中的渐进式交付:蓝绿部署和金丝雀部署
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Numerical Methods and Methods of Approximation in Science and En
Karan Surana / CRC Press / 2018-10-31
ABOUT THIS BOOK Numerical Methods and Methods of Approximation in Science and Engineering prepares students and other readers for advanced studies involving applied numerical and computational anal......一起来看看 《Numerical Methods and Methods of Approximation in Science and En》 这本书的介绍吧!