Helm安装使用总结 helm安装nginx例子
大纲
- 概念
- 安装与基础使用
- helm安装nginx
概念
helm 是k8s上的软件安装程序 个人感觉类似 yum apt
Helm 的重要概念:
- helm:一个命令行客户端工具,主要用于创建、打包、发布和管理 Helm Chart。
- Chart:一系列 Kubernetes Yaml 文件的集合,将 Kubernetes Yaml 文件打包在一起,使用一条
命令就可以部署应用程序。 - Release:基于 Chart 部署的实体,每个 Chart 可以部署一个或多个 release。
目前稳定版是Helm3
官方文档 https://helm.sh/zh/
安装与基础使用
下载前注意 helm 与 k8s版本对应关系
我们当前的kubernetes版本为17 所以 helm使用3.1.x
下载地址 https://github.com/helm/helm/releases 使用3.x版本
下载解压后 复制到/usr/bin/ (也可以配置环境变量)
添加仓库
https://artifacthub.io/ 可以找相关的chart
helm3 没有默认的存储仓库 需要配置仓库
使用Artifact Hub来查找他们要查找的内容,然后添加他们首选的存储库
-
微软仓库(http://mirror.azure.cn/kubernetes/charts/)这个仓库强烈推荐,基本上官网有的chart这里都有。
-
阿里云仓库(https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts )
-
Bitnami库 https://charts.bitnami.com/bitnami
-
官方仓库(https://hub.kubeapps.com/charts/incubator)官方chart仓库,国内有点不好使
命令各式: helm repo list helm repo add 【自定义仓库名称】【仓库地址】 helm repo update | remove 【自定义仓库名称】【仓库地址】 # 添加仓库 helm repo add stable http://mirror.azure.cn/kubernetes/charts helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts helm repo add my-repo https://charts.bitnami.com/bitnami # 列出仓库 helm repo list # 更新删除 仓库 helm repo update aliyun helm repo remove aliyun
一旦添加了一个存储库,它的索引就将被本地缓存,直到下次更新它。然后可以搜索存储库。
Helm 基本命令使用
查询 chart
helm search repo 【chart名称】
helm search repo redis 显示最新的版本
helm search repo redis --versions 显示所有版本
安装 chart
helm install 【自定义名称】【仓库名称】/【chart名称】
helm install my-nginx my-repo/nginx
# 可携带参数
helm install --namespace 【k8s中的名字空间】
helm install --namespace mybase my-nginx my-repo/nginx
# 可自定一些配置 使用--set
helm install my-nginx --set service.type=NodePort my-repo/nginx
# 尝试安装 --dry-run 不会真正安装到k8s中 但会输出deplayment.yml service.yml
helm install my-nginx --set service.type=NodePort my-repo/nginx --dry-run
升级安装 当想修改某个配置的时候
例如安装时的配置
helm install my-nginx my-repo/nginx --set service.ports.http=8181
修改端口为80
helm upgrade my-nginx my-repo/nginx --set service.ports.http=80
卸载安装的 chart
helm uninstall 【安装时指定的名称】
helm uninstall my-nginx
#卸载指定命名空间下的chart
helm uninstall my-nginx --namespace mybase
导出helm安装 模板
使用helm template 可以把安装需要的 deplayment service.yml导出
helm template my-nginx --set service.type=NodePort my-repo/nginx
helm安装nginx
测试helm 安装nginx
在 https://artifacthub.io 上搜索nginx 可以看到对应的安装步骤与配置参数
https://artifacthub.io/packages/helm/bitnami/nginx
本次测使用https://charts.bitnami.com/bitnami 作为仓库
helm list
helm list --all-namespaces #显示所有命名空间内安装的chart
helm repo list
helm search repo nginx
helm install my-nginx --set service.type=NodePort --set service.ports.http=8181 my-repo/nginx
在k8s集群中查看
外部访问nginx 使用service NodePort 方式访问 (集群中任意一个主机ip:NodePort)
删除部署的chart
helm delete my-ngin
注意: 以上方式部署NodePort 是随机的不利于后面使用外部的nginx做反向代理
可以配置nodePort 端口 官方文档给出的配置是service.nodePorts
测试发现此配置应该写为
--set service.nodePorts.http
例如
helm install my-nginx --set service.type=NodePort --set service.ports.http=8181 --set service.nodePorts.http=8888 my-repo/nginx