jenkinsCDpipe道Kubernetes

我打算有一个与Jenkins的CDpipe道,接受我的应用程序,发布docker图像到我的私人docker存储库。 我想我知道该怎么做。

我不确定Kubernetes的部分。 我想要把这个镜像部署到我的私有Kubernetes集群(目前是1 Master&1 Slave)。

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

假设您在集群中进行了以下部署:

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创build的新version 。 这将自动触发重新部署此版本。

只要你有权访问你的Kubernetes master(通过ssh或类似的),你可以通过上面的命令。 通过这个命令时不要忘记跟踪version

您可以使用kubectl命令从Yenkin触发部署。 快速启动将kubernetes集群admin.conf或$ HOME / .kube / config文件复制到Jenkin从服务器。 那么你可以像这样运行kubectl。

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

注意:

这将为群集提供完全的pipe理访问权限,长时间可以创build具有部署angular色的帐户并使用该帐户进行部署。