当前位置: 首页 > 知识库问答 >
问题:

詹金斯CD管道到库伯内特斯

魏旭
2023-03-14

我打算有一个带有Jenkins的光盘管道,它接受我的应用程序,将码头工人映像发布到我的私人码头工人存储库。我想我知道怎么做。

我不确定的是库伯内特斯部分。我想把那个图像部署到我的私人库伯内特斯集群(目前是1个主集群)

问:安装了 kubectl 和 docker 的詹金斯从站是否需要成为 Kubernetes 集群的一部分才能触发部署?如何触发该部署?

共有3个答案

陆畅
2023-03-14

我打算有一个带有Jenkins的光盘管道,它接受我的应用程序,将码头工人映像发布到我的私人码头工人存储库。我想我知道怎么做。

没错,这是我们都熟悉的部分。

我的建议是,你实际上不需要在CI中做更多的事情。

我不确定的是库伯内特斯部分。我想把那个图像部署到我的私人库伯内特斯集群(目前是1个主集群)

很难可靠地使用CI作为真相来源,您可以跟踪部署在哪里。相反,您可以将应用程序配置(部署服务YAML文件)存储在git存储库中,并让git协调运算符将该存储库连接到集群,您甚至可以通过这种方式进行多个集群设置。

问:安装了 kubectl 和 docker 的詹金斯从站是否需要成为 Kubernetes 集群的一部分才能触发部署?如何触发该部署?

有些人确实在他们的库伯内特斯集群中运行CI(如Jenkins),这是一种合法的方法,然而,这意味着你有更多的东西要运行,并将你自己从所有托管的CI选项中剔除出去。

我们已经实践了一段时间的方法被称为GitOps,我们在博客中介绍了这种方法的各种好处:

  • GitOps - 通过拉取请求进行操作
  • GitOps 管道 - 第 2 部分
  • GitOps 第 3 部分 - 可观察性

另请参阅:

  • 使用GitOps存储安全密封的机密
  • 技术概述
  • Weave Flux:Github上的VCS调节运算符源代码

声明:我是Kubernetes的贡献者和Weaveworks的员工。我们构建开源和商业工具,帮助人们更快地使用Kubernetes进行生产。

阎博易
2023-03-14

您可以使用 kubectl 命令从日元触发部署。用于快速入门,将 kubernetes 群集 admin.conf 或 $HOME/.kube/config 文件复制到 Jenkin 从属服务器。然后你可以像这样运行库贝特。

 Kubectl  --kubeconfig=admin.conf create –f <deployment.yml>

注:

这将授予集群完全的管理员访问权限,长期而言,您可以创建具有部署角色的帐户,并使用该帐户进行部署。

乜元魁
2023-03-14

假设您的集群中有以下部署:

apiVersion: apps/v1beta1 # for versions before 1.6.0 use 
extensions/v1beta1
kind: Deployment
metadata:
   name: foobar-deployment
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: foobar-app
    spec:
      containers:
      - name: foobar
        image: foobar-image:v1
        ports:
        - containerPort: 80

您必须设法让Jenkins告诉您的Kubernetes主人以下命令:

kubectl set image deployment/foobar-deployment foobar=foobar-image:version

其中version是您刚刚用Jenkins创建的新版本。这将自动触发此版本的重新部署。

只要您能够访问包含您的集群的Kubernetes主服务器(通过ssh或类似方式),您就可以传递上面的命令。当您传递此命令时,不要忘记跟踪< code >版本。

 类似资料:
  • 我正在尝试学习使用Jenkins和Kubernetes为我的SpringBoot微服务部署实现CI/CD管道。 我点击以下链接以供参考, https://dzone.com/articles/easily-automate-your-cicd-pipeline-with-jenkins-he https://medium.com/jfrogplatform/easily-automate-your

  • 我正在尝试运行集成minikube与Jenkins。我得到以下异常: 配置如下Kubernetes url所示:192.168.99.101:8443 Kubernetes 1 希望你的协助。

  • 我试图在本地库伯内特斯集群上部署詹金斯映像。部署成功,但我无法让持久性数据工作。没有错误被抛出,新豆荚成功启动,唯一的问题是它不持久。 詹金斯·多克菲尔: Kubernetes部署文件: 库伯内特斯持久体积: 持续批量索赔 我在用Minikube进行本地开发。当然还有库贝特。 别看我做错了什么。感谢您的帮助。

  • 问题内容: 已解决 :感谢S.Richmond的以下答复我需要取消所有类型的存储映射,这意味着将变量和使用后作废。 附加 :搜索此错误的人员可能有兴趣使用Jenkins管道步骤- 在此处查找更多信息。 我正在尝试使用Jenkins Pipeline从用户那里获取输入,该输入作为json字符串传递给作业。管道然后使用隔离器对此进行解析,然后选择重要信息。然后,它将使用该信息与不同的作业参数并行运行1

  • 下面是我简单的jenkins pipeline groovy脚本,它将用这两个阶段和我们想要构建的作业创建一个管道,我希望在job configuration下的脚本中每次都更新用于构建和代码分析的作业名,方法是从用户界面中获取数据,用户将使用Eclipse提供构建作业名和代码分析作业名- jenkinsfile脚本:-

  • 我在这里做一个测试,需要使用Jenkins和库伯内特斯交付一个构建、测试和部署管道。 我正在使用Mac,并使用带有Ubuntu 18的虚拟盒创建了一个VM,并在那里安装了詹金斯。 我安装了Kubernetes (minukube ),但当我试图启动它时,我收到: “此计算机没有 VT-x/AMD/v 启用程序。在 BIOS 中启用它是强制性的” 阅读一些博客时,他们说VM内部的VM不是一个好的架构