网站首页 > 精选文章 / 正文
目录结构如下:
.
├── argo-cd-app
│ └── argo-cd-app.yaml
├── base
│ ├── backend
│ │ ├── kustomization.yaml
│ │ ├── patch_common_env.yaml
│ │ └── patch-remove-service.yaml
│ ├── common
│ │ ├── configmap.yaml
│ │ ├── deployment-template.yaml
│ │ ├── envname.properties
│ │ ├── imagetag.properties
│ │ ├── ingress-template.yaml
│ │ ├── kustomization.yaml
│ │ ├── replicas.properties
│ │ ├── rollout-bluegreen-template.yaml
│ │ ├── rollout-canary-template.yaml
│ │ ├── servicename.properties
│ │ └── service-template.yaml
│ └── frontend
│ ├── kustomization.yaml
│ └── patch_common_env.yaml
├── generate_yaml.py
├── kustomization_template.j2
└── overlays
├── dev
│ ├── backend
│ │ ├── backend-service
│ │ │ └── kustomization.yaml
│ │ ├── cesp-oauth-iam-steve
│ │ │ └── kustomization.yaml
│ │ ├── kustomization.yaml
│ │ └── rollouts
│ ├── frontend
│ │ ├── kustomization.yaml
│ │ └── rollouts
│ │ └── kustomization.yaml
│ └── kustomization.yaml
├── prod
│ ├── backend
│ ├── frontend
│ └── kustomization.yaml
└── test
├── backend
├── frontend
├── kustomization.yaml
└── rollouts
上面主要的目录注释如下:
- 修改 base/ 中的通用配置
- 在 overlays/ 特定环境中调整差异化配置
- 使用 generate_yaml.py 生成最终kustomize 对应服务名称的配置
- 通过 Argo CD 同步应用到集群
常见操作如下:
1.配置基本的资源应用使用resources案例如下:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment-template.yaml
- ingress-template.yaml
- rollout-bluegreen-template.yaml
- service-template.yaml
- rollout-canary-template.yaml
2.使用configMapGenerator 生成对应的configmap
通过configmap传入对应的参数 如版本号服务名称等
configMapGenerator:
- files:
- SERVICE_NAME=../common/servicename.properties
- IMAGE_TAG=../common/imagetag.properties
- ENV_NAME=../common/envname.properties
- REPLICAS=../common/replicas.properties
name: common-config
使用replaments进行替换
replacements:
- source:
fieldPath: data.SERVICE_NAME
kind: ConfigMap
name: common-config
targets:
- fieldPaths:
- spec.rules.0.host
- spec.rules.0.http.paths.0.backend.serviceName
- metadata.name
select:
kind: Ingress
- fieldPaths:
- spec.selector.matchLabels.efssc-service
- spec.template.metadata.labels.efssc-service
select:
kind: Deployment
3.使用一些简单的标签添加修改以及名称添加
generatorOptions:
disableNameSuffixHash: true #禁止使用随机码名称
namePrefix: backend- 名称添加前缀
nameSuffix: -wade #名称添加后缀
#使用patches修改对应资源的数值
patches:
- path: patch_common_env.yaml
target:
kind: Deployment
- patch: |-
- op: replace
path: /spec/template/spec/containers/0/image
value: harbor.assistfc.com/middleware/prod-backend:v1.0.0
- op: replace
path: /metadata/name
value: prod-backend-service
target:
kind: Deployment
- path: patch-remove-service.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-service
spec:
template:
spec:
containers:
- name: test-service
env:
- name: FOSUN_API_URL
value: "https://api.fosun.com"
- name: FOSUN_API_KEY
value: "your-api-key"
- name: FOSUN_API_SECRET
value: "your-api-secret"
相关命令的用法
kustomize build --load_restrictor=none . 这里跳过扩目录的安全监测进行执行即可更详细的使用见官网(
https://kubectl.docs.kubernetes.io/guides/config_management/apply/)
Tags:yaml转properties
猜你喜欢
- 2025-05-23 K8s服务编排
- 2025-05-23 小项目开发神器,Spring-Data-Rest 让你的代码身轻如燕!
- 2025-05-23 Spring Cloud实战 | 第三篇:Spring Cloud整合Nacos实现配置中心
- 2025-05-23 Java中自定义配置文件可以如此简单
- 2025-05-23 Java教程:学会写Starter-你就懂了SpringBoot自动配置
- 2025-05-23 springboot集成nacos配置中心
- 2025-05-23 说一个大家都知道的 Spring Boot 小细节!
- 2025-05-23 Nacos 统一配置中心动态刷新机制真香
- 2025-05-23 Nacos:简单易用的配置管理和服务发现注册中心
- 2025-05-23 零基础学习Spring Boot的难度有多大?