百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 博客教程 > 正文

从Helm Kubernetes Package Manager开始

connygpt 2024-09-09 03:08 9 浏览

如果你刚刚开始使用Kubernetes,你可能已经发现为应用程序创建完整的堆栈清单是多么具有挑战性。你花时间熟悉应用程序和服务的部署方式,这会变得容易得多,但即便如此,编写完整的清单也可能是一项艰巨的任务。


这就是Helm发挥作用的地方。Helm是Kubernetes的包管理器和应用程序管理工具,使部署应用程序和服务变得相当容易。


可以把Helm想象成Kubernetes式的apt或dnf。使用此应用程序,你可以更轻松地将预构建的应用程序部署(甚至自定义)到Kubernetes集群。


Helm背后的神奇之处在于Helm Charts,它是一个预先配置的资源的打包集合,用于部署应用程序和服务。通过使用Helm,你可以显著提高Kubernetes的生产效率,同时也可以更轻松地一次又一次地重新创建成功的部署。


让我们了解一下安装Helm的过程,使用它查找并下载Helm chart,然后使用这些chart将应用程序部署到Kubernetes集群。


Helm Chart


让我们先谈谈Helm chart的结构。典型的Helm chart由以下文件组成:


——.helmignore–:包含打包chart时将被忽略的所有文件。


——Chart.yaml:包含有关正在打包的chart的所有信息(例如类型、版本和appVersion)。


——Values.yaml:包含要注入模板的所有定义。


——charts:包含chart所依赖的其他charts的目录。


——templates:存放要部署的清单的目录。


创建或下载chart后,目录结构可能如下所示:

├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── hpa.yaml
│ ├── ingress.yaml
│ ├── NOTES.txt
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml


安装Helm


在安装Helm之前,你必须首先确保你已经安装了Kubernetes。一旦Kubernetes启动并运行,就可以安装Helm了。


Helm的安装非常简单。登录到Kubernetes机器(你将从中开发)并发出以下命令:

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 |bash


系统会提示你输入管理员密码。一旦成功验证,安装将启动并完成。然后,你可以使用以下命令验证安装:

helm version --short


你应该看到:

v3.8.1+g5cb9af4


这表明,Helm已经安装好了。


下载稳定存储库


下一个任务是下载稳定的存储库(其中包含大量预先配置的Helm charts)。要执行此操作,请发出以下命令:

helm repo add stable https://charts.helm.sh/stable


使用以下命令测试以确保已成功下载存储库:

helm repo list


你应该看到:

1

2

NAME URL

stable https://charts.helm.sh/stable

如何在存储库中搜索chart

如果你想了解稳定存储库中有哪些chart可用,请发出以下命令:

helm search repo stable


当你运行该搜索命令时,你将看到大多数chart都已弃用(图1)。



图1:在稳定存储库中发现的弃用Helm charts。


其原因是CNCF不再愿意支付单个集中式存储库的成本上升。因此,这些chart现在通过几个不同的组织托管在不同的存储库中。


幸运的是,在ArtifactHub中有一个解决方案。在这个网站上,你可以搜索任何你想象得到的Helm chart。


例如,假设想下载Kubernetes仪表板的Helm char,可以去ArtifactHub,搜索该应用程序,然后查看chart的所有必要信息。甚至还有一个安装链接,弹出一个窗口,提供安装repo和图chart所需的命令(图2)。



图2:Kubernetes仪表板的安装说明。


要安装Helm chart,首先使用以下命令添加存储库:

helm repo add k8s-dashboard https://kubernetes.github.io/dashboard


立即用以下内容更新存储库:

helm repo update


使用以下内容搜索新添加的存储库:

helm search repo k8s-dashboard


你应该看到存储库中包含的所有应用程序(在本例中,只有一个)。


添加存储库后,使用以下内容安装chart:

helm install my-kubernetes-dashboard k8s-dashboard/kubernetes-dashboard --version 5.3.1


my kubernetes dashboard是你为chart指定的唯一名称(这使得可以多次下载chart)。下载chart可能需要一些时间(取决于文件的大小和数量)。


在~/。cache/helm/repository/directory,你应该会看到kubernetes-dashboard-5.3.1.tgz文件。使用以下命令解压缩该文件:

tar xvzf ~/.cache/helm/repository/kubernetes-dashboard-5.3.1.tgz


现在,ni 应该在当前工作目录中看到一个新目录kubernetes dashboard。该目录的结构如下所示:

├── Chart.lock
├── charts
│ └── metrics-server
│ ├── Chart.yaml
│ ├── ci
│ │ └── ci-values.yaml
│ ├── README.md
│ ├── templates
│ │ ├── apiservice.yaml
│ │ ├── clusterrole-aggregated-reader.yaml
│ │ ├── clusterrolebinding-auth-delegator.yaml
│ │ ├── clusterrolebinding.yaml
│ │ ├── clusterrole.yaml
│ │ ├── deployment.yaml
│ │ ├── _helpers.tpl
│ │ ├── NOTES.txt
│ │ ├── pdb.yaml
│ │ ├── psp.yaml
│ │ ├── rolebinding.yaml
│ │ ├── serviceaccount.yaml
│ │ └── service.yaml
│ └── values.yaml
├── Chart.yaml
├── README.md
├── templates
│ ├── clusterrolebinding-metrics.yaml
│ ├── clusterrolebinding-readonly.yaml
│ ├── clusterrole-metrics.yaml
│ ├── clusterrole-readonly.yaml
│ ├── configmap.yaml
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── ingress.yaml
│ ├── networkpolicy.yaml
│ ├── NOTES.txt
│ ├── pdb.yaml
│ ├── psp.yaml
│ ├── rolebinding.yaml
│ ├── role.yaml
│ ├── secret.yaml
│ ├── serviceaccount.yaml
│ ├── servicemonitor.yaml
│ ├── service.yaml
│ └── _tplvalues.tpl
└── values.yaml


你可以梳理这些文件,并对部署进行必要的更改。


安装完chart后,你将在底部看到部署说明。例如,Kubernetes仪表板部署是通过以下命令处理的。


通过运行以下命令获取Kubernetes仪表板URL:

export POD_NAME=$(kubectl get pods -n default -l "app.kubernetes.io/name=kubernetes-dashboard,app.kubernetes.io/instance=my-kubernetes-dashboard" -o jsonpath="{.items[0].metadata.name}")


如果pod成功运行,你应该看到如下输出:

echo https://127.0.0.1:8443/


最后,将本地端口转发到pod中的一个端口:

kubectl -n default port-forward $POD_NAME 8443:8443


一切就绪并运行后,你应该能够访问Kubernetes仪表板(或与Helm一起部署的任何应用程序/服务)。


这就是你开始与Helm合作的方式。熟悉这个Kubernetes包管理系统,你就可以节省时间和精力来部署Kubernetes。


即使您实际上没有使用Helm charts部署应用程序,这也是了解创建Kubernetes清单的细节的好方法。下载各种chart,并研究Chart.yaml文件,以了解有关如何创建这些清单的更多信息。



原文链接:

https://thenewstack.io/get-started-with-the-helm-kubernetes-package-manager/




相关推荐

3分钟让你的项目支持AI问答模块,完全开源!

hello,大家好,我是徐小夕。之前和大家分享了很多可视化,零代码和前端工程化的最佳实践,今天继续分享一下最近开源的Next-Admin的最新更新。最近对这个项目做了一些优化,并集成了大家比较关注...

干货|程序员的副业挂,12个平台分享

1、D2adminD2Admin是一个完全开源免费的企业中后台产品前端集成方案,使用最新的前端技术栈,小于60kb的本地首屏js加载,已经做好大部分项目前期准备工作,并且带有大量示例代码,助...

Github标星超200K,这10个可视化面板你知道几个

在Github上有很多开源免费的后台控制面板可以选择,但是哪些才是最好、最受欢迎的可视化控制面板呢?今天就和大家推荐Github上10个好看又流行的可视化面板:1.AdminLTEAdminLTE是...

开箱即用的炫酷中后台前端开源框架第二篇

#头条创作挑战赛#1、SoybeanAdmin(1)介绍:SoybeanAdmin是一个基于Vue3、Vite3、TypeScript、NaiveUI、Pinia和UnoCSS的清新优...

搭建React+AntDeign的开发环境和框架

搭建React+AntDeign的开发环境和框架随着前端技术的不断发展,React和AntDesign已经成为越来越多Web应用程序的首选开发框架。React是一个用于构建用户界面的JavaScrip...

基于.NET 5实现的开源通用权限管理平台

??大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!??今天小编推荐一款基于.NE...

StreamPark - 大数据流计算引擎

使用Docker完成StreamPark的部署??1.基于h2和docker-compose进行StreamPark部署wgethttps://raw.githubusercontent.com/a...

教你使用UmiJS框架开发React

1、什么是Umi.js?umi,中文可发音为乌米,是一个可插拔的企业级react应用框架。你可以将它简单地理解为一个专注性能的类next.js前端框架,并通过约定、自动生成和解析代码等方式来辅助...

简单在线流程图工具在用例设计中的运用

敏捷模式下,测试团队的用例逐渐简化以适应快速的发版节奏,大家很早就开始运用思维导图工具比如xmind来编写测试方法、测试点。如今不少已经不少利用开源的思维导图组件(如百度脑图...)来构建测试测试...

【开源分享】神奇的大数据实时平台框架,让Flink&Spark开发更简单

这是一个神奇的框架,让Flink|Spark开发更简单,一站式大数据实时平台!他就是StreamX!什么是StreamX大数据技术如今发展的如火如荼,已经呈现百花齐放欣欣向荣的景象,实时处理流域...

聊聊规则引擎的调研及实现全过程

摘要本期主要以规则引擎业务实现为例,陈述在陌生业务前如何进行业务深入、调研、技术选型、设计及实现全过程分析,如果你对规则引擎不感冒、也可以从中了解一些抽象实现过程。诉求从硬件采集到的数据提供的形式多种...

【开源推荐】Diboot 2.0.5 发布,自动化开发助理

一、前言Diboot2.0.5版本已于近日发布,在此次发布中,我们新增了file-starter组件,完善了iam-starter组件,对core核心进行了相关优化,让devtools也支持对IAM...

微软推出Copilot Actions,使用人工智能自动执行重复性任务

IT之家11月19日消息,微软在今天举办的Ignite大会上宣布了一系列新功能,旨在进一步提升Microsoft365Copilot的智能化水平。其中最引人注目的是Copilot...

Electron 使用Selenium和WebDriver

本节我们来学习如何在Electron下使用Selenium和WebDriver。SeleniumSelenium是ThoughtWorks提供的一个强大的基于浏览器的开源自动化测试工具...

Quick 'n Easy Web Builder 11.1.0设计和构建功能齐全的网页的工具

一个实用而有效的应用程序,能够让您轻松构建、创建和设计个人的HTML网站。Quick'nEasyWebBuilder是一款全面且轻巧的软件,为用户提供了一种简单的方式来创建、编辑...