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. odbc数据源for mysql

    1. 下载mysql适配器并安装 mysql-connector-odbc-3.51.20-win32.exe 2. 配置数据源 “开始” ->”管理工具“ -> “数据源(ODBC)”- ...

  2. Hadoop计算平均值【转】

    file1.txt a 1b 2a 3b 3a 5b 7c 3c 5 file2.txt a 1b 7c 5a 1c 3 结果: a 2.2b 4.75c 4.0 代码: package org.ap ...

  3. codeforces水题100道 第十七题 Codeforces Beta Round #25 (Div. 2 Only) A. IQ test (brute force)

    题目链接:http://www.codeforces.com/problemset/problem/25/A题意:在n个书中找到唯一一个奇偶性和其他n-1个数不同的数.C++代码: #include ...

  4. 使用filezilla连接树莓派失败

    报错: 错误: Network error: Connection refused 错误: 无法连接到服务器 原因是新版的树莓派系统默认关闭ssh,进入树莓派打开ssh即可. sudo service ...

  5. 【大数据系列】win10不借助Cygwin安装hadoop2.8

    一.下载安装包 解压安装包并创建data,name,tmp文件夹 二.修改配置文件 1.core-site.xml <?xml version="1.0" encoding= ...

  6. css笔记 - 张鑫旭css课程笔记之 padding 篇

    [padding地址](https://www.imooc.com/learn/710) 一.padding与容器尺寸之间的关系 padding会影响元素的尺寸(通常情况下是通过增加/挤压内容区域) ...

  7. MFC控件CTabCtrl关联变量

    1.先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上. 再在对话框类中,将该控件绑定一个变量 用两种方法: 1 ) 自己定义成员变量 CTabCtr ...

  8. Pry的安装

    Pry 用于rails应用的调试 在Gemfile中添加 gem 'pry', :group =>:development bundle install 即可.pry代替irb方法,直接运行: ...

  9. 【CF884F】Anti-Palindromize 费用流

    [CF884F]Anti-Palindromize 题意:定义一个串是反回文的,当且仅当对于1<=i<=len,$a_i!=a_{len-i+1}$. 现在给出一个长度为n的串S(n是偶数 ...

  10. Xcode - Your development team, "", does not support the Push Notifications capability.

    1.问题描述: 从git上checkout了别人的一个工程文件,选择team时,Xcode显示如下问题 Your development team, "xxx.xxx.xxx", ...