【转】K8S中部署Helm
K8S中的包管理工具
1. 客户端Helm(即Helm)
通过脚本安装:curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > helm.sh
,赋权运行:
1 |
chmod +x helm.sh |
注:可能在执行脚本时出现curl: (7) Failed connect to kubernetes-helm.storage.googleapis.com:443; 网络不可达
异常信息,多执行几次即可。
2. 服务端Tiller
直接helm init
,即可在K8S集群中安装Tiller(在kube-system命名空间中),但执行的时虽然提示成功了,但K8S查看容器状态发现有Failed to pull image "gcr.io/kubernetes-helm/tiller:v2.13.1"....
的异常,查看tiller-deployment
的yaml文件发现容器的镜像为gcr.io/kubernetes-helm/tiller:v2.13.1
,拉不到,去dockerhub上查看谷歌复制镜像命名空间中mirrorgooglecontainers
是否有,没有又查看是否有用户镜像docker search tiller:v2.13.1
,拉取一个用户的镜像,修改tag、删除旧的(建议在每个节点都干一下,选择器可能没有指定):
1 |
docker pull hekai/gcr.io_kubernetes-helm_tiller_v2.13.1 |
再次查看pod已经成功。
tiller授权:
1 |
# 设置账号 |
卸载tiller:helm reset
或helm reset --force
3. 使用
创建Helm chart(Helm中的包的形式叫做chart):
1 |
# 拉取测试代码 |
生成的chart骨架为:
testapi-chart
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── ingress.yaml
│ ├── NOTES.txt
| ├── service.yaml
│ └── tests
└── values.yaml
其中templates目录中存放的是K8S部署文件的模板,Chart.yaml文件如下:
1 |
# chartAPI的版本,必须只能设为v1 |
其中values.yaml文件如下:
1 |
# Default values for testapi-chart. |
可以进入Chart.yaml
所在目录运行Chart:
1 |
cd testapi-chart |
一切OK的话可以进行打包(在Chart.yaml
的父目录外):
1 |
# --debug标识可选,加上可以看到输出,testapi-chart是要打包的chart目录,打出的包在当前目录下 |
现在打包出来在当前目录,也可以直接发布到本地的helm仓库:helm install testapi-chart-0.1.0.tgz
,输出如下:
1 |
NAME: lumbering-zebu |
上述就已经在K8S中创建了deployment
,查看默认的命名空间就可以发现多了一个lumbering-zebu-testapi-chart
的Deployment,可以查看deployment的包:
1 |
helm ls |
修改Chart的打包版本0.1.0
–>0.1.1
,再次执行打包、发布,再次查看:
1 |
kubectl get deployments |
出现2个了,现在需要删除旧版本的deployment的chart:helm delete lumbering-zebu-testapi-chart
,通过helm ls
和kubectl get pods
可以发现旧版本的deployment都已经被删除。删除后同样可以回滚:
1 |
# 将testapi包按顺序回滚1次修改,注意不带-testapi-chart |
但这种情况必须记得删除包的名字,实际可以通过helm ls --deleted
查看已删除包的名字。
升级,可以在修改相关的Chart.yaml文件后,直接在其所在目录运行helm upgrade odd-chicken .
命令即可更新:
1 |
# 验证 |
【设置Helm仓库】
越来越觉得这东西像mvn了,Helm的仓库就是一个WEB服务器,如从charts
目录提供helm服务:helm serve --repo-path ./charts
。此外关于Chart服务的管理可能需要安装Monocular来提供WEB页面,安装步骤如下:
1 |
# 拉取所需要的镜像 |
然后等待,安装完了之后,即可通过
【使用Helm仓库】
使用Helmet作为Helm仓库,可以将它部署到K8S集群中并添加Chart。
转自:https://blog.wgl.wiki/K8S%E4%B8%AD%E9%83%A8%E7%BD%B2Helm/
【转】K8S中部署Helm的更多相关文章
- Prometheus K8S中部署Alertmanager
Prometheus K8S中部署Alertmanager 设置告警和通知的主要步骤如下:一.部署Alertmanager二.配置Prometheus与Alertmanager通信三.配置告警 1. ...
- Kubernetes之在k8s中部署Java应用
部署好了k8s以后 部署参考https://www.cnblogs.com/minseo/p/12055731.html 怎么在k8s部署应用 项目迁移到k8s平台是怎样的流程 1,制作镜像 2,控制 ...
- Docker & k8s 系列三:在k8s中部署单个服务实例
本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...
- k8s中部署springcloud
安装和配置数据存储仓库MySQL 1.MySQL简介 2.MySQL特点 3.安装和配置MySQL 4.在MySQL数据库导入数据 5.对MySQL数据库进行授权 1.MySQL简介 MySQL 是一 ...
- 不使用pvc的方式在K8S中部署apisix-gateway
不使用pvc的方式在K8S中部署apisix-gateway 简介 我的apisix使用etcd作为数据存储服务器,官方的使用pvc方式或者docker-compose的方式,对于新手不太友好,本篇是 ...
- K8S中部署apisix(非ingress)
不使用pvc的方式在K8S中部署apisix-gateway 简介 因为公司项目准备重构,现在做技术储备,之前公司项目使用的ocelot做网关,ocelot是.net平台下的一个网关,也是很不错,但是 ...
- 在k8s中部署前后端分离项目进行访问的两种配置方式
第一种方式 (1) nginx配置中只写前端项目的/根路径配置 前端项目使用的Dockerfile文件内容 把前端项目编译后生成的dist文件夹放在nginx的html默认目录下,浏览器访问前端项目时 ...
- k8s集群中部署prometheus server
1.概述 本文档主要介绍如何在k8s集群中部署prometheus server用来作为监控的数据采集服务器,这样做可以很方便的对k8s集群中的指标.pod的.节点的指标进行采集和监控. 2.下载镜像 ...
- 部署helm服务
helm在ocp中相当于catalog中的template k8s中使用helm之前遇到的问题 .很难管理.编辑和维护如此多的服务.每个服务都有若干配置,缺乏一个更高层次的工具将这些配置组织起来. . ...
随机推荐
- Nacos使用和注册部分源码介绍
Nacos简单介绍 Nacos致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理.Nacos帮助您更敏捷和容易地构建. ...
- P2986 [USACO10MAR]伟大的奶牛聚集(思维,dp)
题目描述 Bessie is planning the annual Great Cow Gathering for cows all across the country and, of cours ...
- Flask+pin
Flask+SSTI的新火花 记一次buu刷题记和回顾祥云杯被虐出屎的经历.题目:[GYCTF2020]FlaskApp 一 题目初见 朴实无华的页面,一个base64的小程序页面 看到有提示. 我就 ...
- windows下如何安装Python、pandas
windows下如何安装Python.pandas 本篇主要涵盖以下三部分内容: Python.Pycharm的安装 使用Pycharm创建.运行Python程序 安装pandas 1.Python. ...
- printf函数输出格式总结
printf函数格式 函数描述: printf("[格式化字符串]", [参数链表]); 函数声明: int printf(const char *format, ...) ; 输 ...
- 【Android】报错 Please ensure Hyper-V is disabled in Windows Features, or refer to the Intel HAXM 的解决方案
参考文章 实测华为锐龙本(adm yes)安装Android avd虚拟机教程 环境 Android Studio 3.6; Windows 1909; AMD Ryzen 4800U with Ra ...
- 集成Redis缓存
一.简介 1.场景 由于首页数据变化不是很频繁,而且首页访问量相对较大,所以我们有必要把首页数据缓存到redis中,减少数据库压力和提高访问速度. 2.RedisTemplate Jedis是Redi ...
- LVM 逻辑卷扩容
当lv空间不够用时,就需要我们对lv进行的扩容. 扩容分两种情况:(lv的有点,支持在线扩容) VG有充足的空间,可直接对LV进行扩容: VG空间不足,需要先对VG进行扩容,然后再对LV进行扩容 这里 ...
- Django 模型(数据库)-cmd下的操作
Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在settings.py ...
- CISCO 如何重置3850交换机密码
SUMMARY STEPS: Connect a terminal or PC to the switch. Set the line speed on the emulation software ...