返回顶部
首页 > 资讯 > 精选 >Helm如何解决Kubernetes中部署应用的问题
  • 211
分享到

Helm如何解决Kubernetes中部署应用的问题

2023-06-04 15:06:07 211人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关Helm如何解决kubernetes中部署应用的问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、背景Kubernetes(k8s)是一个基于容器技术的分布式

这篇文章将为大家详细讲解有关Helm如何解决kubernetes中部署应用的问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

一、背景

Kubernetes(k8s)是一个基于容器技术的分布式架构领先方案。它在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

在容器云环境及容器化服务在业界开始大规模部署应用的前提下,Kubernetes在业界的实际应用情况又是怎样的呢?在今年召开的JFrog SwampUp用户大会上,Codefresh公司为大家展示了一些有意思的数据。如下图:

Helm如何解决Kubernetes中部署应用的问题

据Codefresh公司统计,在目前JFrog的企业用户当中,有80%已经使用了Kubernetes,这说明Kubernetes已经得到了业界的认可并开始了广泛的应用。然而,只有5%的JFrog用户在生产环境中使用Kubernetes。也就是说,企业更多的只是在自己的研发、测试环境中去使用 Kubernetes。这是什么原因呢?JFrog通过自身在Kubernetes应用上的大量实践证明,“Kubernetes is hard”,直接使用Kubernetes去部署和管理容器化的云服务,尤其是基于微服务的云服务,是非常具有挑战性的工作。

那如何才能更便捷地应用Kubernetes呢?JFrog选择了Helm,Kubernetes的官方包管理工具。我们再来看Codefresh提供的另一组数据,如下图:

Helm如何解决Kubernetes中部署应用的问题

和上一组数据一样,只有5%的JFrog企业用户在生产环境使用了Kubernetes。但同时,也有5%的JFrog用户使用了Helm。可见,当把Kubernetes应用到生产环境的时候,众多企业也和JFrog一样,选择了Helm这一“利器”。

为什么Helm会受到这样的青睐?本文将通过JFrog实施Helm和Kubernetes的实践来介绍和分析Helm的优势所在。

二、Helm是什么

在介绍Helm之前,我们先来看看直接应用Kubernetes部署云服务会遇到哪些困难。

Helm如何解决Kubernetes中部署应用的问题

Kubernetes使用yaml文件来描述和管理服务中各个组件的配置和部署需求,每个组件对应一个yaml文件。当下的云服务通常都是由多个组件构成的,如何配置和处理好这些组件,也就是多个yaml文件之间的关联关系,成为了Kubernetes应用的额外任务。而当云服务升级,却仅仅涉及其中一个或某几个模块时,升级模块的新yaml文件和已有yaml文件之间的关联关系就会变得更加错综复杂,从而更增加了使用Kubernetes来配置和管理升级的难度。

其次,Kubernetes把组件的配置信息也直接记录到yaml文件当中。从描述组件的角度来讲,这种方式确实比较清晰。但是,当云服务的部署面对多个环境,如不同的开发、测试、产品环境(这也是当前比较常见的应用场景)时,要如何处理这些环境配置之间的差别?要为每个环境都开发和维护一套不同的yaml文件?这显然大大增加了应用Kubernetes的难度和工作量。

而且,Kubernetes的yaml文件本身是没有版本的概念的。那么当某次部署失败,需要回滚到上一个稳定版本时,该选择哪一套yaml文件来处理?显然,这需要很多额外的工作来处理。

那Helm是如何来解决这些问题的呢?

Helm如何解决Kubernetes中部署应用的问题

Helm(https://helm.sh)是Kubernetes的官方包管理工具。Helm是通过被称作Helm Chart的包来描述和管理云服务的。Helm Chart对应的是一组结构化的目录和yaml文件,而这些目录和文件大致可分为三个部分:

Helm如何解决Kubernetes中部署应用的问题

1、模板

在templates目录下存放着一组用来描述云服务当中各个组件的yaml文件,这和目前Kubernetes的用法类似。Helm把这些yaml文件组织在同一目录,能够很方便地了解当前云服务的组成,结构清晰且便于管理。

2、配置与依赖

templates目录下的yaml文件是不包含具体的配置信息的,只保留了对配置项(key)的引用。真正与目标环境对应的配置信息(value)是存储在values.yaml文件里的。当然,values.yaml只是存储了一些缺省的、静态的配置信息,在部署的过程中也可以动态地增加或修改这些配置信息。这种配置与应用分离的设计使得同一套templates可以方便地部署到不同的目标环境中,只需要更新values.yaml文件或部署时动态修改配置信息就可以了。

另外,针对某些已被广泛使用的云服务或组件,目前已经存在比较成熟、经过验证的Helm Chart了。当使用到这些服务或组件时,可以直接在requirements.yaml文件里描述这种依赖关系。在部署的时候,Helm会自动获取这些依赖的Helm Chart使用,并存储在charts目录。这种依赖性的设计,避免了很多重复性的工作,也使得Helm Chart的并行开发和共享成为可能。

Helm如何解决Kubernetes中部署应用的问题

3、版本化

每一个Helm Chart包都可以在Chart.yaml文件里定义自己的版本。另外,每一次 Helm的部署都会自动生成一个版本(release)。使用Helm的命令,可以方便地实现这些已部署版本的查询、升级、回滚和其他管理任务。

三、Helm的应用实践

通过上面对Helm的介绍和分析可以看出,Helm能够很好地解决Kubernetes应用部署的难题。JFrog在自己的Kubernetes实践当中也充分使用了Helm。

Helm如何解决Kubernetes中部署应用的问题

目前,在JFrog各个产品自身的CI/CD流水线上都使用Helm进行Kubernetes上的部署,已经可以实现每周100+不同产品线的任意版本组合部署,每次部署超过50种微服务。JFrog也将为客户提供这些Helm Chart,以帮助客户在Kubernetes环境快速部署JFrog的各种产品。

在实践Helm的过程中,JFrog也积累了一些经验和最佳实践。

Helm如何解决Kubernetes中部署应用的问题

1、配置与应用分离

针对所有的环境使用同样的Helm Chart,但是根据不同的环境配置自己特定的values.yaml文件。同时,根据目标环境的变化对这些values.yaml文件进行版本化的管理。

2、善用依赖

目前已经有很多产品和通用组件都实现了比较完善、经过验证的Helm Chart,可以在Https://hub.kubeapps.com里找到。我们在开发自己的Helm Chart时,可以通过定义依赖来充分地利用这些已有的成果,在减少工作量的同时,也能提高产品的质量。

Helm如何解决Kubernetes中部署应用的问题

3、在实际部署前检查Helm Chart

Helm提供了很多实用的命令来帮助我们在实际部署之前检查Helm Chart里的错误,降低使用的风险。比如:

Helm如何解决Kubernetes中部署应用的问题

·       helm lint <chart path>

helm lint可以用来检查下载的Helm Chart是否存在问题

·       helm install –debug –dry-run <chart>

helm install带上dry-run参数可以在不实际执行部署的情况下检查Helm Chart的各种配置是否正确

Helm的各种命令及其具体用法请参考Helm的官方文档,https://docs.helm.sh。

4、充分利用社区的力量

目前有很多开发者都在研究和实践Helm,我们应该充分利用他们的经验和成果,并积极地和他们沟通交流,从而提升我们使用Helm的效率和质量。

Helm如何解决Kubernetes中部署应用的问题

常用的用于Helm交流的社区包括:

·       GitHub issues: https://github.com/helm/charts/issues

·       Slack: #helm-users room in the Kubernetes Slack (https://kubernetes.slack.com/)

·       Slack: #helm-dev room in the Kubernetes Slack (https://kubernetes.slack.com/)

四、Helm仓库

下图是Helm的应用架构:

Helm如何解决Kubernetes中部署应用的问题

其中,Tiller部署在Kubernetes环境中,执行应用部署等操作。而Helm作为客户端,完成Helm Chart的管理和部署任务的发布。在这个架构中,Helm仓库(Storage)保存了Helm部署所需要的各种Chart文件、依赖包和配置信息,在Helm部署过程中起到了十分重要的作用。

JFrog的Artifactory产品,作为全球唯一提供Helm仓库支持的统一制品管理仓库,可以在为Helm Chart提供仓库支持的同时,为相关制品,如docker镜像、版本化的配置信息,以及各种依赖制品等提供一站式的统一服务和管理。而JFrog的Xray产品,集成Artifactory的统一制品仓库,能够实现安全漏洞的自动扫描及漏洞的影响范围分析。

Helm如何解决Kubernetes中部署应用的问题

有关JFrog产品的详细介绍、能力分析及用户案例,请参考本公众号的系列文章和官网的相关介绍(http://jfroGChina.com)。

五、总结

通过Kubernetes部署云服务已经在业界的到了广泛的应用。Helm通过其统一管理、配置与应用分离、版本化等特性能够大大降低Kubernetes部署的难度,提升部署的效率和质量,也逐渐得到了众多的关注和应用。

JFrog的Artifactory和Xray等产品能够提供包含Helm仓库在内的统一制品仓库管理和安全漏洞扫描,在实现基于Helm的CI/CD流水线和自动化部署方案起到了重要的作用。Codefresh公司就利用JFrog的产品和相关工具搭建了自己产品的流水线并广泛使用。

Helm如何解决Kubernetes中部署应用的问题

关于Helm如何解决Kubernetes中部署应用的问题就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Helm如何解决Kubernetes中部署应用的问题

本文链接: https://lsjlt.com/news/238420.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Helm如何解决Kubernetes中部署应用的问题
    这篇文章将为大家详细讲解有关Helm如何解决Kubernetes中部署应用的问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、背景Kubernetes(k8s)是一个基于容器技术的分布式...
    99+
    2023-06-04
  • Kubernetes应用部署问题怎么处理
    这篇文章主要讲解了“Kubernetes应用部署问题怎么处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Kubernetes应用部署问题怎么处理”吧!1、应用部署问题处理的整体思路在将容器...
    99+
    2023-06-04
  • 如何解决PHP开发中的运维和部署问题
    随着互联网的迅猛发展,PHP作为一种常用的编程语言,在web开发中得到了广泛应用。然而,在PHP开发过程中,运维和部署问题常常会给开发人员带来一些困扰。本文将介绍一些解决PHP开发中运维和部署问题的方法,并提供具体的代码示例。自动化部署手动...
    99+
    2023-10-21
    运维 部署 PHP开发
  • kubernetes中istio-1.0.0如何部署和试用
    小编给大家分享一下kubernetes中istio-1.0.0如何部署和试用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一:简介本文介绍如何在kubernetes1.10.4集群中部署istio-1.0.0 并试用ist...
    99+
    2023-06-04
  • 如何解决vue-cli3使用子目录部署问题
    这篇文章主要介绍了如何解决vue-cli3使用子目录部署问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在使用 vue-cli3 buil...
    99+
    2024-04-02
  • Kubernetes中如何使用Rancher部署K8S集群
    本篇文章给大家分享的是有关Kubernetes中如何使用Rancher部署K8S集群,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.安装Rancher这里使用三台机器来搭建K...
    99+
    2023-06-19
  • 如何解决vue项目部署上线遇到的问题
    这篇文章将为大家详细讲解有关如何解决vue项目部署上线遇到的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。流程     1.服...
    99+
    2024-04-02
  • 解决redis在linux上的部署的问题
    1.在官网下载Linux版本redis 2.拷贝到linux服务器上,解压到指定目录 3.解压后得到redis文件夹-----移动到自己知道的文件位置 4.注:redis是c语言编写...
    99+
    2024-04-02
  • pytorch部署到jupyter中的问题及解决方案
    目录pytorch部署到jupyter中两种解决方案pytorch部署到jupyter中 在安装Aconda的同时,会将jupyter notebook一起安装,不过这里的jupy...
    99+
    2024-04-02
  • SAP部署应用时遇到disk quota不够的问题怎么解决
    这篇文章主要介绍“SAP部署应用时遇到disk quota不够的问题怎么解决”,在日常操作中,相信很多人在SAP部署应用时遇到disk quota不够的问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-04
  • 如何在Kubernetes 上部署安装PHP + Nginx 多容器应用
    引言 Kubernetes是一个开源的容器编排系统。它允许你创建、更新和扩展容器,而无需担心停机。 要运行一个PHP应用程序,Nginx充当PHP-FPM的代理。将此设置打包到单个容器中可能是一个繁琐...
    99+
    2023-09-06
    kubernetes ubuntu php
  • tomcat无法部署应用目录如何解决
    Tomcat无法部署应用目录的问题可能有多种原因。以下是一些可能的解决方法:1. 检查文件权限:确保Tomcat用户对应用目录具有正...
    99+
    2023-10-09
    tomcat
  • 如何使用 ASP 网站部署工具解决网站部署难题
    ASP Website Deployment Tool是一个微软官方提供的ASP网站部署工具,它可以帮助开发者轻松地将ASP网站部署到生产环境,无需手动执行复杂的部署步骤。该工具支持多种部署方式,包括FTP、UNC路径、WebDeploy...
    99+
    2024-02-07
    ASP 网站部署 部署工具 自动化部署 生产环境
  • 如何解决Go语言中的并发任务的部署和运维问题?
    如何解决Go语言中的并发任务的部署和运维问题?摘要:Go语言的并发性使其成为处理大规模任务的理想语言。然而,随着任务数量的增加,部署和运维成为一个挑战。本文将讨论如何解决Go语言中并发任务的部署和运维问题,提供具体的代码示例。引言:Go语言...
    99+
    2023-10-22
    运维 部署 并发任务
  • docker中如何部署nginx应用
    在 Docker 中部署 Nginx 应用通常需要以下步骤: 创建 Nginx 配置文件:首先,创建一个 Nginx 配置文件,...
    99+
    2024-04-08
    nginx
  • 如何解决Ajax应用中的session过期问题
    这篇文章主要讲解了“如何解决Ajax应用中的session过期问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决Ajax应用中的session过期问...
    99+
    2024-04-02
  • 部署Stable diffusion遇到的一个问题解决
    前两天自己在服务器上搞了一下stable diffusion,碰到过一个问题,当时搜了半天没找到好的方法,后来我想了下给解决了,觉得还是来记录一下,如果其他人也正巧遇到的话看到这个可以方便解决,当然,...
    99+
    2023-09-04
    stable diffusion python pytorch
  • 如何解决pos.baidu.com的响应问题
    本篇内容主要讲解“如何解决pos.baidu.com的响应问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决pos.baidu.com的响应问题”吧!最近很多人反应 编程网打不开,其实都...
    99+
    2023-06-10
  • Azure中部署Sqlserver网络无法访问如何解决
    这期内容当中小编将会给大家带来有关Azure中部署Sqlserver网络无法访问如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.在“开始”菜单中,单击“运行”,...
    99+
    2024-04-02
  • 如何解决Dreamweaver中关于应用CSS的小问题
    这篇文章主要介绍了如何解决Dreamweaver中关于应用CSS的小问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  Dreamweaver是集网页制作和管理网站于一身的...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作