Kubernetes的包管理工具Helm3
文章目录一、简介二、安装2.1 tar包安装2.2 添加仓库2.3 指定k8s集群三、安装一个Nginx一、简介官方文档:https://helm.sh/docs/Helm是一款强大而灵活的 Kubernetes 软件包管理和运维工具,类似于apt、yum等包管理工具。运用Helm可以极大的简化Kubernetes应用部署。Helm Chart是用来封装Kubernetes原生应用程序的一系列YA
·
一、简介
官方文档:https://helm.sh/docs/
注意:helm3 与helm2是两种不同的架构,3兼容2,本文使用的是helm3版本。
Helm是一款强大而灵活的 Kubernetes 软件包管理和运维工具,类似于apt、yum等包管理工具。运用Helm可以极大的简化Kubernetes应用部署。
Helm Chart是用来封装Kubernetes原生应用程序的一系列YAML文件。
对于应用发布者而言,可以通过Helm打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
对于使用者而言,使用Helm后不用需要编写复杂的应用部署文件,可以以简单的方式在Kubernetes上查找、安装、升级、回滚、卸载应用程序。
二、安装
github地址:https://github.com/helm/helm/releases
2.1 tar包安装
# 下载
wget https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz
# 解压
tar -zxvf helm-v3.2.4-linux-amd64.tar.gz
# 移到bin目录
mv linux-amd64/helm /usr/local/bin/helm
# 命令补全
echo "source <(helm completion bash)" >> ~/.bashrc
source <(helm completion bash)
# 验证
[root@harbor ~]# helm version
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"}
[root@harbor ~]# helm help
completion # 为指定的shell生成自动完成脚本(bash或zsh)
create # 创建一个具有给定名称的新 chart
delete # 从 Kubernetes 删除指定名称的 release
dependency # 管理 chart 的依赖关系
fetch # 从存储库下载 chart 并(可选)将其解压缩到本地目录中
get # 下载一个命名 release
help # 列出所有帮助信息
history # 获取 release 历史
home # 显示 HELM_HOME 的位置
init # 在客户端和服务器上初始化Helm
inspect # 检查 chart 详细信息
install # 安装 chart 存档
lint # 对 chart 进行语法检查
list # releases 列表
package # 将 chart 目录打包成 chart 档案
plugin # 添加列表或删除 helm 插件
repo # 添加列表删除更新和索引 chart 存储库
reset # 从集群中卸载 Tiller
rollback # 将版本回滚到以前的版本
search # 在 chart 存储库中搜索关键字
serve # 启动本地http网络服务器
status # 显示指定 release 的状态
template # 本地渲染模板
test # 测试一个 release
upgrade # 升级一个 release
verify # 验证给定路径上的 chart 是否已签名且有效
version # 打印客户端/服务器版本信息
dep # 分析 Chart 并下载依赖
2.2 添加仓库
添加公用仓库
- 微软仓库(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 add incubator https://kubernetes-charts-incubator.storage.googleapis.com
helm repo add aliyuncs https://apphub.aliyuncs.com
helm repo add kong https://charts.konghq.com
helm repo update
添加私有仓库
暂无私有仓库
查看已添加的仓库
[root@harbor ~]# helm repo list
NAME URL
stable http://mirror.azure.cn/kubernetes/charts
aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
kong https://charts.konghq.com
incubator https://kubernetes-charts-incubator.storage.googleapis.com
aliyuncs https://apphub.aliyuncs.com
2.3 指定k8s集群
/root/.kube/config
文件是kubectl的配置文件,里面有k8s集群的配置信息,Helm可直接使用。
# 文件/etc/profile追加
export KUBECONFIG=/root/.kube/config
# 刷新环境变量
source /etc/profile
三、安装一个Nginx
3.1 本地安装
[root@harbor ~]# helm create nginx
[root@harbor ~]# helm install nginx-demo ./nginx/
NAME: nginx-demo
LAST DEPLOYED: Wed Jul 8 11:29:52 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=nginx,app.kubernetes.io/instance=nginx-demo" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace default port-forward $POD_NAME 8080:80
查看
[root@harbor ~]# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
nginx-demo default 1 2020-07-08 11:29:52.361219784 +0800 CST deployed nginx-0.1.0 1.16.0
删除
helm uninstall nginx-demo
3.2 使用网络源
两种方式,都行
# 在helm hub搜索nginx
helm search hub nginx
# 在添加的仓库repo源查找
helm search repo nginx
安装
helm install demo-nginx aliyuncs/nginx
有五种安装Chart的方式。
- Chart Reference:helm install myweb bitnami/tomcat
- Chart包路径:helm install myweb ./tomcat-6.1.3.tgz
- Chart包目录:helm install myweb ./tomcat
- URL绝对路径:helm install myweb https://charts.bitnami.com/bitnami/tomcat-6.1.3.tgz
- 仓库URL和Chart Reference:helm install --repo https://charts.bitnami.com/bitnami/ myweb tomcat
更多推荐
已为社区贡献3条内容
所有评论(0)