1.下载Jenkins镜像打包上传harbor上

[root@hdss7- ~]#  docker pull jenkins/jenkins:2.190.
[root@hdss7- ~]# docker images |grep jenkins
[root@hdss7- ~]# docker tag 22b8b9a84dbe harbor.fx.com/public/jenkins:v2.190.3
[root@hdss7- ~]# docker push harbor.fx.com/public/jenkins:v2.190.3

2.自定义Dockerfile文件

[root@hdss7- ~]# mkdir -p /data/dockerfile/jenkins && cd /data/dockerfile/jenkins/
[root@hdss7- ~]# vim /data/dockerfile/jenkins/Dockerfile
FROM harbor.fx.com/public/jenkins:v2.190.3
USER root
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo 'Asia/Shanghai' > /etc/timezone
ADD id_rsa /root/.ssh/id_rsa
ADD config.json /root/.docker/config.json
ADD get-docker.sh /get-docker.sh
RUN echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config &&\
/get-docker.sh

这个Dockerfile里我们主要做了以下几件事

  • 设置容器用户为root
  • 设置容器内的时区
  • 将ssh私钥加入(使用git拉代码时要用到,配对的公钥应配置在gitlab中)
  • 加入了登录自建harbor仓库的config文件
  • 修改了ssh客户端的
  • 安装一个docker的客户端

3.生成ssh密钥对

[root@hdss7- ~]# ssh-keygen -t rsa -b  -C "fangxing1001@163.com" -N "" -f /root/.ssh/id_rsa

 4.将dockerfile文件需要的文件复制到jenkins目录

[root@hdss7- ~]# cd /data/dockerfile/jenkins/
[root@hdss7- jenkins]# cp /root/.ssh/id_rsa .
[root@hdss7- jenkins]# cp /root/.docker/config.json .
[root@hdss7- jenkins]# curl -fsSL get.docker.com -o get-docker.sh
[root@hdss7- jenkins]# chmod +x get-docker.sh

5.在harbor私有仓库中创建存放jenkin的私有镜像

6.制作自定义镜像并推送到harbor仓库

[root@hdss7- ~]# cd /data/dockerfile/jenkins/
[root@hdss7- ~]# docker build . -t harbor.fx.com/infra/jenkins:v2.190.3
[root@hdss7- ~]# docker push harbor.od.com/infra/jenkins:v2.190.3

7.创建保存jenkins目录

[root@hdss7- ~]# mkdir -p /data/k8s-yaml/jenkins
[root@hdss7- ~]# mkdir -p /data/nfs-volume/jenkins_home
[root@hdss7- ~]# cd /data/k8s-yaml/jenkins/

8.创建资源配置清单

Deployment.yaml 

[root@hdss7- jenkins]# vim Deployment.yaml
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: jenkins
namespace: infra
labels:
name: jenkins
spec:
replicas:
selector:
matchLabels:
name: jenkins
template:
metadata:
labels:
app: jenkins
name: jenkins
spec:
volumes:
- name: data
nfs:
server: hdss7-.host.com
path: /data/nfs-volume/jenkins_home
- name: docker
hostPath:
path: /run/docker.sock
type: ''
containers:
- name: jenkins
image: harbor.fx.com/infra/jenkins:v2.190.3
ports:
- containerPort:
protocol: TCP
env:
- name: JAVA_OPTS
value: -Xmx512m -Xms512m
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 500m
memory: 1Gi
volumeMounts:
- name: data
mountPath: /var/jenkins_home
- name: docker
mountPath: /run/docker.sock
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
imagePullSecrets:
- name: harbor
restartPolicy: Always
terminationGracePeriodSeconds:
securityContext:
runAsUser:
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable:
maxSurge:
revisionHistoryLimit:
progressDeadlineSeconds:

Service.yaml

[root@hdss7- jenkins]# vim Service.yaml
kind: Service
apiVersion: v1
metadata:
name: jenkins
namespace: infra
spec:
ports:
- protocol: TCP
port:
targetPort:
selector:
app: jenkins
type: ClusterIP
sessionAffinity: None

Ingress.yaml

[root@hdss7- jenkins]# vim Ingress.yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: jenkins
namespace: infra
spec:
rules:
- host: jenkins.fx.com
http:
paths:
- path: /
backend:
serviceName: jenkins
servicePort:

9.部署ntf服务

[root@hdss7- ~]# yum -y install nfs-utils
[root@hdss7- ~]# vim /etc/exports
/data/nfs-volume 10.4.7.0/(rw,no_root_squash)
[root@hdss7- ~]# mkdir -p /data/nfs-volume
[root@hdss7- ~]# systemctl start nfs && systemctl enable nfs

10.为拉私有仓库私有镜像创建一个secret

[root@hdss7-21 ~]# kubectl create ns infra
[root@hdss7- ~]# kubectl create secret docker-registry harbor --docker-server=harbor.fx.com --docker-username=admin --docker-password=Harbor12345 -n infra
[root@hdss7- ~]# kubectl get secret -n infra

11.应用Jenkins资源配置清单

[root@hdss7- ~]# kubectl apply -f http://k8s-yaml.fx.com/jenkins/Deployment.yaml
[root@hdss7- ~]# kubectl apply -f http://k8s-yaml.fx.com/jenkins/Service.yaml
[root@hdss7- ~]# kubectl apply -f http://k8s-yaml.fx.com/jenkins/Ingress..yaml

12.添加解析域名jenkins.fx.com

[root@hdss7-11 ~]# vim /var/named/fx.com.zone
$ORIGIN fx.com.
$TTL 600 ; 10 minutes
@ IN SOA dns.fx.com. dnsadmin.fx.com. (
2020061011 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS dns.fx.com.
$TTL 60 ; 1 minute
dns A 10.4.7.11
harbor A 10.4.7.200
k8s-yaml A 10.4.7.200
traefik A 10.4.7.10
dashboard A 10.4.7.10
zk1 A 10.4.7.11
zk2 A 10.4.7.12
zk3 A 10.4.7.21
jenkins A 10.4.7.10
[root@hdss7-11 ~]# systemctl restart named
[root@hdss7-11 ~]# dig -t A jenkins.fx.com @10.4.7.11 +short

13.在浏览器中访问jenkins

14.查看jenkins的登录密码

[root@hdss7- ~]# kubectl logs jenkins-7c5fcfbfd5-kz8hp -n infra
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation: 04e1fec0d9db4283b6076532f857f137 This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

15.登录jenkins后操作及设置

16.配置插件加速地址

地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

9.实战交付一套dubbo微服务到k8s集群(2)之Jenkins部署的更多相关文章

  1. 实战交付一套dubbo微服务到k8s集群(2)之Jenkins部署

    Jenkins官网:https://www.jenkins.io/zh/ Jenkins 2.190.3 镜像地址:docker pull jenkins/jenkins:2.190.3 1.下载Je ...

  2. 8.实战交付一套dubbo微服务到k8s集群(1)之Zookeeper部署

    1.基础架构 主机名 角色 ip HDSS7-11.host.com K8S代理节点1,zk1 10.4.7.11 HDSS7-12.host.com K8S代理节点2,zk2 10.4.7.12 H ...

  3. 实战交付一套dubbo微服务到k8s集群(1)之Zookeeper部署

    基础架构 主机名 角色 IP地址 mfyxw10.mfyxw.com K8S代理节点1,zk1 192.168.80.10 mfyxw20.mfyxw.com K8S代理节点2,zk2 192.168 ...

  4. 实战交付一套dubbo微服务到k8s集群(6)之交付dubbo-monitor到K8S集群

    dubbo-monitor官方源码地址:https://github.com/Jeromefromcn/dubbo-monitor 1.下载dubbo-monitor源码 在运维主机(mfyxw50. ...

  5. 12.实战交付一套dubbo微服务到k8s集群(5)之交付dubbo-monitor到K8S集群

    dubbo-monitor官方源码地址:https://github.com/Jeromefromcn/dubbo-monitor 1.下载dubbo-monitor源码并解压 [root@hdss7 ...

  6. 11.实战交付一套dubbo微服务到k8s集群(4)之使用Jenkins进行持续构建交付dubo服务的提供者

    1.登录到jenkins,新建一个项目 2.新建流水线 3.设置保留的天数及份数 4. 添加参数 # 参数 . name: git_repo type: string description: 项目在 ...

  7. 实战交付一套dubbo微服务到k8s集群(8)之configmap使用

    使用ConfigMap管理应用配置 拆分环境 主机名 角色 IP地址 mfyxw10.mfyxw.com zk1.od.com(Test环境) 192.168.80.10 mfyxw20.mfyxw. ...

  8. 实战交付一套dubbo微服务到k8s集群(7)之交付dubbo服务的消费者集群到K8S

    构建dubbo-demo-consumer,可以使用和dubbo-demo-service的流水线来构建 1.登录jenkins构建dubbo-demo-consumer 2.填写构建dubbo-de ...

  9. 实战交付一套dubbo微服务到k8s集群(5)之使用Jenkins进行持续构建交付dubo服务的提供者

    1.登录到jenkins,新建一个项目 2.新建流水线 3.设置保留的天数及份数 4.添加第一个参数:设置项目的名称 5.添加第二个参数:docker镜像名称 6.添加第三个参数:项目所在的git中央 ...

随机推荐

  1. Mycat-多实例的搭建

    1. 基础环境准备1.1 环境准备:两台虚拟机 db01 db02每台创建四个mysql实例:3307 3308 3309 33101.2 删除历史环境:pkill mysqldrm -rf /dat ...

  2. 【Java8新特性】不了解Optional类,简历上别说你懂Java8!!

    写在前面 最近,很多读者出去面试都在Java8上栽了跟头,事后自己分析,确实对Java8的新特性一知半解.然而,却在简历显眼的技能部分写着:熟练掌握Java8的各种新特性,能够迅速使用Java8开发高 ...

  3. 使用css实现loading的加载

    使用css实现loading的加载的效果图 html代码 <div id="caseVerteClaire"> <div id="transform&q ...

  4. Spring AMQP:RabbitTemplate SimpleMessageListenerContainer

    一.RabbitTemplate介绍 RabbitTemplate:消息模板,在与Spring AMQP整合时,进行发送消息的关键类. 包括了可靠性投递消息方法.回调监听消息接口ConfirmCall ...

  5. jchdl - RTL Data Types

    https://mp.weixin.qq.com/s/hWYW1Bn---WhpwVu2e98qA   一. Bit ​​ 类结构如下: ​​   主要属性: value: bit的值,只支持0,1, ...

  6. 【HBase】HBase架构中各种组件的作用

    client: 发起读写请求 维护cache,加快读取速度 zookeeper: HMaster选举,存储meta-region的路由信息,监控集群从节点HRegionSever上信息 HMaster ...

  7. Bom和Dom对象

    BOM-JavaScript是运行在浏览器中的,所以提供了一系列对象用于和浏览器窗口进行交互,这些对象主要包括window.document.location.navigator和screen等.通常 ...

  8. 结合 AOP 轻松处理事件发布处理日志

    结合 AOP 轻松处理事件发布处理日志 Intro 前段时间,实现了 EventBus 以及 EventQueue 基于 Event 的事件处理,但是没有做日志(EventLog)相关的部分,原本想增 ...

  9. Java实现 蓝桥杯 算法提高 队列操作

    算法提高 队列操作 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 队列操作题.根据输入的操作命令,操作队列(1)入队.(2)出队并输出.(3)计算队中元素个数并输出. 输入格式 ...

  10. TZOJ 车辆拥挤相互往里走

    102路公交车是crq经常坐的,闲来无聊,他想知道最高峰时车上有多少人,他发现这辆车只留一个门上下人,于是他想到了一个办法,上车时先数一下车上人员数目(crq所上的站点总是人不太多),之后就坐在车门口 ...