k8s-gitops 项目教程
1. 项目的目录结构及介绍
k8s-gitops/
├── base/
│ ├── namespace.yaml
│ ├── deployment.yaml
│ ├── service.yaml
│ └── ...
├── overlays/
│ ├── dev/
│ │ ├── kustomization.yaml
│ │ ├── patch.yaml
│ │ └── ...
│ ├── prod/
│ │ ├── kustomization.yaml
│ │ ├── patch.yaml
│ │ └── ...
│ └── ...
├── README.md
└── ...
- base/: 包含基础的 Kubernetes 资源定义文件,如
namespace.yaml
,deployment.yaml
,service.yaml
等。这些文件定义了应用的基础配置。 - overlays/: 包含不同环境的覆盖配置。例如,
dev/
目录下包含开发环境的配置,prod/
目录下包含生产环境的配置。每个环境目录下都有一个kustomization.yaml
文件,用于定义该环境的覆盖配置。 - README.md: 项目的说明文档,通常包含项目的简介、使用方法等信息。
2. 项目的启动文件介绍
项目的启动文件主要集中在 base/
目录下,其中最重要的文件是 deployment.yaml
。这个文件定义了应用的部署配置,包括容器镜像、副本数量、资源限制等。
# base/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:latest
ports:
- containerPort: 80
3. 项目的配置文件介绍
项目的配置文件主要集中在 overlays/
目录下,每个环境目录下都有一个 kustomization.yaml
文件,用于定义该环境的覆盖配置。
例如,overlays/dev/kustomization.yaml
文件可能如下所示:
# overlays/dev/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
patchesStrategicMerge:
- patch.yaml
这个文件引用了 base/
目录下的基础配置,并通过 patch.yaml
文件对基础配置进行了覆盖,以适应开发环境的需求。
patch.yaml
文件可能包含如下内容:
# overlays/dev/patch.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
template:
spec:
containers:
- name: my-app
image: my-app:dev
这个文件将 replicas
数量调整为 1,并将容器镜像更改为 my-app:dev
,以适应开发环境的需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考