与 Kubernetes 驱动程序一起使用时,buildx 如何命名其 pods
How does buildx name its pods when used with Kubernetes driver
我试图了解 buildx
、其 Kubernetes 驱动程序、GitLab CI/CD 和并行作业当前出现的问题。构建器实例的 pod 名称中出现的后缀 0
是什么?
它看起来像一个索引,但似乎与副本无关。例如我试过这个(注意 test
后面第一个连字符之前的后缀 0
:
$ docker buildx create --name test --driver kubernetes --driver-opt namespace=ci,replicas=2 --use
$ echo "FROM scratch" | docker buildx build -
$ kubectl get pod -n ci
NAME READY STATUS RESTARTS AGE
test0-xxxxxxxxxx-xxxxx 1/1 Running 0 xxxxx
test0-yyyyyyyyyy-yyyyy 1/1 Running 0 yyyyy
跟节点有关。默认情况下,docker buildx create
创建 a single node。创建新构建器后,您还可以向其添加新节点。
相关代码在store/nodegroup.go:
func (ng *NodeGroup) nextNodeName() string {
i := 0
for {
name := fmt.Sprintf("%s%d", ng.Name, i)
if ii := ng.findNode(name); ii != -1 {
i++
continue
}
return name
}
}
docker buildx ls
列出所有构建器及其各自的节点。
我试图了解 buildx
、其 Kubernetes 驱动程序、GitLab CI/CD 和并行作业当前出现的问题。构建器实例的 pod 名称中出现的后缀 0
是什么?
它看起来像一个索引,但似乎与副本无关。例如我试过这个(注意 test
后面第一个连字符之前的后缀 0
:
$ docker buildx create --name test --driver kubernetes --driver-opt namespace=ci,replicas=2 --use
$ echo "FROM scratch" | docker buildx build -
$ kubectl get pod -n ci
NAME READY STATUS RESTARTS AGE
test0-xxxxxxxxxx-xxxxx 1/1 Running 0 xxxxx
test0-yyyyyyyyyy-yyyyy 1/1 Running 0 yyyyy
跟节点有关。默认情况下,docker buildx create
创建 a single node。创建新构建器后,您还可以向其添加新节点。
相关代码在store/nodegroup.go:
func (ng *NodeGroup) nextNodeName() string {
i := 0
for {
name := fmt.Sprintf("%s%d", ng.Name, i)
if ii := ng.findNode(name); ii != -1 {
i++
continue
}
return name
}
}
docker buildx ls
列出所有构建器及其各自的节点。