目录

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 的安装非常简单,可以通过命令行来安装,诸如 brewscoopgofishsnap 等方式来安装,也可以通过下载二进制文件包并将其添加到 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

可以查看一下生成的 deploymentpodservice 资源:

$ 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 的使用相关推荐

  1. 在 Kubernetes 上安装和运行极狐GitLab实例

    目录 写在前面 极狐GitLab 在 Kubernetes 上的安装 前提条件 Chart 准备 values.yaml 定制 Helm 安装 在前面的文章中分别演示了如何用安装包. docker 在 ...

  2. 使用 KubeSphere 和极狐GitLab 打造云原生持续交付系统

    KubeSphere 简介 Kubernetes 是一个非常复杂的容器编排平台,学习成本非常高,KubeSphere 所做的事情就是高度产品化和抽象了底层 Kubernetes,是一个面向云原生的操作 ...

  3. 极狐gitlab版本升级 #JIHULAB101

    当前版本14.3.4,分享下Omnibus和docker两种部署方式下如何升级到最新版本 升级路线: 极狐14.3.4 -> 极狐14.9.5 -> 极狐14.10.5 -> 极狐1 ...

  4. 版本更新 | 极狐 GitLab 15.2 发布飞书通知机器人、多层史诗调整至专业版、实时 Wiki 图表预览和全新设计的合并请求报告

    沿袭我们28日发布的传统,今天带来了极狐GitLab 15.2 版本,新功能包括 极狐版专享 - 飞书通知机器人,极狐版专享 - 多层史诗调整至专业版,实时 Wiki 图表预览.事件(Incident ...

  5. 两步开启研发团队专属ChatOps|极狐GitLab ChatOps 的设计与实践

    本文来自: 彭亮 极狐(GitLab) 高级产品经理 郭旭东 极狐(GitLab) 资深创新架构师 舒文斌 极狐(GitLab) 高级网站可靠性工程师 最近几天,ChatGPT 真是杀疯了 ! 相信大 ...

  6. 极狐(GitLab)宣布获数亿元A轮融资,将加速推动中国开源DevOps生态

    2022年4月11日,极狐(GitLab)(以下简称"极狐公司")正式宣布A轮融资签约完成,融资金额达数亿元人民币.本轮融资分两阶段进行,第一阶段由淡马锡领投,Alpha Prim ...

  7. 极狐(GitLab)发布首款“GitNative”DevOps云一体化解决方案

    2022年1月5日,极狐(GitLab)正式宣布推出业界首款"GitNative"--"Git原生" DevOps 云一体化解决方案(以下简称"Git ...

  8. 极狐GitLab硬实力助力中国开源生态建设

    近两年,我国开源生态发展势头迅猛,在推动信息技术产业创新,促进产业协作,加快各行业数字化进程等方面的作用日益突出.为满足各类企业级用户技术创新与敏捷迭代的需求,9月23日,极狐GitLab在京举办了& ...

  9. 使用 GPG 为极狐GitLab git commit 签名

    目录 git commit 签名 GPG key 生成 使用 GPG 为极狐GitLab git commit 签名 在极狐GitLab 中添加 GPG public key 配置 Git 进行 Gi ...

最新文章

  1. 提高C++性能的编程技术笔记:内联+测试代码
  2. 知乎李大海对话阿里云贾扬清:透视AI应用难题与未来趋势
  3. centos6.5安装jira6.3.6详细文档汉化破解
  4. linux shell中的命令自动补全(compgen complete)与 命令行参数解析
  5. 解决oracle主键问题,解决renren-security使用oracle主键问题
  6. Regex 正则零宽断言
  7. Linux上Libevent的安装
  8. Maven : mvn dependency:copy-dependencies
  9. 关于Python,虚拟环境和Visual Studio Code集成的说明
  10. 上周热点回顾(4.30-5.6)
  11. js Google 翻译 Api
  12. cad2010多个文件并排显示_CAD2010如何设置 使一个窗口打开多个文件,并排显示(和360浏览器类似的并排缩略)?...
  13. day16-20180705-流利阅读笔记
  14. 蓝桥杯 算法训练 Beaver's Calculator
  15. IPv4下,划分子网,构造超网(CIDR)
  16. IBM ServerGuide 9.40
  17. Alleviating the Inconsistency Problem of Applying Graph Neural Network to Fraud Detection阅读笔记
  18. Arduino RP2040 读取ADC采样数据
  19. 三菱plc状态继电器s详解
  20. ssh升级后无法登陆_【攻略】关于地税系统升级后无法登录、申报错误的10个解决方法!...

热门文章

  1. java simp,Java 自动装配SimpMessagingTemplate
  2. 质量管理之代码的圈复杂度
  3. web2.0带来的狂潮
  4. Centos7安装trojan脚本
  5. 干掉Facebook,干掉扎克伯格!
  6. 计算机网络的标准化工作与相关组织
  7. win10 10586 正式版安装sql2000(笔记)
  8. 相机计算坐标公式_相机采样点的坐标转换方法与流程
  9. linux 文件唯一标识符,详解Linux中获取全球唯一标示符UUID的方法
  10. CyclicBarrier 是什么?怎么用?