0

我试图了解当前出现的一个问题buildx,它的 Kubernetes 驱动程序、GitLab CI/CD 和并行作业。0生成器实例的 pod 名称中出现的后缀是什么?

它看起来像一个索引,但似乎与副本无关。例如我试过这个(注意第一个连字符0后面test和之前的后缀):

$ 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
4

1 回答 1

0

它与节点有关。默认情况下,docker buildx create创建单个节点。创建新构建器后,您还可以将新节点附加到它。

相关代码在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列出所有构建器及其各自的节点。

于 2021-09-28T21:39:39.007 回答