当前位置:网站首页>稳!上千微服务如何快速接入 Zadig(Helm Chart 篇)
稳!上千微服务如何快速接入 Zadig(Helm Chart 篇)
2022-06-28 22:01:00 【InfoQ】
概述
- 从代码库批量同步配置:将 Helm Chart 配置组织在代码库中,从代码库同步配置,实现服务的批量创建。
- 使用 Helm Chart 模板创建服务:抽象 Helm Chart 配置模板,在 values 文件中支持变量,指定少许变量即可快速创建服务,且一套模板可复用到多套环境中。
- 使用 Helm Chart 模板批量创建服务:抽象 Helm Chart 配置模板,创建服务时指定 values 文件覆盖模板,便可批量创建服务,且一套模板可复用到多套环境中。
从代码库批量同步配置
voting-demo- 源码:zadig/voting-app
- 服务:包括 5 个微服务(
db/redis/result/vote/worker)
- Helm Chart 配置:位于源码下的
chart目录,目录结构如下所示。values.yaml中包括所有服务的镜像信息,templates目录下包括所有服务的配置,并引用{{ .Values.services.服务名.image }}作为容器镜像信息
zadig/examples/voting-app/chart
├── Chart.yaml
├── templates
│ ├── db.yaml
│ ├── redis.yaml
│ ├── result.yaml
│ ├── vote.yaml
│ └── worker.yaml
└── values.yaml从代码库同步
从代码库同步加载examples/voting-app/chart

将服务加入到环境
加入环境

使用 Helm Chart 模板创建服务
multi-service-demoservice1service2service3k8s-yamlgeneral-chartzadig/examples/multi-service-demo/
├── general-chart # Helm Chart 服务模板
│ ├── Chart.yaml
│ ├── templates
│ │ ├── _helpers.tpl
│ │ ├── deployment.yaml
│ │ └── service.yaml
│ └── values.yaml
├── k8s-yaml # 各服务完整的 K8s YAML 配置
│ ├── service1
│ │ ├── deployment.yaml
│ │ └── service.yaml
│ ├── service2
│ │ ├── deployment.yaml
│ │ └── service.yaml
│ ├── service3
│ │ ├── deployment.yaml
│ │ └── service.yamlvalues.yamlportT-ServicefullnameOverride: $T-Service$
replicaCount: 1
port: {{.port}}
imagePullSecretsName: "default-registry-secret"
image:
repository: "ccr.ccs.tencentyun.com/koderover-public/$T-Service$"
tag: "latest"
resources:
requests:
cpu: 10m
mem: 10Mi
limits:
cpu: 20m
mem: 20Mi创建 Helm Chart 模板
模板库Helm Chart
+multi-service-demo-template加载examples/multi-service-demo/general-chart

使用模板新建服务
使用模板新建导入

service2service3service2service3将服务加入环境
添加服务


使用 Helm Chart 模板批量创建服务
multi-service-demoservice1service2service3full-chartsbase-chartvalueszadig/examples/multi-service-demo/
├── base-chart # Helm Chart 服务模板
│ ├── Chart.yaml
│ ├── templates
│ │ ├── _helpers.tpl
│ │ ├── deployment.yaml
│ │ └── service.yaml
│ └── values.yaml
├── full-charts # 各服务完整、独立的 Helm Chart 配置
│ ├── service1
│ │ ├── Chart.yaml
│ │ ├── templates
│ │ └── values.yaml
│ ├── service2
│ │ ├── Chart.yaml
│ │ ├── templates
│ │ └── values.yaml
│ └── service3
│ ├── Chart.yaml
│ ├── templates
│ └── values.yaml
└── values # 对应各服务的 values
├── service1.yaml
├── service2.yaml
└── service3.yaml
创建 Helm Chart 模板
multi-service-demo-base-templateexamples/multi-service-demo/base-chart
使用模板批量新建服务
使用模板新建批量创建导入examples/multi-service-demo/values


将服务加入环境
添加服务


- 使用 Zadig 工作流
- Zadig 环境 - K8s Helm Chart 项目
- Zadig 版本管理 - K8s Helm Chart 项目
结语
边栏推荐
- There is no picture problem when using tcpdf to generate pdf
- Survival of beaver: post-90s female doctors and AI developers
- Pat 1054 the dominiant color (20 points)
- Binomial distribution (a discrete distribution)
- Wechat applet realizes left sliding deletion
- Is it safe to open an account on great wisdom
- [linq] execute SQL like in statements using EF to LINQ
- YAYA LIVE CTO 唐鸿斌:真正本地化,要让产品没有「产地」属性
- 阿海的忠告
- VR全景制作的前景如何?
猜你喜欢

After reading the list of global patent and chip buyers, I understand that high innovation can lead to high profits

Survival of beaver: post-90s female doctors and AI developers

Zadig 构建究竟何强大?一起来实践

C#/VB. Net to convert PDF to excel

硬件开发笔记(七): 硬件开发基本流程,制作一个USB转RS232的模块(六):创建0603封装并关联原理图元器件

AI deep dive of Huawei cloud

Move the mouse out of the selected area style cancel

rosdep update 使用小鱼fishros解决ros1/ros2问题 2022

2022-06-28:以下golang代码输出什么?A:true;B:false;C:panic;D:编译失败。 package main import “fmt“ func main() {

Use of dynamic panels
随机推荐
VR全景创业为了把控风险,如何选择加盟公司?
[dynamic programming] p1018 linear DP: maximum product
小样本利器2.文本对抗+半监督 FGSM & VAT & FGM代码实现
Zadig 面向開發者的自測聯調子環境技術方案詳解
5毛VS600亿,食品安全问题是卫龙上市最大的拦路虎?
How to open a safe and reliable securities account in the financial management class of qiniu school?
Icon fill color and background color change together
Progress in visual weakly supervised learning
Un voyage profond d'IA dans Huawei Cloud
职场人调研报告:裸辞占比最高的居然是中年人
Dart的类扩展、可选类型扩展
VR全景制作的前景如何?
基于graph-linked embedding的多组学单细胞数据整合与调控推理
2022-06-28:以下golang代码输出什么?A:true;B:false;C:panic;D:编译失败。 package main import “fmt“ func main() {
Analysis of CSRF Cross Site Request Forgery vulnerability
代码复查
Career consultation | what should I answer when I am asked about my intended salary during the interview?
职场进阶 | 了解岗位优势三板斧之“进场”
[linq] execute SQL like in statements using EF to LINQ
CVPR 2022 𞓜 a creative and aesthetic text generation method! Support any input