Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >「走进k8s」Kubernetes1.15.1的Helm安装使用(37)

「走进k8s」Kubernetes1.15.1的Helm安装使用(37)

作者头像
IT架构圈
发布于 2019-09-17 06:15:27
发布于 2019-09-17 06:15:27
1.5K00
代码可运行
举报
文章被收录于专栏:IT架构圈IT架构圈
运行总次数:0
代码可运行

使用过Ubuntu下的ap-get或者CentOS下的yum, 这两者都是Linux系统下的包管理工具。采用apt-get/yum,应用开发者可以管理应用包之间的依赖关系,发布应用;用户则可以以简单的方式查找、安装、升级、卸载应用程序。Kubernetes 安装deployment和pod,service,都需要查看api了解其中的yaml的语法结构,这样太复杂了,为了简化这个流程。

(一)Helm 介绍
  • ① 官网

https://helm.sh/

  • ② 介绍

Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。Helm 本身的处理逻辑很简单,其自身价值并不大,而有价值的是 Helm 的生态圈和 Helm 官方所提供的众多包含有最佳实践的 chart 包。 Helm 本身的处理逻辑很简单,其自身价值并不大,而有价值的是 Helm 的生态圈和 Helm 官方所提供的众多包含有最佳实践的 chart 包。

  • ③ 组件

chart

一系列用于描述 k8s 资源相关文件的集合,是 Helm 用于打包 k8s 资源的方式。

release

一个 chart 被 Helm 运行后将会生成对应的一个 release。

TillerServer

Helm 的服务端,部署在 k8s 集群内,主要管理 release 相关的存储和与 k8s 的交互。

helm

Helm 的客服端,通过 gRPC 协议与 TillerServer 进行交互,主要提供了增删查改 chart、release 和 repository 相关的功能。

config

包含了应用发布配置信息

  • ④ 功能 1.创建新的 chart。2.chart 打包成 tgz 格式。3.上传 chart 到 chart 仓库或从仓库中下载 chart。4.在Kubernetes集群中安装或卸载 chart。5.管理用Helm安装的 chart 的发布周期。
(二)Helm 安装
  • ① 一键安装客户端是省时省力

只要不报错一直等待就可以了,根据网速来的 可能比较慢,但是终究可以下载完毕

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.sh

chmod 700 get_helm.sh

 ./get_helm.sh
  • ② 安装依赖的yum socat
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo yum install -y socat
  • ③ 初始化helm

Helm 默认会去 storage.googleapis.com 拉取镜像,如果你当前执行的机器不能访问该域名的话可以使用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker search tiller

# 一会要用这个jessestuart/tiller
  • ④ 权限

因为helm部署的存在跨命名空间的,所以直接给他赋ClusterRole这个权限。

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

运行权限赋予

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

再次验证

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

发现pod下载失败,查看原因:gcr.io/kubernetes-helm/tiller:v2.14.3 无法拉取, 可能读者当你看到的时候tiller版本可能不是在v2.14.3,这个版本其实不用考虑。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl get pod --all-namespaces

kubectl describe pod tiller-deploy-75f6c87b87-vdw2c -n kube-system

修改kubectl edit deploy tiller-deploy -n kube-system

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

# image: gcr.io/kubernetes-helm/tiller:v2.14.3   修改成图片上的jessestuart/tiller,上边docker search 的时候提到过。
  • ⑤ kubernetes里面的pod信息
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl get pod -n kube-system

创建了tiller的 ServceAccount 后还没完, Tiller 之前已经就部署成功了,而且是没有指定 ServiceAccount 的,所以我们需要给 Tiller 打上一个 ServiceAccount 的补丁

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

查看deploy的用户信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl describe deploy --namespace kube-system tiller-deploy
(三)Helm使用
  • ① 创建
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir helm

helm create hello-helm

tree
  • ② 文档地址

https://docs.helm.sh/developing_charts/#charts

  • ③ 更改 value.yaml

将默认的 stable 更改为 1.7.9, Service 的类型也改成 NodePort

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi ./hello-helm/values.yaml
  • ④ 安装刚修改后的helm
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm install ./hello-helm

查看helm的文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl get pods -o wide

kubectl get svc -o wide

修改成了NodePort可以直接访问 svc 查看到的端口 直接访问就可以访问nginx

  • ⑤ 查看release

create 2次导致的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm list
  • ⑥ 打包chart
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
helm package hello-helm
  • ⑦ 删除release

list中的都删除了。

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

helm delete washed-panda

查看pod,已经没有了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl get pods

PS:安装helm,使用了很多种方式了,感觉这种是最稳的,分享给大家,这里就简单的介绍了helm的几个命令:创建,删除,查看,打包,更多的命令还是查看helm的官方文档吧,下次继续说说helm的基本使用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程坑太多 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
k8s包管理工具helm - 介绍和安装
以一个典型的三层应用 Wordpress 为例,该应用程序就涉及到多个 Kubernetes API 对象,而要描述这些 Kubernetes API 对象就可能要同时维护多个 YAML 文件。 在进行 Kubernetes 软件部署时,我们面临下述几个问题:
仙人技术
2020/04/29
1.3K0
5分钟教你在kubernetes集群上安装Helm,并部署应用
这篇文章将一步步教你如何在Kubernetes集群安装和配置helm,并用其部署和管理应用程序。
我的小碗汤
2019/12/25
3.7K1
Kubernetes之helm部署使用
是一个部署在Kubernetes集群内部的 server,其与 Helm client、Kubernetes API server 进行交互
聂伟星
2020/09/11
3.6K0
4. 死磕 k8s系列之安装包管理工具(Helm)
Helm可以看作是k8s集群的包管理工具,通过Helm可以快速安装很多软件,比如mysql,nginx等,当然,也可以把自己的应用交给Helm来管理和安装。
彤哥
2020/02/10
3.5K0
k8s实践(九):Helm and Kubeapps UI
  Helm是一个Kubemetes包管理器(类似于OS包管理器,比如Linux中的yum、apt,或者MacOS中的 homebrew)。
loong576
2019/10/12
2.8K0
k8s实践(九):Helm and Kubeapps UI
K8s之Helm工具详解
一、helm介绍 在Kubernetes中部署容器云的应用也是一项有挑战性的工作,Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过helm能够帮助开发者定义、安装和升级Kubernetes中的容器云应用,同时,也可以通过helm进行容器云应用的分享。在Kubeapps Hub中提供了包括Redis、MySQL和Jenkins等常见的应用,通过helm可以使用一条命令就能够将其部署安装在自己的Kubernetes集群中。
小仙女闯运维
2020/09/23
2.6K0
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
使用 helm 部署 k8s 资源
helm 是基于 kubernetes 的包管理器。它之于 kubernetes 就如 yum 之于 centos,pip 之于 python,npm 之于 javascript
jwangkun
2021/12/23
1.2K0
利用Helm简化Kubernetes应用部署(1)
Helm是Kubernetes生态系统中的一个软件包管理工具,有点类似于Linux操作系统里面的“apt-get”和“yum”。结合上一节内容,对Kubernetes集群进行部署应用时,我们面临了以下问题:
心莱科技雪雁
2019/09/19
6580
利用Helm简化Kubernetes应用部署(1)
Helm
​在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本管理和控制,很大程度上简化了 Kubernetes 应用的部署和管理。
星哥玩云
2022/09/15
9580
Helm
Helm 编排教程
我们知道 Kubernetes 是一个分布式的容器集群管理系统,它把集群中的管理资源抽象化成一个个 API 对象,并且推荐使用声明式的方式创建,修改,删除这些对象,每个 API 对象都通过一个 yaml 格式或者 json 格式的文本来声明。这带来的一个问题就是这些 API 对象声明文本的管理成本,每当我需要创建一个应用,都需要去编写一堆这样的声明文件。
Ewdager
2020/08/06
3K0
ASP.NET Core on K8S深入学习(10)K8S包管理器Helm
本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。
Edison Zhou
2019/12/09
7450
ASP.NET Core on K8S深入学习(10)K8S包管理器Helm
16 May 2019 helm学习(一)
helm的主要功能是封装kubernetes应用,并对应用进行版本管理、依赖管理、升级回滚,方便部署kubernetes应用。通过helm部署kubernetes应用时,实际是将templates渲染成kubernetes能识别的yaml格式的资源描述文件。helm采用c/s架构,由helm cli(客户端)和tiller(服务端,在最新版已经移除)组成,helm cl就是一个可执行文件,方便对应用进行配置、部署、升级和回滚。
俊采
2023/10/17
2580
二进制安装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系列】第5篇 Kubernetes包管理工具-helm介绍
Helm是kubernetes包管理工具,可以方便快捷的安装、管理、卸载kubernetes应用,类似于Linux操作系统中yum或apt-get软件的作用。其主要的设计目的:
HankerCloud
2019/10/11
6110
【Kubernetes系列】第5篇 Kubernetes包管理工具-helm介绍
CentOS 7.6安装Kubernetes v1.15.1
kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践。
星哥玩云
2022/07/27
4930
CentOS 7.6安装Kubernetes v1.15.1
九、k8s之helm及其它功能性组件
在没使用helm之前,向kubernetes部署应用,我们要依次部署deployment,service,configMap等,步骤较繁琐。况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂.
阿dai学长
2020/10/26
1.1K0
九、k8s之helm及其它功能性组件
Rancher2 & K8S部署踩坑记录
如果服务器上下载不了kubectl可去github release页面下载最新版kubectl,再上传至服务器
Ewdager
2020/07/14
3.9K0
Rancher2 & K8S部署踩坑记录
kubernetes之helm简介、安装、配置、使用指南
很多人都使用过Ubuntu下的ap-get或者CentOS下的yum, 这两者都是Linux系统下的包管理工具。采用apt-get/yum,应用开发者可以管理应用包之间的依赖关系,发布应用;用户则可以以简单的方式查找、安装、升级、卸载应用程序。
菲宇
2019/06/12
9.6K0
kubernetes之helm简介、安装、配置、使用指南
Kubernetes 应用管理工具 Helm 使用指南
Helm 是一个类似于 yum/apt/homebrew 的 Kubernetes 应用管理工具。Helm 使用 Chart 来管理 Kubernetes manifest 文件。
轻量级云原生架构实验室
2018/08/02
1.2K0
相关推荐
k8s包管理工具helm - 介绍和安装
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验