【问题标题】:flag redefined: Can two components have same flag variable [closed]重新定义标志:两个组件可以具有相同的标志变量[关闭]
【发布时间】:2021-06-07 13:47:45
【问题描述】:

我有一个包含 5 个容器的部署。 其中两个有--endpoint作为参数,其值是从ENV设置的

所以我在部署后看到这个错误

/home/xxx-csi-drivers/xxx-vpc-block-csi-driver flag redefined: endpoint
panic: /home/xxx-csi-drivers/xxx-vpc-block-csi-driver flag redefined: endpoint

构建容器 A 的代码有

endpoint = flag.String("endpoint", "/tmp/storage-secret-sidecar.sock", "Storage secret sidecar endpoint")

还有 构建容器 B 的代码也有

endpoint       = flag.String("endpoint", "unix:/tmp/csi.sock", "CSI endpoint")

在上述错误的代码原因中定义了相同的 var endpoint

我已尝试更改 deployment 文件中的 arg 名称。和其他没有帮助的选项。但是在代码中更改flag 名称解决了这个问题,但需要在工作中了解更多。所以发布了这个问题

【问题讨论】:

  • 感谢@Penelope Stevens 试图了解更多。包不是相互独立的,它们在不同的容器中运行。

标签: go kubernetes go-flag


【解决方案1】:

这与不同的容器无关。无论哪个进程崩溃只是被破坏,代码有一个错误,它两次注册相同的标志,这是不允许的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 2013-07-25
    • 1970-01-01
    • 2020-11-12
    • 2018-03-13
    • 2016-09-14
    • 1970-01-01
    相关资源
    最近更新 更多