登录
首页 >  Golang >  Go问答

将 go 二进制文件移动到 pod 中以安装 helm 的正确方法是什么?

来源:stackoverflow

时间:2024-03-22 08:18:41 332浏览 收藏

为了在 Helm 图表安装的 Pod 中运行 Go 二进制文件,需要将二进制文件从构建环境(如 CircleCI)移动到远程集群。最佳实践建议在构建 Docker 镜像时应用二进制文件。然而,可以考虑以下替代方案:使用 init 容器直接在集群上构建镜像、使用 Kaniko 从外部位置构建上下文、使用 Helm 预安装钩子或使用 Cloud Build 等解决方案。

问题内容

我使用 circleci 构建一个 go 二进制文件,我想在 helm 图表安装的 pod 中运行它。我想将二进制文件从 circleci 移动到远程集群,以便在 pod 启动时可用。我知道使用卷(例如 configmap 或 secrets)是可能的,但我不确定执行此操作的最佳方法是什么。

我曾经让它与私有 docker 注册表和 kubernetes secrets 一起用于注册表的凭据,但我不喜欢这个选项。我不想在每次二进制更改时都构建并推送新的 docker 映像。

version: 2.1
jobs:
  build_and_deploy:
    docker:
      - image: circleci/golang:1.12.7
    steps:
      - checkout
      - run: go get -v -t -d ./...
      - run: go build cmd/main.go
      - run: ...
      - run: helm install

workflows:
  version: 2
  build:
    jobs:
      - build_and_deploy:

预期结果应该是每次作业运行时集群上可用的新二进制文件。


解决方案


根据最佳实践 - 二进制文件应在构建映像执行期间应用 - 正如上面的社区和 best developer practices 所提到的:

但是,从另一个角度你可以考虑:

1init contianers 直接在集群上构建镜像

2kaniko 带有构建上下文的外部位置(gcs 存储桶 git 存储库)

3。 helm 预安装钩子以便使用上述解决方案

4。最后是其他解决方案,例如 cloud buildcloud build locally

另请参阅“Switching from CircleCI to Google Cloud Build”。 如上面文章所述,您可以使用 keel 在 docker 存储库中的映像更新时自动更新您的部署。

如果有帮助,请告诉我。

好了,本文到此结束,带大家了解了《将 go 二进制文件移动到 pod 中以安装 helm 的正确方法是什么?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>