helm——部署私有库
时间:2022-07-25
本文章向大家介绍helm——部署私有库,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、运行web容器作为私有仓库(我在node01上运行这个容器)
#运行web容器
[root@docker-k8s02 ~]# docker run -d -p 81:80 -v /var/www:/usr/local/apache2/htdocs httpd
#创建目录,用于存放charts包
[root@docker-k8s02 ~]# mkdir -p /var/www/charts
2、通过helm package将tesetchart打包
[root@docker-k8s01 ~]# helm create testchart #创建testechart
[root@docker-k8s01 ~]# helm package testchart #进行打包
#执行打包操作后,会在当前目录下生成一个名为testchart-0.1.0.tgz的包
3、执行helm repo index生成库的index文件
[root@docker-k8s01 ~]# mkdir myrepo
[root@docker-k8s01 ~]# mv testchart-0.1.0.tgz myrepo/
[root@docker-k8s01 ~]# helm repo index myrepo/ --url http://192.168.20.3:81/charts
#上述的url是第一步所运行的httpd镜像所在的节点IP+端口
[root@docker-k8s01 ~]# ls myrepo/ #确定index.yaml文件已生成
index.yaml testchart-0.1.0.tgz
4、将生成的index.yaml文件及charts包复制到httpd容器所在节点映射到本地的目录
[root@docker-k8s01 ~]# cd myrepo/
[root@docker-k8s01 myrepo]# scp index.yaml testchart-0.1.0.tgz docker-k8s02:/var/www/charts
5、通过helm repo add 将新仓库添加到helm
#下面的URL是web容器的URL
[root@docker-k8s01 myrepo]# helm repo add newrepo http://192.168.20.3:81/charts
[root@docker-k8s01 myrepo]# helm repo list #确认返回的列表有新添加的仓库
其实,配置至此,已经可以正常供内网环境使用这个charts包的私有仓库了,下面是一些验证。
6、搜索复制到node01上的charts包
#搜索testchart(使用scp复制到docker-k8s02的包)
[root@docker-k8s01 myrepo]# helm search testchart
NAME CHART VERSION APP VERSION DESCRIPTION
local/testchart 0.1.0 1.0 A Helm chart for Kubernetes
newrepo/testchart 0.1.0 1.0 A Helm chart for Kubernetes
#可以看到返回的结果有新创建的库下对应的包“newrepo/testchart”
#此时的搜索结果和本地没有关系,因为这个包是从web容器中搜索到的,可以将本地的包删除再进行搜索测试
[root@docker-k8s01 myrepo]# ls
index.yaml testchart-0.1.0.tgz
[root@docker-k8s01 myrepo]# rm -rf *
[root@docker-k8s01 myrepo]# helm search testchart
#还是可以看到私有仓库中的包的
7、从新的私有库中安装testchart进行测试
#可以像使用共有库一样使用这个私有库了
[root@docker-k8s01 myrepo]# helm install newrepo/testchart -n my-nginx
8、更新charts包所运行服务的镜像
其实就是一个服务版本升级的操作,大概思路如下:修改解压后的charts包目录下的values.yaml文件为所需的值(values.yaml文件包含的是这个服务的值,可以在里面指定镜像及标签、数据持久化的类型等等),修改完成后,再使用下面的命令进行升级操作。
[root@docker-k8s01 ~]# helm upgrade -f sunqiuming-chart/values.yaml my-nginx newrepo/testchart
#my-nginx是之前实例的名称,可以通过“helm list”查看实例名称
#newrepo/testchart :为自定义仓库中的chart包
- 基于OpenCV的跳一跳外挂实现原理
- React Native 0.50版本新功能简介
- Android滤镜效果实现及原理分析
- Spring Boot入门及整合mybatis
- Swift开发React Native组件
- 深入理解Android插件化技术
- Kotlin DSL详解
- 大规模异常滥用检测:基于局部敏感哈希算法——来自Uber Engineering的实践
- 事务与一致性:刚性or柔性?
- 文本相似度算法小结
- return的值都去哪了?去哪了,“谁伸手了,return的结果就给谁”
- 面试时对方问你,“xxx需求你是怎么做的”?你可以这样回答
- vue.js的条件渲染,其实就是模板里面写if else
- vue.js的插槽 - slot 是啥?要我说,它就是个“形参”
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 编码的浪漫:完美序列化的官方评测
- 【Vulnhub】symfonos2
- PWN入门(unsafe unlink)
- tf_cnn_benchmark 显存问题
- Spark on Kubernetes PodTemplate 的配置
- IO ports
- 【android系统】使用s3来上传下载文件
- 【Spark on Kubernetes】Executor环境变量
- Python获取字典值
- 应用程序InetlliJ IDEA不能打开
- yum install空间不足
- prometheus-nginxlog-exporter构建Nginx日志监控
- s3cmd put文件的过程
- Ceph RGW配置Nginx代理出现S3Error: 403 (Forbidden)
- OmniDiskSweeper清理系统文件