jenkins跨kubernetes集群ci/cd

作者: root007 分类: jenkins,kubeadm,未分类 发布时间: 2019-05-16 17:08

目的:jenkins部署在测试环境实现动态构建,需要实现在一个pipeline中通过A集群k8s编译上传镜像到仓库,在同一个pipeline中把应用部署到B集群中部署 且只添加一个kubernetes云

B集群环境添加RBAC

kubectl  create   namespace jenkins
kubectl -n jenkins   create serviceaccount jenkins-robot

kubectl -n jenkins   create rolebinding jenkins-robot-binding --clusterrole=cluster-admin --serviceaccount=jenkins:jenkins-robot
 kubectl -n jenkins   get serviceaccount jenkins-robot
kubectl -n jenkins   get serviceaccount jenkins-robot  -o go-template --template='{{range .secrets}}{{.name}}{{"\n"}}{{end}}'
kubectl -n jenkins   get secrets jenkins-robot-token-dpg67   -o go-template --template '{{index .data "token"}}' | base64 -d

在把上面base64解密出来的secrets 添加到jenkins中

pipeline测试

node('jnlp-slave') {
  //定义项目信息
 ......
  stage('Deploy Application  kubernetes') 
    withKubeConfig(caCertificate: '', clusterName: '', contextName: '', credentialsId: 'hw-k8s-x.x.x', namespace: 'jenkins', serverUrl: 'https://ip:6443') {
      sh("kubectl  create deploy  my-dep --image=busybox")
    }
}

这样就可以实现在A集群中执行完CI在B集群中执行CD kubectl命令

以上权限留一个坑!~~~~~~~~~~~~

发表评论

电子邮件地址不会被公开。 必填项已用*标注