kubernetes实战(十五):k8s使用helm持久化部署jenkins集成openLDAP登录
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登录的更多相关文章
- kubernetes实战(十三):k8s使用helm持久化部署harbor集成openLDAP登录
1.基本概念 上节在k8s中部署了harbor和ldap,本节将部署harbor使用openLDAP验证,部署方式与之前相同,只是改了adminserver-cm.yaml的AUTH_MODE: &q ...
- kubernetes实战(十二):k8s使用helm持久化部署redmine集成openLDAP
1.基本概念 此次安装的有Jenkins.Gitlab.Redmine,我公司目前使用的是独立于k8s集群之外单独部署的Jenkins等服务,此文章会介绍三种服务基于k8s的部署方式,之后集成之前部署 ...
- kubernetes实战(十):k8s使用Helm安装harbor
1.基本概念 对于复杂的应用中间件,需要设置镜像运行的需求.环境变量,并且需要定制存储.网络等设置,最后设计和编写Deployment.Configmap.Service及Ingress等相关yaml ...
- kubernetes实战(十四):k8s持久化部署gitlab集成openLDAP登录
1.基本概念 使用k8s安装gitlab-ce,采用GlusterFS实现持久化(注意PG使用的是NFS存储,使用动态存储重启postgresql的pod后无法成功启动pg,待解决),并集成了open ...
- LDAP落地实战(四):Jenkins集成OpenLDAP认证
前几篇分文章分别介绍了OpenLDAP的部署管理和维护以及svn.git的接入,今天我们再下一城接入jenkins. 前情提要:LDAP系列文章 LDAP落地实战(一):OpenLDAP部署及管理维护 ...
- Kubernetes学习之路(二十五)之Helm程序包管理器
目录 1.Helm的概念和架构 2.部署Helm (1)下载helm (2)部署Tiller 3.helm的使用 4.chart 目录结构 5.chart模板 6.定制安装MySQL chart (1 ...
- kubernetes实战(十一):k8s使用openLDAP统一认证
1.基本概念 为了方便管理和集成jenkins,k8s.harbor.jenkins均使用openLDAP统一认证. 2.部署openLDAP 此处将openLDAP部署在k8s上,openLDAP可 ...
- 应用程序框架实战十五:DDD分层架构之领域实体(验证篇)
在应用程序框架实战十四:DDD分层架构之领域实体(基础篇)一文中,我介绍了领域实体的基础,包括标识.相等性比较.输出实体状态等.本文将介绍领域实体的一个核心内容——验证,它是应用程序健壮性的基石.为了 ...
- helm 持久化部署ingres
Ingress 是一种 Kubernetes 资源,也是将 Kubernetes 集群内服务暴露到外部的一种方式.本文将讲一讲如何用 Helm 在 Kubernetes 集群中部署 Ingress,并 ...
随机推荐
- odbc数据源for mysql
1. 下载mysql适配器并安装 mysql-connector-odbc-3.51.20-win32.exe 2. 配置数据源 “开始” ->”管理工具“ -> “数据源(ODBC)”- ...
- 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 ...
- 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 ...
- 使用filezilla连接树莓派失败
报错: 错误: Network error: Connection refused 错误: 无法连接到服务器 原因是新版的树莓派系统默认关闭ssh,进入树莓派打开ssh即可. sudo service ...
- 【大数据系列】win10不借助Cygwin安装hadoop2.8
一.下载安装包 解压安装包并创建data,name,tmp文件夹 二.修改配置文件 1.core-site.xml <?xml version="1.0" encoding= ...
- css笔记 - 张鑫旭css课程笔记之 padding 篇
[padding地址](https://www.imooc.com/learn/710) 一.padding与容器尺寸之间的关系 padding会影响元素的尺寸(通常情况下是通过增加/挤压内容区域) ...
- MFC控件CTabCtrl关联变量
1.先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上. 再在对话框类中,将该控件绑定一个变量 用两种方法: 1 ) 自己定义成员变量 CTabCtr ...
- Pry的安装
Pry 用于rails应用的调试 在Gemfile中添加 gem 'pry', :group =>:development bundle install 即可.pry代替irb方法,直接运行: ...
- 【CF884F】Anti-Palindromize 费用流
[CF884F]Anti-Palindromize 题意:定义一个串是反回文的,当且仅当对于1<=i<=len,$a_i!=a_{len-i+1}$. 现在给出一个长度为n的串S(n是偶数 ...
- Xcode - Your development team, "", does not support the Push Notifications capability.
1.问题描述: 从git上checkout了别人的一个工程文件,选择team时,Xcode显示如下问题 Your development team, "xxx.xxx.xxx", ...