在上次文章中,我们简要介绍了Score工具的背景,以及展示了如何编写一个 busybox 的简单应用,并最终通过Docker Compose部署起来。现在让我们深入查看下Score配置文件的规范定义。
1. Score 简单架构
对于同一份 Score 配置文件,通过不同的转化工具输出不同格式的目标配置: 架构图中左边的Score配置文件内容如下:
apiVersion: score.dev/v1b1
metadata:
name: hello-world
service:
ports:
www:
port: 80
targetPort: 8080
containers:
container-id:
image: busybox
variables:
CONNECTION_STRING:
其中第一行 apiVersion 是定义 Score 的版本,metadata 的 name 制定 workload 的名字,然后 service 和 containers 分别定义服务和容器配置。但是该配置文件的详细规范是怎么样定义的呢?
2. Score 配置文件规范
Score用来描述一个workload的配置是yaml格式的文件,主要由以下几个部分组成:
apiVersion
Score 配置规范的版本,目前是score.dev/v1b1
,这是必填项metadata
定义 workload 的元信息,目前主要是name,也是必填项containers
定义 workload 的的容器是如何执行的,必填项resources
可选项,定义工作负载所需的依赖项。service
可选项,定义应用程序在执行时如何公开其资源。
下面是一个常见的 workload 顶层的配置项:
apiVersion: score.dev/v1b1
metadata:
name: hello-world
service:
ports:
# . . .
containers:
my-container:
# . . .
resources:
env:
# . . .
大家可以自行对比应前面的 hello-world
配置文件。
3. resources
规范
资源的定义如下: