首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >5分钟教你在kubernetes集群上安装Helm,并部署应用

5分钟教你在kubernetes集群上安装Helm,并部署应用

作者头像
我的小碗汤
发布于 2019-12-25 10:12:33
发布于 2019-12-25 10:12:33
3.6K10
代码可运行
举报
文章被收录于专栏:我的小碗汤我的小碗汤
运行总次数:0
代码可运行

翻译于Helm Tutorial: How To Install and Configure Helm

这篇文章将一步步教你如何在Kubernetes集群安装和配置helm,并用其部署和管理应用程序。

前置条件

开始使用helm之前,应具备以下条件。

  1. 正在运行的kubernetes集群
  2. kubernetes集群API Endpoint应该可以从运行Helm的机器上访问。
  3. 使用kubectl对集群进行身份验证,它应该具有集群管理员权限。

Helm架构

在这里插入图片描述

安装Helm[客户端]

在命令行执行以下命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -L https://git.io/get_helm.sh | bash

由于国内网络原因,下载helm包时会失败。我已经将get_helm.sh脚本和helm的安装包打包:提取码:jrko helm-v2.16.1-linux-amd64.tar.gz

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@master helm]# bash get_helm.sh 
Preparing to install helm and tiller into /usr/local/bin
helm installed into /usr/local/bin/helm
tiller installed into /usr/local/bin/tiller
Run 'helm init' to configure helm.

为Tiller 创建具有集群管理员权限的Service Account

Tiller是Helm的服务端组件。Tiller将被安装在kubernetes集群中,Helm客户端会与其交互,从而使用Helm charts部署应用程序。

Helm将管理k8s集群资源。因此,我们需要向安装在集群kube-system命令空间中的tiller组件添加必要的权限。

所以需要做以下操作:

  1. 创建名称为tillerService Account
  2. 创建tillerService Account具有集群管理员权限的ClusterRoleBinding

我们将在一个yaml文件中添加Service AccountclusterRoleBinding

创建一个名为helm-rbac.yaml的文件,并将以下内容复制到该文件中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

使用kubectl创建:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl apply -f helm-rbac.yam

初始化Helm:部署Tiller

下一步是初始化Helm。当初始化Helm时,将在kube-system名称空间中部署一个名为tiller-deploy的deploy。

使用以下命令初始化Helm。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm init --service-account=tiller --history-max 300

如果要安装指定的tiller版本,则可以在init命令中使用--tiller-image参数指定tillerimage地址。可以在公共Google GCR注册中心找到所有tillerdocker映像。由于国内网络原因,可以从阿里镜像仓库拉取。即把gcr.io/kubernetes-helm/tiller:v2.14.1替换为registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm init --service-account=tiller --tiller-image=registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.1   --history-max 300

执行后如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@master helm]# helm init --service-account=tiller --tiller-image=registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.1   --history-max 300
Creating /root/.helm 
Creating /root/.helm/repository 
Creating /root/.helm/repository/cache 
Creating /root/.helm/repository/local 
Creating /root/.helm/plugins 
Creating /root/.helm/starters 
Creating /root/.helm/cache/archive 
Creating /root/.helm/repository/repositories.yaml 
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com 
Adding local repo with URL: http://127.0.0.1:8879/charts 
$HELM_HOME has been configured at /root/.helm.

Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.

Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.
To prevent this, run `helm init` with the --tiller-tls-verify flag.
For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation

如果不加“ --service-account = tiller”参数,则会出现以下错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Error: no available release name found

可以使用kubectl在kube-system名称空间中查看tiller部署。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl get deployment tiller-deploy -n kube-system

使用Helm部署应用

现在,让我们使用Helm部署Nginx应用。

执行以下helm install命令,在kubernetes集群中部署ingress nginx。它将从github仓库中下载nginx-ingress helm chart

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm install stable/nginx-ingress --name nginx-ingress

可以使用以下命令检查helm chart是否安装。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm ls

可以使用delete命令删除刚才的部署。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm delete nginx-ingress

从kubernetes集群中删除Helm(Tiller)

如果要从kubernetes集群中删除Tiller,请使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm reset

由于某种原因,如果引发错误,请使用以下命令强制将其删除。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm reset --force

也可以使用kubectl命令将其删除。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl delete deployment tiller-deploy --namespace kube-ystem
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击云原生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
由于国内网络原因,下载helm包时会失败。我已经将get_helm.sh脚本和helm的安装包打包:提取码:jrko ------下载链接没看见,在哪里下载勒?
由于国内网络原因,下载helm包时会失败。我已经将get_helm.sh脚本和helm的安装包打包:提取码:jrko ------下载链接没看见,在哪里下载勒?
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
CentOS 7.6安装Kubernetes v1.15.1
kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践。
星哥玩云
2022/07/27
4830
CentOS 7.6安装Kubernetes v1.15.1
Kubernetes 应用管理工具 Helm 使用指南
Helm 是一个类似于 yum/apt/homebrew 的 Kubernetes 应用管理工具。Helm 使用 Chart 来管理 Kubernetes manifest 文件。
轻量级云原生架构实验室
2018/08/02
1.2K0
【Kubernetes系列】第5篇 Kubernetes包管理工具-helm介绍
Helm是kubernetes包管理工具,可以方便快捷的安装、管理、卸载kubernetes应用,类似于Linux操作系统中yum或apt-get软件的作用。其主要的设计目的:
HankerCloud
2019/10/11
6070
【Kubernetes系列】第5篇 Kubernetes包管理工具-helm介绍
利用Helm简化Kubernetes应用部署(1)
Helm是Kubernetes生态系统中的一个软件包管理工具,有点类似于Linux操作系统里面的“apt-get”和“yum”。结合上一节内容,对Kubernetes集群进行部署应用时,我们面临了以下问题:
心莱科技雪雁
2019/09/19
6490
利用Helm简化Kubernetes应用部署(1)
K8s1.14-helm安装
摘要 Helm这个东西其实早有耳闻,但是一直没有用在生产环境,而且现在对这货的评价也是褒贬不一。正好最近需要再次部署一套测试环境,对于单体服务,部署一套测试环境我相信还是非常快的,但是对于微服务架构的应用,要部署一套新的环境,就有点折磨人了,微服务越多、你就会越绝望的。虽然我们线上和测试环境已经都迁移到了kubernetes环境,但是每个微服务也得维护一套yaml文件,而且每个环境下的配置文件也不太一样,部署一套新的环境成本是真的很高。如果我们能使用类似于yum的工具来安装我们的应用的话是不是就很爽歪歪了啊?Helm就相当于kubernetes环境下的yum包管理工具。
院长技术
2020/06/11
3840
k8s包管理工具helm - 介绍和安装
以一个典型的三层应用 Wordpress 为例,该应用程序就涉及到多个 Kubernetes API 对象,而要描述这些 Kubernetes API 对象就可能要同时维护多个 YAML 文件。 在进行 Kubernetes 软件部署时,我们面临下述几个问题:
仙人技术
2020/04/29
1.3K0
kubernetes之helm简介、安装、配置、使用指南
很多人都使用过Ubuntu下的ap-get或者CentOS下的yum, 这两者都是Linux系统下的包管理工具。采用apt-get/yum,应用开发者可以管理应用包之间的依赖关系,发布应用;用户则可以以简单的方式查找、安装、升级、卸载应用程序。
菲宇
2019/06/12
9.5K0
kubernetes之helm简介、安装、配置、使用指南
Helm 从入门到实践
Helm 是 Kubernetes 的软件包管理工具。本文需要读者对 Docker、Kubernetes 等相关知识有一定的了解。 本文将介绍 Helm 中的相关概念和基本工作原理,并通过一些简单的示例来演示如何使用Helm来安装、升级、回滚一个 Kubernetes 应用。
py3study
2020/05/12
2.3K0
Helm 从入门到实践
Kubernetes之helm部署使用
是一个部署在Kubernetes集群内部的 server,其与 Helm client、Kubernetes API server 进行交互
聂伟星
2020/09/11
3.6K0
Helm 编排教程
我们知道 Kubernetes 是一个分布式的容器集群管理系统,它把集群中的管理资源抽象化成一个个 API 对象,并且推荐使用声明式的方式创建,修改,删除这些对象,每个 API 对象都通过一个 yaml 格式或者 json 格式的文本来声明。这带来的一个问题就是这些 API 对象声明文本的管理成本,每当我需要创建一个应用,都需要去编写一堆这样的声明文件。
Ewdager
2020/08/06
2.9K0
Helm
​在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本管理和控制,很大程度上简化了 Kubernetes 应用的部署和管理。
星哥玩云
2022/09/15
9410
Helm
Helm工具安装配置——2.14.3
在Kubernetes中部署容器云的应用也是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过helm能够帮助开发者定义、安装和升级Kubernetes中的容器云应用,同时,也可以通过helm进行容器云应用的分享。在Kubeapps Hub中提供了包括Redis、MySQL和Jenkins等常见的应用,通过helm可以使用一条命令就能够将其部署安装在自己的Kubernetes集群中。
小手冰凉
2020/09/18
1.2K0
Helm工具安装配置——2.14.3
「走进k8s」Kubernetes1.15.1的Helm安装使用(37)
PS:安装helm,使用了很多种方式了,感觉这种是最稳的,分享给大家,这里就简单的介绍了helm的几个命令:创建,删除,查看,打包,更多的命令还是查看helm的官方文档吧,下次继续说说helm的基本使用。
IT架构圈
2019/09/17
1.5K0
「走进k8s」Kubernetes1.15.1的Helm安装使用(37)
Kubernetes 安装 Helm 并使用 Helm 安装 wordpress
chart 是创建一个应用的信息集合,包括各种 Kubernetes 对象的配置模板、参数定义、依赖关系、文档说明等。chart 是应用部署的自包含逻辑单元。可以将 chart 想象成 apt、yum 中的软件安装包。
tanmx
2019/12/30
3.3K0
Kubernetes 安装 Helm 并使用 Helm 安装 wordpress
4. 死磕 k8s系列之安装包管理工具(Helm)
Helm可以看作是k8s集群的包管理工具,通过Helm可以快速安装很多软件,比如mysql,nginx等,当然,也可以把自己的应用交给Helm来管理和安装。
彤哥
2020/02/10
3.5K0
Rancher2 & K8S部署踩坑记录
如果服务器上下载不了kubectl可去github release页面下载最新版kubectl,再上传至服务器
Ewdager
2020/07/14
3.9K0
Rancher2 & K8S部署踩坑记录
二进制安装k8s集群(19)-安装helm和tiller
在上一篇文章中我们安装了nginx application,在这个安装过程中我们部署了deployment文件,service文件,ingress文件。当然有的application还不只这些,还可能有service account,role,rolebinding,configmap,secret等等,这些资源对象构成了完整的application。那么很自然的就想到有没有办法把这些资源当作一个完整的应用包,我们只需要简单的命令就可以完成对于应用的安装升级等操作呢。可以想象一下,我们需要的是类似yum这样的工具来完成k8s应用的安装升级管理,在k8s里helm正是扮演了这样的角色。
TA码字
2020/04/01
1.5K0
二进制安装k8s集群(19)-安装helm和tiller
kubernetes-helm程序包管理器(二十)
Helm是Kubernetes的包管理器,Helm 让我们能够像 yum 管理 rpm 包那样安装、部署、升级和删除容器化应用。
yuezhimi
2020/09/30
7360
kubernetes-helm程序包管理器(二十)
快速安装 Helm
Helm 是 Kubernetes 的包管理器,可以帮我们简化 kubernetes 的操作,一键部署应用。假如你的机器上已经安装了 kubectl 并且能够操作集群,那么你就可以安装 Helm 了。
imroc
2018/07/26
2.8K2
16 May 2019 helm学习(一)
helm的主要功能是封装kubernetes应用,并对应用进行版本管理、依赖管理、升级回滚,方便部署kubernetes应用。通过helm部署kubernetes应用时,实际是将templates渲染成kubernetes能识别的yaml格式的资源描述文件。helm采用c/s架构,由helm cli(客户端)和tiller(服务端,在最新版已经移除)组成,helm cl就是一个可执行文件,方便对应用进行配置、部署、升级和回滚。
俊采
2023/10/17
2460
相关推荐
CentOS 7.6安装Kubernetes v1.15.1
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档