其官网的一句话介绍是:One easy way to configure all your workloads. Everywhere. 可以简单理解为针对不同平台的简单的配置 workload 的工具。更详细一点说:Score是一个以开发人员为中心、与平台无关的 workload 开源的规范,它确保本地和远程环境之间的配置一致。这样就可以通过同一份配置部署到不同的平台上(感觉和蚂蚁的 KusionStack 思路类似),用户不需要在成为不同云平台的砖家!
查看其仓库和推特账号可知,Score 10月底在 KubeCon 大会才首次露脸:
然后在11月初开放代码刚刚2个月,关注度就飙到将近7k:
简直是坐着长征火箭上去的!
空口无凭、还是上代码看看效果。当然第一步需要安装。还好Score命令行是Go语言开发的,通过Go语言的 go install github.com/score-spec/score-compose/cmd/score-compose@latest安装:
注意:当前官网还有用 go get -u 命令安装,在Go1.18+版本会有问题,切换到 go install 就可以了。
我们现在安装的是 score-compose 命令,用于讲 Score 规范的配置转化为 Docker Compose 格式。下面看看命令行提示:
主要是completion、help和run三个子命令,completion 用于注册shell环境自动提示暂时用不到,最重要的是 run 子命令用于输出 Docker Compose 配置。
下面通过 busybox 构造一个最最简单的打印"Hello World"的例子:
先不管细节,重要的地方是 containers 部分定义了 busybox 下执行 shell 的命令行。然后保存到 score.yaml 文件中。
然后通过以下命令基于上述配置生成 Docker Compose 配置文件:
现在就可以通过 docker-compose 来部署 compose.yaml了:
果然是够傻够简单,我们运维兄弟的最爱!
对于同一份 Score 配置文件,通过不同的转化工具输出不同格式的目标配置:
比如之前的是通过 score-compose 输出的 Docker Compose,还可以通过 score-helm 输出 Helm 的配置!就是这么简单!