Helm系列(一) Helm介绍与使用

一、什么是Helm

(一)引入

   一般部署单一的应用,比如nginx,是通过编写yaml文件然后进行deployment、Service、Ingress这样的过程,但是假如现在需要部署几十个单体应用,这样的部署方式太过于繁琐,那么Helm就可以解决这样的问题,在Helm的官网上是这样介绍它的:

The package manager for Kubernetes,是kubernetes包管理的工具,所以类似于yum、apt这样的包管理工具。可以方便的将yaml文件部署到kubernetes集群中。它可以解决下面一系列的问题:

  • 多个yaml文件进行整体管理
  • yaml文件的高效复用
  • 进行应用级别的版本管理

(二)重要概念

Helm中的重要概念:

  • Chart  代表Helm的包,可以理解为yum的rpm包,是yaml文件的集合
  • Repository 是用来存放和共享 charts 的地方,它是供 Kubernetes 包所使用的。
  • Release 是运行在 Kubernetes 集群中的 chart 的实例,每安装一次chart就会产生一个新的release,进行应用级别的版本管理
  • helm 是一个命令行客户端工具

二、Helm实践

 (一)安装Helm

下载安装包并解压:

# 下载
[root@k8smaster ~]# wget https://get.helm.sh/helm-v3.6.1-linux-amd64.tar.gz

# 解压
[root@k8smaster ~]# tar -xzvf helm-v3.6.1-linux-amd64.tar.gz

在解压目中找到helm程序,移动到需要的目录中(mv linux-amd64/helm /usr/local/bin/helm)

[root@k8smaster ~]# mv linux-amd64/helm /usr/local/bin/helm

(二)配置Helm仓库

  • 微软仓库 http://mirror.azure.cn/kubernetes/charts/
  • 阿里云仓库 https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
  • 官方仓库 https://hub.kubeapps.com/charts/incubator
# 添加仓库
[root@k8smaster ~]# helm repo add  aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
"aliyun" has been added to your repositories

[root@k8smaster ~]# helm repo add stable http://mirror.azure.cn/kubernetes/charts/
"stable" has been added to your repositories


# 查看仓库
[root@k8smaster ~]# helm repo list
NAME      URL                                                   
aliyun    https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
stable    http://mirror.azure.cn/kubernetes/charts/ 

当然helm哈有很多其它命令,比如:

helm repo update # 更新仓库
helm repo remove aliyun #删除仓库
...

更多信息查看 helm --help.

(三)部署应用

1、搜索应用

# 通过helm search repo 名称
[root@k8smaster ~]# helm search repo weave
NAME                  CHART VERSION    APP VERSION    DESCRIPTION                                       
aliyun/weave-cloud    0.1.2                           Weave Cloud is a add-on to Kubernetes which pro...
aliyun/weave-scope    0.9.2            1.6.5          A Helm chart for the Weave Scope cluster visual...
stable/weave-cloud    0.3.9            1.4.0          DEPRECATED - Weave Cloud is a add-on to Kuberne...
stable/weave-scope    1.1.12           1.12.0         DEPRECATED - A Helm chart for the Weave Scope c...

2、进行安装

# helm install 安装后应用名称 搜索后应用名称
[root@k8smaster ~]# helm install app-ui stable/weave-scope

# 查看安装列表
[root@k8smaster ~]# helm list

# 查看安装状态
[root@k8smaster ~]# helm status app-ui

3、修改服务端口

可以到已经安装好了,然后再查看一下服务:

[root@k8smaster ~]# kubectl get svc
NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
app-ui-weave-scope   ClusterIP   10.107.225.177   <none>        80/TCP         7m8s

不过貌似没有对外暴露端口,Service的类型是ClusterIP,所以需要改成NodePort类型:

# 编辑资源文件
[root@k8smaster ~]# kubectl edit svc  app-ui-weave-scope

将其中的type字段的ClusterIP修改为NodePort即可:

[root@k8smaster ~]# kubectl get svc
NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
app-ui-weave-scope   NodePort    10.107.225.177   <none>        80:31491/TCP   13m

访问集群任何节点的31491端口即可。

 

上一篇:sql中的sp_helptext、sp_help 、sp_depends


下一篇:Prometheus(普罗米修斯)用户档案:动态化特性加速weaveworks云原生程序的发展