代码之家  ›  专栏  ›  技术社区  ›  Joschi

至Kubernetes的Jenkins CD管道

  •  5
  • Joschi  · 技术社区  · 9 年前

    我打算与Jenkins建立一个CD管道,它接收我的应用程序,将docker图像发布到我的私人docker存储库。我想我知道怎么做。

    我不确定的是Kubernetes部分。我想拍摄该图像并将其部署到我的私有Kubernetes集群(目前为1个主集群和1个从集群)。

    3 回复  |  直到 9 年前
        1
  •  4
  •   Lindsay Landry    9 年前

    假设集群中有以下部署:

    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
    

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

    哪里 version 是你刚刚和詹金斯创建的新版本。这将自动触发对此版本的重新部署。

    版本

        2
  •  3
  •   sfgroups    9 年前

    您可以使用kubectl命令从Yenkin触发部署。对于快速入门copy kubernetes cluster admin。conf或$HOME/。kube/config文件发送到Jenkin从属服务器。然后你可以这样管理库贝特尔。

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

        3
  •  1
  •   errordeveloper    8 年前

    我打算与Jenkins建立一个CD管道,它接收我的应用程序,将docker图像发布到我的私人docker存储库。我想我知道怎么做。

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

    问题:安装了kubectl和docker的Jenkins Slave是否需要成为Kubernetes集群的一部分才能触发部署?我如何触发部署?

    有些人确实在他们的Kubernetes集群中运行CI(例如Jenkins),这是一种合法的方法,然而,这意味着你有更多的事情要运行,并将自己从所有托管CI选项中删除。

    我们已经练习了一段时间的方法叫做GitOps,我们在博客中介绍了这种方法的各种好处:


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

    推荐文章