1、基本概念

  Jenkins在DevOps工具链中是核心的流程管理中心,负责串联系统的构建流程、测试流程、镜像制作流程、部署流程等,在持续集成中常用到的工具如下:

  Maven:源代码编译工具

  RobotFramework:自动化测试工具

  NewMan:接口自动化测试工具

  SonarQube Scanner:源代码扫描工具

  GitLab:代码仓库工具

  Docker:镜像制作工具

  kubectl:K8S工具

  公司目前使用的流程是通过Redmine和GitLab中创建项目、开发提交代码、触发jenkins完成镜像构建并自动部署到k8s集群。

 

2、部署

[root@k8s-master01 jenkins]# git clone https://github.com/dotbalo/helm.git
[root@k8s-master01 ~]# cd helm/jenkins
[root@k8s-master01 jenkins]# helm install --name jenkins . --namespace public-service
NAME: jenkins
LAST DEPLOYED: Tue Dec ::
NAMESPACE: public-service
STATUS: DEPLOYED RESOURCES:
==> v1/Secret
NAME AGE
jenkins 0s ==> v1/ConfigMap
jenkins 0s
jenkins-tests 0s ==> v1/PersistentVolumeClaim
jenkins 0s ==> v1/Service
jenkins-agent 0s
jenkins 0s ==> v1beta1/Deployment
jenkins 0s ==> v1/Pod(related) NAME READY STATUS RESTARTS AGE
jenkins-5b6c648956-zds2p / Pending 0s NOTES:
. Get your 'admin' user password by running:
printf $(kubectl get secret --namespace public-service jenkins -o jsonpath="{.data.jenkins-admin-password}" | base64 --decode);echo
. Get the Jenkins URL to visit by running these commands in the same shell:
export POD_NAME=$(kubectl get pods --namespace public-service -l "component=jenkins-master" -o jsonpath="{.items[0].metadata.name}")
echo http://127.0.0.1:8080
kubectl port-forward $POD_NAME : . Login with the password from step and the username: admin For more information on running Jenkins on Kubernetes, visit:
https://cloud.google.com/solutions/jenkins-on-container-engine

  创建ingress

[root@k8s-master01 jenkins]# kubectl create -f traefik-jenkins.yaml
ingress.extensions/jenkins created

3、查看状态

[root@k8s-master01 ~]# kubectl get po,svc,ingress,pvc -n public-service | grep jenkins
pod/jenkins-5b6c648956-zds2p / Running 44h
service/glusterfs-dynamic-jenkins ClusterIP 10.111.100.114 <none> /TCP 44h
service/jenkins ClusterIP 10.107.215.94 <none> /TCP 44h
service/jenkins-agent ClusterIP 10.103.212.222 <none> /TCP 44h
ingress.extensions/jenkins jenkins.xxx.net 3m26s
persistentvolumeclaim/jenkins Bound pvc-953c3093-f791-11e8--000c298bf023 20Gi RWX gluster-heketi- 44h

4、访问测试

  查看密码

[root@k8s-master01 ~]# kubectl get secret --namespace public-service jenkins -o jsonpath="{.data.jenkins-admin-password}" | base64 --decode
9jni0dNNY9

  登录:admin/9jni0dNNY9

5、配置LDAP登录

  系统管理 -- 插件管理

  建立openLDAP组织架构如下

  ou=People对应的用户的组为ou=jenkins,ou=Groups里面的组

  系统管理 -- 全局安全配置

  配置如下

  配置完LDAP登陆以后,本地认证就会失效,所以提前配置好权限也可,上述权限按需修改。

  另外,本人对openLDAP filter语法不太熟,配置邮箱登录的时候无法获取对应的组,所以采用了uid登录,如有openLDAP大神还请指教。

  验证权限,登录jenkins-dev组的用户

  无法管理jenkins

赞助作者:

  

kubernetes实战(十五):k8s使用helm持久化部署jenkins集成openLDAP登录的更多相关文章

  1. kubernetes实战(十三):k8s使用helm持久化部署harbor集成openLDAP登录

    1.基本概念 上节在k8s中部署了harbor和ldap,本节将部署harbor使用openLDAP验证,部署方式与之前相同,只是改了adminserver-cm.yaml的AUTH_MODE: &q ...

  2. kubernetes实战(十二):k8s使用helm持久化部署redmine集成openLDAP

    1.基本概念 此次安装的有Jenkins.Gitlab.Redmine,我公司目前使用的是独立于k8s集群之外单独部署的Jenkins等服务,此文章会介绍三种服务基于k8s的部署方式,之后集成之前部署 ...

  3. kubernetes实战(十):k8s使用Helm安装harbor

    1.基本概念 对于复杂的应用中间件,需要设置镜像运行的需求.环境变量,并且需要定制存储.网络等设置,最后设计和编写Deployment.Configmap.Service及Ingress等相关yaml ...

  4. kubernetes实战(十四):k8s持久化部署gitlab集成openLDAP登录

    1.基本概念 使用k8s安装gitlab-ce,采用GlusterFS实现持久化(注意PG使用的是NFS存储,使用动态存储重启postgresql的pod后无法成功启动pg,待解决),并集成了open ...

  5. LDAP落地实战(四):Jenkins集成OpenLDAP认证

    前几篇分文章分别介绍了OpenLDAP的部署管理和维护以及svn.git的接入,今天我们再下一城接入jenkins. 前情提要:LDAP系列文章 LDAP落地实战(一):OpenLDAP部署及管理维护 ...

  6. Kubernetes学习之路(二十五)之Helm程序包管理器

    目录 1.Helm的概念和架构 2.部署Helm (1)下载helm (2)部署Tiller 3.helm的使用 4.chart 目录结构 5.chart模板 6.定制安装MySQL chart (1 ...

  7. kubernetes实战(十一):k8s使用openLDAP统一认证

    1.基本概念 为了方便管理和集成jenkins,k8s.harbor.jenkins均使用openLDAP统一认证. 2.部署openLDAP 此处将openLDAP部署在k8s上,openLDAP可 ...

  8. 应用程序框架实战十五:DDD分层架构之领域实体(验证篇)

    在应用程序框架实战十四:DDD分层架构之领域实体(基础篇)一文中,我介绍了领域实体的基础,包括标识.相等性比较.输出实体状态等.本文将介绍领域实体的一个核心内容——验证,它是应用程序健壮性的基石.为了 ...

  9. helm 持久化部署ingres

    Ingress 是一种 Kubernetes 资源,也是将 Kubernetes 集群内服务暴露到外部的一种方式.本文将讲一讲如何用 Helm 在 Kubernetes 集群中部署 Ingress,并 ...

随机推荐

  1. Kafka producer介绍

    Kafka 0.9版本正式使用Java版本的producer替换了原Scala版本的producer.本文着重讨论新版本producer的设计原理以及基本的使用方法. 新版本Producer 首先明确 ...

  2. ISD9160学习笔记02_搭建NuMicro开发环境

    开发环境这边没什么好说的,烧写玩了玩录音的测试程序. 1. 烧写工具 昨晚先尝试了下烧写工具(NuMicro ICP Programming Tool 1.30.6491.exe),板子自带了烧写器, ...

  3. js浮点精度问题

    1.先看下图: 2.为什么呢? 3.其实最早自己见过这样的情况,因为不懂得其中的真正道理,每次都是“猜”,结果就可想而知了. ==========原因========== 4.在控制台出现这样的情况在 ...

  4. 《Mysql 入门很简单》(读后感②)

    接上篇~ 1.UNIX时间戳函数: UNIX_TIMESTAMP()函数以UNIX时间戳的形式返回当前时间: UNIX_TIMESTAMP(d)函数将时间d以UNIX时间戳的形式返回: FROM_UN ...

  5. linux 下 java 链接oracle数据库

    import java.sql.*; public class Hello { private final String oracleDriverName = "oracle.jdbc.dr ...

  6. Mybatis输入输出映射

    一.输入映射 1.传递简单类型 <select id="findUserById" parameterType="int" resultType=&quo ...

  7. Web负载均衡与分布式架构

     参考帖子: Web负载均衡的几种实现方式 大型网站架构系列:负载均衡详解(上) DNS 原理入门 解决nginx负载均衡的session共享问题 什么是消息队列 Java应用架构的演化之路 Java ...

  8. 高性能Android应用开发

  9. C和C++书籍推荐

    http://bestcbooks.com/recommend/most-influential-book/ http://www.ruanyifeng.com/blog/2011/09/c_prog ...

  10. linux学习路线图