26,k8s 之helm

Posted k8s-pod

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了26,k8s 之helm相关的知识,希望对你有一定的参考价值。

1,Helm 介绍
Helm是一个Kubernetes的包管理工具,就像Linux下的包管理器,如yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上。

Helm有两个重要概念:

	helm:一个命令行客户端工具,主要用于Kubernetes应用chart的创建、打包、发布和管理。
	Chart:应用描述,一系列用于描述 k8s 资源相关文件的集合。
	Release:基于Chart的部署实体,一个 chart 被 Helm 运行后将会生成对应的一个 release;将在k8s中创建出真实运行的资源对象。


2,部署Helm客户端
	Helm客户端下载地址:https://github.com/helm/helm/releases
	解压移动到/usr/bin/目录即可。

	wget https://get.helm.sh/helm-v3.0.0-linux-amd64.tar.gz
	tar zxvf helm-v3.0.0-linux-amd64.tar.gz 
	mv linux-amd64/helm /usr/bin/

3,Helm常用命令
| **命令**   | **描述**                                                     |
| ---------- | ------------------------------------------------------------ |
| create     | 创建一个chart并指定名字                                      |
| dependency | 管理chart依赖                                                |
| get        | 下载一个release。可用子命令:all、hooks、manifest、notes、values |
| history    | 获取release历史                                              |
| install    | 安装一个chart                                                |
| list       | 列出release                                                  |
| package    | 将chart目录打包到chart存档文件中                             |
| pull       | 从远程仓库中下载chart并解压到本地  # helm pull stable/mysql --untar |
| repo       | 添加,列出,移除,更新和索引chart仓库。可用子命令:add、index、list、remove、update |
| rollback   | 从之前版本回滚                                               |
| search     | 根据关键字搜索chart。可用子命令:hub、repo                   |
| show       | 查看chart详细信息。可用子命令:all、chart、readme、values    |
| status     | 显示已命名版本的状态                                         |
| template   | 本地呈现模板                                                 |
| uninstall  | 卸载一个release                                              |
| upgrade    | 更新一个release                                              |
| version    | 查看helm客户端版本                                           |
| ---------- | ------------------------------------------------------------ |

4,配置国内Chart仓库
	微软仓库(http://mirror.azure.cn/kubernetes/charts/)这个仓库强烈推荐,基本上官网有的chart这里都有。
	阿里云仓库(https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts  )
	官方仓库(https://hub.kubeapps.com/charts/incubator)官方chart仓库,国内有点不好使。

添加存储库:
	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
	helm search repo stable
	
一直在stable存储库中安装charts,你可以配置其他存储库。

删除存储库:
	helm repo remove aliyun
	


[root@centos7 ~]# helm show values stable/mysql



安装包:
	helm install db stable/mysql
	
查看发布状态:
	helm status db 
	
	
	
5,安装前自定义chart配置选项

上面部署的mysql并没有成功,这是因为并不是所有的chart都能按照默认配置运行成功,可能会需要一些环境依赖,例如PV。
所以我们需要自定义chart配置选项,安装过程中有两种方法可以传递配置数据:

	--values(或-f):指定带有覆盖的YAML文件。这可以多次指定,最右边的文件优先
	--set:在命令行上指定替代。如果两者都用,--set优先级高

	--values使用,先将修改的变量写到一个文件中


[root@centos7 helm]# cat pv.yml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0003
spec:
  capacity:
    storage: 8Gi
  accessModes:
    - ReadWriteOnce
  nfs:
    path: /data/nfs/wwwroot/
    server: 192.168.0.14
[root@centos7 helm]# 

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	

  

以上是关于26,k8s 之helm的主要内容,如果未能解决你的问题,请参考以下文章

k8s实战之理解helm

k8s实战之理解helm

Kubernetes(k8s)之k8s的应用的包管理工具Helm

k8s之Helm(快速下载yaml文件模板)

云原生之kubernetes实战使用helm在k8s集群下部署DataEase可视化分析平台

Kubernetes(k8s)之Helm的web UI界面管理应用kubeapps