一般部署单一的应用,比如nginx,是通过编写yaml文件然后进行deployment、Service、Ingress这样的过程,但是假如现在需要部署几十个单体应用,这样的部署方式太过于繁琐,那么Helm就可以解决这样的问题,在Helm的官网上是这样介绍它的:
The package manager for Kubernetes,是kubernetes包管理的工具,所以类似于yum、apt这样的包管理工具。可以方便的将yaml文件部署到kubernetes集群中。它可以解决下面一系列的问题:
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
# 添加仓库 [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.
# 通过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...
# helm install 安装后应用名称 搜索后应用名称 [root@k8smaster ~]# helm install app-ui stable/weave-scope # 查看安装列表 [root@k8smaster ~]# helm list # 查看安装状态 [root@k8smaster ~]# helm status app-ui
可以到已经安装好了,然后再查看一下服务:
[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端口即可。