极狐GitLab Helm Registry 的使用
目录
Helm
Helm 的安装
Helm Chart 的创建
Helm 的使用
极狐GitLab Helm Registry 使用
上传 Helm Chart 到极狐GitLab Helm Registry
使用极狐GitLab Helm Registry Chart
Helm
Helm 是 Kubernetes 的包管理工具,是发现、分享以及使用那些在 Kubernetes 上构建的软件的最好方法。目前是 3.9.0
版本。
Helm 的安装
Helm 的安装非常简单,可以通过命令行来安装,诸如 brew
、scoop
、gofish
、snap
等方式来安装,也可以通过下载二进制文件包并将其添加到 PATH 中即可,本文选择用通过下载二进制文件包来安装。
在 release页面找到需要安装的版本,直接下载即可。以 macOS 为例,用如下命令完成下载:
$ wget https://get.helm.sh/helm-v3.9.0-darwin-amd64.tar.gz
然后解压并将解压后的二进制文件添加到 PATH 中:
$ tar -zxvf helm-v3.9.0-darwin-amd64.tar.gz
x darwin-amd64/
x darwin-amd64/helm
x darwin-amd64/LICENSE
x darwin-amd64/README.md$ mv darwin-amd64/helm /usr/local/bin/helm
然后使用 version
或者 --help
来查看是否安装成功:
$ helm version
version.BuildInfo{Version:"v3.9.0", GitCommit:"7ceeda6c585217a19a1131663d8cd1f7d641b2a7", GitTreeState:"clean", GoVersion:"go1.17.5"}
Helm Chart 的创建
使用 create
命令即可创建一个 helm chart
$ helm create devops-is-shit
Creating devops-is-shit
chart 的目录结构如下:
$ tree
.
├── Chart.yaml
├── charts
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── hpa.yaml
│ ├── ingress.yaml
│ ├── service.yaml
│ ├── serviceaccount.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
Helm 的使用
helm create devops-is-shit
Creating devops-is-shit
修改 values.yaml
文件,写入镜像、资源限制等基本内容,即可完成一个简单的 helm chart demo。接着用 helm install
命令进行安装测试。
$ helm install jihu --namespace jihu --create-namespace -f values.yaml .
NAME: jihu
LAST DEPLOYED: Wed Jul 6 09:04:16 2022
NAMESPACE: jihu
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:export POD_NAME=$(kubectl get pods --namespace jihu -l "app.kubernetes.io/name=devops-is-shit,app.kubernetes.io/instance=jihu" -o jsonpath="{.items[0].metadata.name}")export CONTAINER_PORT=$(kubectl get pod --namespace jihu $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")echo "Visit http://127.0.0.1:8080 to use your application"kubectl --namespace jihu port-forward $POD_NAME 8080:$CONTAINER_PORT
可以查看一下生成的 deployment
、pod
、service
资源:
$ kubectl -n jihu get deploy,pods,svc
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/jihu-devops-is-shit 1/1 1 1 2d5hNAME READY STATUS RESTARTS AGE
pod/jihu-devops-is-shit-6d5c8cdcf8-mffxz 1/1 Running 0 45sNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/jihu-devops-is-shit ClusterIP 10.107.177.80 <none> 80/TCP 2d5h
接着将 helm chart 打成一个 package:
$ helm package devops-is-shit
Successfully packaged chart and saved it to: /Users/xiaomage/Documents/xiaomage/helm-demo/devops-is-shit-0.1.0.tgz$ ls -ltr
total 8
drwxr-xr-x 7 xiaomage staff 224 Jul 8 14:14 devops-is-shit
-rw-r--r-- 1 xiaomage staff 3554 Jul 8 14:14 devops-is-shit-0.1.0.tgz
极狐GitLab Helm Registry 使用
接着将上面生成的 helm chart package 上传到极狐GitLab Helm Registry。关于极狐GitLab Helm Registry 使用的详细内容,可以查看极狐GitLab 官方文档。
上传 Helm Chart 到极狐GitLab Helm Registry
使用如下命令即可将上述 package 上传到极狐GitLab Helm Registry:
$ curl --request POST \--form 'chart=@mychart-0.1.0.tgz' \--user <username>:<access_token> \https://gitlab.example.com/api/v4/projects/<project_id>/packages/helm/api/<channel>/charts
参数说明:
- :GitLab 用户名或部署令牌用户名。
- <access_token>:个人访问令牌或部署令牌。
- <project_id>:项目 ID(如 42)或 URL-encoded 项目路径(如group%2Fproject)。
- :channel 的名称(如 stable)。
传入实际参数后执行命令:
$ curl --request POST \--form 'chart=@devops-is-shit-0.1.0.tgz' \--user keyboard-man:YOUR-JIHU-ACCESS-TOKEN \https://jihulab.com/api/v4/projects/19649/packages/helm/api/test/charts
返回结果如下:
{"message":"201 Created"}
可以在极狐GitLab 界面上查看:项目 --> 软件包与镜像库 --> 软件包库
可以查看点击详情:
使用极狐GitLab Helm Registry Chart
首先需要添加极狐GitLab Helm repo:
$ helm repo add --username <username> --password <access_token> project-1 https://gitlab.example.com/api/v4/projects/<project_id>/packages/helm/<channel>
传入实际参数并执行命令:
$ helm repo add --username keyboard-man --password YOUR-JIHU-ACCESS-TOKEN jihu-helm https://jihulab.com/api/v4/projects/19649/packages/helm/test
"jihu-helm" has been added to your repositories
查看 repo 是否添加成功:
$ helm repo list
NAME URL
jihu-helm https://jihulab.com/api/v4/projects/19649/packages/helm/test
可以看到已经添加成功,接着就可以使用了。用下面命令即可使用上述 helm chart 来安装一个 release:
$ helm install jihu-helm --namespace jihu-helm --create-namespace jihu-helm/devops-is-shit
NAME: jihu-helm
LAST DEPLOYED: Fri Jul 8 14:47:35 2022
NAMESPACE: jihu-helm
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:export POD_NAME=$(kubectl get pods --namespace jihu-helm -l "app.kubernetes.io/name=devops-is-shit,app.kubernetes.io/instance=jihu-helm" -o jsonpath="{.items[0].metadata.name}")export CONTAINER_PORT=$(kubectl get pod --namespace jihu-helm $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")echo "Visit http://127.0.0.1:8080 to use your application"kubectl --namespace jihu-helm port-forward $POD_NAME 8080:$CONTAINER_PORT
查看生成的资源:
$ kubectl -n jihu-helm get deploy,pods,svc
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/jihu-helm-devops-is-shit 1/1 1 1 97sNAME READY STATUS RESTARTS AGE
pod/jihu-helm-devops-is-shit-6d847f6489-c79zm 1/1 Running 0 97sNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/jihu-helm-devops-is-shit ClusterIP 10.98.248.103 <none> 80/TCP 97s
可以看到成功创建了 pod
。
可以看到极狐GitLab Helm Registry 的使用还是非常方便的,下一篇内容将讲述如何将极狐GitLab Helm Registry 的使用和极狐GitLab CI/CD 结合起来。
极狐GitLab Helm Registry 的使用相关推荐
- 在 Kubernetes 上安装和运行极狐GitLab实例
目录 写在前面 极狐GitLab 在 Kubernetes 上的安装 前提条件 Chart 准备 values.yaml 定制 Helm 安装 在前面的文章中分别演示了如何用安装包. docker 在 ...
- 使用 KubeSphere 和极狐GitLab 打造云原生持续交付系统
KubeSphere 简介 Kubernetes 是一个非常复杂的容器编排平台,学习成本非常高,KubeSphere 所做的事情就是高度产品化和抽象了底层 Kubernetes,是一个面向云原生的操作 ...
- 极狐gitlab版本升级 #JIHULAB101
当前版本14.3.4,分享下Omnibus和docker两种部署方式下如何升级到最新版本 升级路线: 极狐14.3.4 -> 极狐14.9.5 -> 极狐14.10.5 -> 极狐1 ...
- 版本更新 | 极狐 GitLab 15.2 发布飞书通知机器人、多层史诗调整至专业版、实时 Wiki 图表预览和全新设计的合并请求报告
沿袭我们28日发布的传统,今天带来了极狐GitLab 15.2 版本,新功能包括 极狐版专享 - 飞书通知机器人,极狐版专享 - 多层史诗调整至专业版,实时 Wiki 图表预览.事件(Incident ...
- 两步开启研发团队专属ChatOps|极狐GitLab ChatOps 的设计与实践
本文来自: 彭亮 极狐(GitLab) 高级产品经理 郭旭东 极狐(GitLab) 资深创新架构师 舒文斌 极狐(GitLab) 高级网站可靠性工程师 最近几天,ChatGPT 真是杀疯了 ! 相信大 ...
- 极狐(GitLab)宣布获数亿元A轮融资,将加速推动中国开源DevOps生态
2022年4月11日,极狐(GitLab)(以下简称"极狐公司")正式宣布A轮融资签约完成,融资金额达数亿元人民币.本轮融资分两阶段进行,第一阶段由淡马锡领投,Alpha Prim ...
- 极狐(GitLab)发布首款“GitNative”DevOps云一体化解决方案
2022年1月5日,极狐(GitLab)正式宣布推出业界首款"GitNative"--"Git原生" DevOps 云一体化解决方案(以下简称"Git ...
- 极狐GitLab硬实力助力中国开源生态建设
近两年,我国开源生态发展势头迅猛,在推动信息技术产业创新,促进产业协作,加快各行业数字化进程等方面的作用日益突出.为满足各类企业级用户技术创新与敏捷迭代的需求,9月23日,极狐GitLab在京举办了& ...
- 使用 GPG 为极狐GitLab git commit 签名
目录 git commit 签名 GPG key 生成 使用 GPG 为极狐GitLab git commit 签名 在极狐GitLab 中添加 GPG public key 配置 Git 进行 Gi ...
最新文章
- 提高C++性能的编程技术笔记:内联+测试代码
- 知乎李大海对话阿里云贾扬清:透视AI应用难题与未来趋势
- centos6.5安装jira6.3.6详细文档汉化破解
- linux shell中的命令自动补全(compgen complete)与 命令行参数解析
- 解决oracle主键问题,解决renren-security使用oracle主键问题
- Regex 正则零宽断言
- Linux上Libevent的安装
- Maven : mvn dependency:copy-dependencies
- 关于Python,虚拟环境和Visual Studio Code集成的说明
- 上周热点回顾(4.30-5.6)
- js Google 翻译 Api
- cad2010多个文件并排显示_CAD2010如何设置 使一个窗口打开多个文件,并排显示(和360浏览器类似的并排缩略)?...
- day16-20180705-流利阅读笔记
- 蓝桥杯 算法训练 Beaver's Calculator
- IPv4下,划分子网,构造超网(CIDR)
- IBM ServerGuide 9.40
- Alleviating the Inconsistency Problem of Applying Graph Neural Network to Fraud Detection阅读笔记
- Arduino RP2040 读取ADC采样数据
- 三菱plc状态继电器s详解
- ssh升级后无法登陆_【攻略】关于地税系统升级后无法登录、申报错误的10个解决方法!...