gpt4 book ai didi

jenkins - Kubectl 命令的使用和使用 Kubernetes 和 Jenkins 部署 Pod

转载 作者:行者123 更新时间:2023-12-02 11:54:22 28 4
gpt4 key购买 nike

我正在尝试为我的 Spring Boot 微服务部署实现 CI/CD 管道。这里我有一些示例微服务。当我探索 Kubernetes 时,我发现 pod、服务、副本集/ Controller 、状态集等。我正确理解了这些 Kubernetes 术语。我打算将 Docker hub 用于我的图像注册表。

我的需求

当对我的 SVN 代码存储库进行提交时,Jenkins 需要从 Subversion 存储库中提取代码并需要构建项目,创建 docker 镜像,推送到 Docker 中心 - 如前所述。之后需要通过 Jenkins 拉取从 Dockerhub 部署到我的测试环境中。

我的困惑

  • 我何时创建服务和 pod,如何在 pod/services/statefulsets 中定义 docker 镜像路径?因为它从 Docker 中心拉出进行部署。
  • 我可以直接在 Jenkins 管道计划作业中添加 kubectl 命令吗?如何使用 kubectl 命令进行 Kubernetes 部署?
  • 最佳答案

    只要工具已安装且可访问,Jenkins 可以做任何您能做的事情。所以一个简单的解决方案是在 Jenkins 上安装 docker 和 kubectl,并为他提供正确的 kube 配置,以便他可以访问集群。因此,如果您的主机可以使用 kubectl,您可以查看 $HOME/.kube/config文件。

    因此,在您的工作中,您可以像在主机上一样使用 kubectl。

    关于来自 Docker Hub 的图像:

    无论如何,Docker Hub 是 Docker 的默认 Docker Registry,因此通常只有在您想使用自己的 Private Hosted Registry 时才需要更改集群中的任何内容。如果您在任何云提供商处运行集群,我会在那里使用 Docker 注册表,因为它们的集成度更高。

    因此,这部分部署将从 Docker Hub 中提取 nginx,无需为其指定任何特殊内容:

        spec:
    containers:
    - name: nginx
    Image: nginx:1.7.9

    因此,请确保 Jenkins 可以从命令行执行以下操作:
  • 构建 Docker 镜像
  • 推送 Docker 镜像(确保您在 Jenkins 上调用了 docker login)
  • 通过 kubectl get pods 访问您的集群

  • 因此,一个简单的管道需要简单地执行以下步骤:
  • 触发 SVN 更改
  • 结帐码
  • 创建一个唯一的版本,可以是内部版本号、SVN 版本、日期)
  • 构建/测试
  • 构建 Docker 镜像
  • 使用唯一版本标记 Docker 镜像
  • 推送 Docker 镜像
  • 将 Kubernetes deployment.yaml 中的图像行更改为新版本(如果您使用 Jenkins Pipeline,您可以使用 readYaml、writeYaml 来实现)
  • 调用kubectl apply -f deployment.yaml

  • 根据您的构建系统和使用的语言,有一些有用的工具可以帮助构建和推送 Docker 镜像并确保标签的唯一性。例如对于 Java 和 Maven,您可以使用 Maven CI Friendly Versions使用任何 maven docker 插件或 jib .

    关于jenkins - Kubectl 命令的使用和使用 Kubernetes 和 Jenkins 部署 Pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51637197/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com