Kubernetes教程-Helm
安装helm3:
wget https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz tar -zxvf helm-v3.2.4-linux-amd64.tar.gz
cd linux-amd64
ll
cp -a helm /usr/local/bin/helm chmod a+x /usr/local/bin/helm
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh chmod 700 get_helm.sh ./get_helm.sh
helm env
添加公用的仓库
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
指定对应的k8s集群
这一步非常关键,它是helm与k8s通讯的保证,这一步就是把k8s环境变量KUBECONFIG进行配置
注:v3版本不再需要Tiller,而是通过ApiServer与k8s交互,可以设置环境变量KUBECONFIG
来指定存有ApiServre的地址与token的配置文件地址,默认为~/.kube/config
export KUBECONFIG=/root/.kube/config #可以写到/etc/profile里
部署dashboard:
cd /usr/local/install-k8s/plugin mkdir dashboard cd dashboard
helm fetch stable/kubernetes-dashboard
tar -zxvf kubernetes-dashboard-1.11.1.tgz
cd kubernetes-dashboard
helm install kubernetes-dashboard/kubernetes-dashboard --generate-name #生成名称
helm install my-release kubernetes-dashboard/kubernetes-dashboard #指定名称
helm list
kubectl get pods -n default -l "app.kubernetes.io/name=kubernetes-dashboard,app.kubernetes.io/instance=kubernetes-dashboard-1595829663" -o jsonpath="{.items[0].metadata.name}"
kubectl get pod -o wide
kubectl get svc -n default
kubectl edit svc kubernetes-dashboard-1595829663 -n default
改成NodePort
kubectl -n default get secret | grep kubernetes kubectl describe secret -n default
#vim rbac.yaml apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: tiller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: tiller namespace: kube-system #kubectl create -f rbac.yaml #helm init --service-account tiller --skip-refresh #kubectl get pod -n kube-system
ImagePullBackOff:表示失败
#kubectl describe pod tiller-deploy-d98957755-z9xlt -n kube-system #查看为啥tiller-deploy的pod没有成功,发现是tiller的image没有
#docker pull gcr.io/kubernetes-helm/tiller:v2.16.9
搜索helm的仓库源都有哪些?
创建自定义模版:
Chart.yaml文件也是固定不能变的。
创建templates目录名,并且不能修改。
安装写好的Chart.yaml文件的命令是
#helm install . #安装deployment和service,名称为随机字符串
#helm install --name nobby-eel . #安装时可以指定名称为:nobby-eel

#helm list #查看正在运行的helm。CHART是hello-world-1.0.0
#helm upgrade nobby-eel . #更新名为nobby-eel的helm
#helm history nobby-eel #查看名为nobby-eel的helm的历史记录
#helm status nobby-eel #查看名为nobby-eel的helm的状态
curl http://192.168.4.86:32671 #通过ip地址+port的方式访问
values.yaml和Chart.yaml文件在同一个目录
修改templates目录里面的yaml文件,使用values.yaml文件里面定义的变量值
运行安装的时候指定变量的值
#helm upgrade nobby-eel . #更新升级
删除、回滚、彻底删除
#helm delete nobby-eel #删除(其实没有被真正删掉) #helm ls --deleted #看到已经被删除helm #helm rollbak nobby-eel 6 #回滚指定名称和版本的helm #helm delete --purge nobby-eel #真正删除掉某一个helm
#helm install --dry-run . --debug --set image.tag=latest #不是真正执行,而是打印清单内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现