当前位置: 首页 > 科技观察

调教Kubernetes部署的19款工具

时间:2023-03-20 00:15:58 科技观察

19用于调整Kubernetes部署的工具但是对于非高级开发人员来说,Kubernetes太复杂、太混乱、太难管理。如果Kubernetes可以帮助我们调整(调整)大型和复杂的容器部署,那么谁可以帮助我们调整Kubernetes?随着Kubernetes的发展和完善,很多人都在尝试用自己的解决方案,让Kubernetes变得更易用,同时也能解决Kubernetes生产环境中的各种常见问题。下面我们将重点介绍19个项目工具,它们从简化命令行交互、应用程序部署语法、与AWS集成以及在多个集群中添加Windows等方面简化了Kubernetes。BitnamiCabin:KubernetesDashboardforiOSandAndroid今天的网络应用程序或服务都为用户提供各种形式的移动界面。因此,Cabin提供了Kubernetes管理员通过iOS或Android手机访问Kubernetesdashboard的版本。在Cabin上,您几乎可以使用Kubernetes仪表板的所有功能,包括Helm图表、缩放部署、读取各种pod日志以及访问Kubernetes托管的基于Web的应用程序。Goldpinger:可视化Kubernetes集群人类是视觉动物,因此图形和图表使我们更容易掌握全局。鉴于Kubernetes集群的规模和复杂性,我们需要可视化的帮助。Bloomberg技术部门带来的Goldpinger是一个简单的工具,可以运行在Kubernetes集群中,以交互视图的形式展示节点之间的关系。在图中,健康节点显示为绿色,不健康节点显示为红色。单击节点时将显示详细信息。您可以使用Swagger自定义API,在其他集成元素上添加各种报表、指标和滚动操作。Kedge:简洁的Kubernetes部署定义有开发经验的读者一定知道,关于Kubernetes最常见的抱怨是其自身的复杂性、冗长的清单以及应用程序的各种定义。他们的写运维就更惨了。作为第三方工具,Kedge提供了更简单、更简洁的语法。你只需要提供简单版本的Kubernetes定义文件给Kedge,它可以将这些简单的定义扩展成相应的完整Kubernetes定义。与下文将要提到的KokiShort不同,Kedge的定义文件并没有使用模块化的语法,它只是将各种应用程序定义归结为各种常用的快捷方式。KokiShort:可管理的Kubernetes清单与上述Kedge类似,KokiShort项目旨在改进Kubernetes中应用程序定义的方式和清单。同样类似于Kedge的定义,Short可以将使用缩写语法描述的各种KubernetesPod翻译成相应的完整语法。但是,与Kedge的定义不同的是Short的定义是模块化的。这意味着Short定义可以在其他地方重复使用,因此可以简单地定义具有共同元素的多个pod。Kops:Kubernetes集群的命令行操作Kops由Kubernetes团队开发,允许您通过命令行管理Kubernetes集群。同时,它可以支持运行在AWS和GCE(译者注:GoogleComputeEngine)以及VMware的vSphere等环境中的集群。除了能够自动安装和拆卸各种流程之外,Kops还促进了其他类型的自动化。例如:它可以生成Terraform配置以允许使用Terraform重新部署集群。Kubebox:Kubernetes终端控制台Kubebox是Kubernetes的高级终端控制台,不仅提供Kubernetesshell及其API,还提供CPU和内存利用率、Pod列表、运行日志和各种配置编辑器。最重要的是,它可以作为支持Linux、Windows和MacOS的独立应用程序使用。KubeDB:运行在Kubernetes中的数据库由于Kubernetes原生的各种特性集,并没有真正解决大量与数据库相关的具体问题,所以数据库一般很难“优雅”地运行在Kubernetes中。另一方面,KubeDB允许管理员创建各种Kubernetes操作符来管理数据库。他们可以执行备份、克隆、监控、快照和创建各种数据库。但是,它只支持在某些数据库上进行集群(例如PostgreSQL,不支持MySQL)。.Kube-monkey:用于Kubernetes的ChaosMonkey对系统进行压力测试的最安全方法之一是对其进行随机“压力”测试。这是Netflix的ChaosMonkey背后的理论(有关详细信息,请参见https://github.com/Netflix/chaosmonkey)。混沌引擎工具可以随机终止生产环境中的各种虚拟机和容器,以“鼓励”开发者构建各种更灵活的系统。根据Kubernetes集群压力测试的基本概念,Kube-monkey可以通过随机终止指定集群中的pod,在特定时间窗口内进行各种调优操作。Kube-ps1:智能Kubernetes命令提示符Kube-ps1不是SonyPlayStation开发的第一代Kubernetes模拟器。它可以通过Bash命令行显示当前的Kubernetes上下文和命名空间。Kube-shell虽然包含了很多功能,但是也给系统带来了一定的开销。Kube-prompt:交互式Kubernetes客户端对KubernetesCLI实现的另一个最小但有用的修改是Kube-prompt。它允许您设置需要与Kubernetes客户端交互命令的会话数。它省去了你在每条命令前必须加的kubectl前缀,它可以根据每条命令的上下文信息自动补全参数。链接:Kube-shell:KubernetesCLI的shellKube-shell将标准的Kubernetes命令行集成到一个shell中,然后提供各种常用命令自动补全和自动提示。同时,它还可以为您提供强大的命令历史记录功能、vi风格的编辑模式、与用户、命名空间、集群和其他特定安装细节相关的上下文信息。Kubespy:实时监控Kubernetes资源Pulumi的Kubespy是一个诊断工具,可以让你跟踪Kubernetes资源的实时变化。同时,它还可以为您提供文本视图的仪表盘界面。例如,您可以观察Pod启动时的状态变化。即:pod定义写入Etcd->pod被调度到某个节点->该节点的kubelet创建pod->最终将pod标记为running。Kubespy可以作为独立的二进制文件运行,也可以作为Kubectl的插件运行。AWS的KubernetesIngressControllerKubernetes通过名为Ingress的服务为集群提供外部负载平衡和各种网络服务(参见https://kubernetes.io/docs/concepts/services-networking/ingress/)。虽然AmazonWebServices本身提供负载平衡,但它不会自动将这些服务连接到Kubernetes基础设施。AWS的KubernetesIngressController填补了这一空白。IngressController可以自动管理集群中每个Ingress对象的AWS资源,为新的ingress资源创建负载均衡器,删除移除资源的负载均衡器,并使用AWSCloudFormation实现集群一致性。此外,它还会自动管理集群中使用的其他元素,例如SSL证书和EC2AutoScaling组。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命令为您生成有关Kubernetespod和容器的不同颜色的输出。它有助于用户通过单个数据流了解一个地方多个来源的输出。与Stern一样,Kubetail也可以将来自多个pod的日志聚合成一个数据流,并使用不同的颜色来表示各种pod和容器。Kubetail使用Bash脚本,所以它需要一个shell环境。Teresa:Kubernetes上的简单PaaSTeresa是一个在Kubernetes上作为简单PaaS运行的应用程序部署系统。它的用户可以在平台上部署和管理自己的应用程序。这为那些只想专注于特定应用而没有直接与Kubernetes打交道的想法提供了极大的便利。Tilt:为Kubernetes集群流式处理容器更新Tilt由WindmillEngineering开发,可以实时监控Dockerfiles的变化,然后逐步将这些变化部署到Kubernetes集群中的相应容器中。本质上,它允许开发人员仅通过更新Dockerfile来实时更新实时集群。由于Tilt仅在集群内部执行构建,因此它仅将更改推送到源代码。原标题:驯服Kubernetes部署的19个工具,作者:SerdarYegulalp