前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >helm安装、使用、实践

helm安装、使用、实践

作者头像
明哥的运维笔记
发布2020-09-09 10:39:25
8.4K0
发布2020-09-09 10:39:25
举报
文章被收录于专栏:运维笔记运维笔记

helm简介

Helm 是管理 Kubernetes 的应用管理工具 相当于centos的yum,python中pip,node中的npm.

几个概念

  • Chart Helm的应用包,采用tgz格式。类似于Yum的RPM包,其包含了一组定义Kubernetes资源相关的YAML文件。也称为应用Chart。
  • Repoistory Helm的应用仓库,Repository本质上是一个Web服务器,该服务器保存了一系列的Chart应用包以供用户下载,并且提供了一个该Repository的Chart包的清单文件以供查询。Helm可以同时管理多个不同的Repository。 Helm社区官方提供了stable和incubator仓库,但Helm社区没有打算独占仓库,而是允许其他人和组织也可以搭建仓库。仓库可以是公共仓库,也可以是私有仓库。
  • Hub 不同的个人和组织提供的公共仓库形成了分散和分布的Helm仓库,不利于查找,所以官方提供了Helm Hub,各公共仓库可以注册到Helm Hub中以方便集中查找,Helm Hub只是分布的仓库的集中展示中心。 仓库注册到Helm Hub时,会将Chart清单文件向Helm Hub同步一份,这样可以在Helm Hub集中展示仓库列表和各仓库中的Chart列表。 Chart包也就是tgz文件实际上存储在各仓库中。Helm Hub并不实际存储Chart包。Helm只是在查询Chart时和Helm Hub有交互,其它操作都是和仓库直接交互的。
  • Release 在Kubernetes集群上运行的Chart的一个实例。在同一个集群上,一个Chart可以安装很多次。每次安装都会创建一个新的Release。例如一个MySQL Chart,如果想在服务器上运行两个MySQL数据库,就可以把这个Chart安装两次。每次安装都会生成一个新的Release

helm安装和使用

二进制安装
代码语言:javascript
复制
#根据操作系统去获取最新二进制安装包https://github.com/helm/helm/releases       
wget https://get.helm.sh/helm-v3.3.1-linux-amd64.tar.gz       
#由于helm包在国外,我通过ss拉到了腾讯云cos,国内可通过以下地址访问:https://download.osichina.net/tools/k8s/helm/helm-v3.3.1-linux-amd64.tar.gz       
tar -zxvf helm-v3.3.1-linux-amd64.tar.gz       
cp linux-amd64/helm /usr/local/bin/
Alt text
Alt text

helm其他安装可参考官方网站: https://helm.sh/docs/intro/install/

注意: helm 客户端需要下载到安装了 kubectl 并且能执行能正常通过 kubectl 操作 kubernetes 的服务器上, 否则 helm 将不可用

使用
配置
代码语言:javascript
复制
helm repo add  elastic    https://helm.elastic.co       
helm repo add  gitlab     https://charts.gitlab.io       
helm repo add  harbor     https://helm.goharbor.io       
helm repo add  bitnami    https://charts.bitnami.com/bitnami       
helm repo add  incubator  https://kubernetes-charts-incubator.storage.googleapis.com       
helm repo add  stable     https://kubernetes-charts.storage.googleapis.com       
#添加国内仓库       
helm repo add stable http://mirror.azure.cn/kubernetes/charts       
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts       
helm repo update       
helm repo list       
Alt text
Alt text
实践

1.helm安装nginx

Alt text
Alt text
Alt text
Alt text

关键解释

代码语言:javascript
复制
#搜索       
helm search repo nginx       
#安装       
helm install nginx bitnami/nginx -n nginx       
代码语言:javascript
复制
nginx/
├── charts   #依赖其他包的charts文件       
├── Chart.yaml   # 该chart的描述文件,包括ico地址,版本信息等       
├── templates   #存放k8s模板文件目录       
│   ├── deployment.yaml   #创建k8s资源的yaml 模板       
│   ├── _helpers.tpl   #下划线开头的文件,可以被其他模板引用.
│   ├── hpa.yaml   # 配置服务资源CPU 内存       
│   ├── ingress.yaml   # ingress 配合service域名访问的配置       
│   ├── NOTES.txt   #说明文件,helm install之后展示给用户看的内容       
│   ├── service.yaml   #kubernetes Serivce yaml 模板       
└── values.yaml   #给模板文件使用的变量       

2.推荐实践

Alt text
Alt text

关键解释

代码语言:javascript
复制
#查询已安装       
helm list -A       
#搜索       
helm search repo nginx       
#拉取到本地       
helm pull bitnami/nginx --untar       
#根据values.yml配置本地安装       
helm install nginx . -f values.yaml -n nginx       
#根据values.yml配置本地升级       
helm upgrade nginx . -f values.yaml -n nginx       
#卸载       
helm uninstall nginx -n nginx       
Alt text
Alt text

关键解释

代码语言:javascript
复制
#使用set更新       
helm upgrade tomcat bitnami/tomcat --set service.type=NodePort  --set persistence.enabled=false       
helm list       
#查看状态       
helm status tomcat       
#使用values.yaml更新       
helm upgrade -f values.yaml tomcat .
#查看更新历史       
helm history tomcat       
#回滚       
helm rollback tomcat 2       

helm安装nfs storageclasses

安装nfs
代码语言:javascript
复制
yum -y install epel-release       
yum -y install nfs-utils rpcbind       
systemctl enable rpcbind nfs-server nfs-lock nfs-idmap       
systemctl start rpcbind nfs-server nfs-lock nfs-idmap       
#172.18.4.*的IP都能访问nfs       
echo "/data 172.18.4.*(rw,sync,no_root_squash)" >  /etc/exports       
exportfs -a       
安装nfs storageclasses
代码语言:javascript
复制
helm pull stable/nfs-client-provisioner --untar       
cd nfs-client-provisioner/
vim values.yaml       
helm install nfs -f values.yaml .

values.yaml

代码语言:javascript
复制
...
nfs:
  server: 172.18.4.202       
  path: /data/nfs       
  mountOptions:
...
Alt text
Alt text

helm安装ingress

Alt text
Alt text

由于GFW的原因,镜像下载失败,我这边是从本地下载好导入.

关键点

代码语言:javascript
复制
helm search repo ingress       
helm pull stable/nginx-ingress --untar       
helm install ingress -f values.yaml . -n ingress       
vim nginx-ingress/values.yaml       
helm upgrade -f values.yaml ingress . -n ingress       
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • helm简介
    • helm安装和使用
      • 二进制安装
      • 使用
    • helm安装nfs storageclasses
      • 安装nfs
      • 安装nfs storageclasses
    • helm安装ingress
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档