【问题标题】:How does buildx name its pods when used with Kubernetes driver与 Kubernetes 驱动程序一起使用时,buildx 如何命名其 pod
【发布时间】:2021-06-09 05:22:30
【问题描述】:

我试图了解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

【问题讨论】:

    标签: kubernetes gitlab-ci buildx


    【解决方案1】:

    它与节点有关。默认情况下,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 列出所有构建器及其各自的节点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      相关资源
      最近更新 更多