9.实战交付一套dubbo微服务到k8s集群(2)之Jenkins部署
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部署的更多相关文章
- 实战交付一套dubbo微服务到k8s集群(2)之Jenkins部署
Jenkins官网:https://www.jenkins.io/zh/ Jenkins 2.190.3 镜像地址:docker pull jenkins/jenkins:2.190.3 1.下载Je ...
- 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 ...
- 实战交付一套dubbo微服务到k8s集群(1)之Zookeeper部署
基础架构 主机名 角色 IP地址 mfyxw10.mfyxw.com K8S代理节点1,zk1 192.168.80.10 mfyxw20.mfyxw.com K8S代理节点2,zk2 192.168 ...
- 实战交付一套dubbo微服务到k8s集群(6)之交付dubbo-monitor到K8S集群
dubbo-monitor官方源码地址:https://github.com/Jeromefromcn/dubbo-monitor 1.下载dubbo-monitor源码 在运维主机(mfyxw50. ...
- 12.实战交付一套dubbo微服务到k8s集群(5)之交付dubbo-monitor到K8S集群
dubbo-monitor官方源码地址:https://github.com/Jeromefromcn/dubbo-monitor 1.下载dubbo-monitor源码并解压 [root@hdss7 ...
- 11.实战交付一套dubbo微服务到k8s集群(4)之使用Jenkins进行持续构建交付dubo服务的提供者
1.登录到jenkins,新建一个项目 2.新建流水线 3.设置保留的天数及份数 4. 添加参数 # 参数 . name: git_repo type: string description: 项目在 ...
- 实战交付一套dubbo微服务到k8s集群(8)之configmap使用
使用ConfigMap管理应用配置 拆分环境 主机名 角色 IP地址 mfyxw10.mfyxw.com zk1.od.com(Test环境) 192.168.80.10 mfyxw20.mfyxw. ...
- 实战交付一套dubbo微服务到k8s集群(7)之交付dubbo服务的消费者集群到K8S
构建dubbo-demo-consumer,可以使用和dubbo-demo-service的流水线来构建 1.登录jenkins构建dubbo-demo-consumer 2.填写构建dubbo-de ...
- 实战交付一套dubbo微服务到k8s集群(5)之使用Jenkins进行持续构建交付dubo服务的提供者
1.登录到jenkins,新建一个项目 2.新建流水线 3.设置保留的天数及份数 4.添加第一个参数:设置项目的名称 5.添加第二个参数:docker镜像名称 6.添加第三个参数:项目所在的git中央 ...
随机推荐
- Mycat-多实例的搭建
1. 基础环境准备1.1 环境准备:两台虚拟机 db01 db02每台创建四个mysql实例:3307 3308 3309 33101.2 删除历史环境:pkill mysqldrm -rf /dat ...
- 【Java8新特性】不了解Optional类,简历上别说你懂Java8!!
写在前面 最近,很多读者出去面试都在Java8上栽了跟头,事后自己分析,确实对Java8的新特性一知半解.然而,却在简历显眼的技能部分写着:熟练掌握Java8的各种新特性,能够迅速使用Java8开发高 ...
- 使用css实现loading的加载
使用css实现loading的加载的效果图 html代码 <div id="caseVerteClaire"> <div id="transform&q ...
- Spring AMQP:RabbitTemplate SimpleMessageListenerContainer
一.RabbitTemplate介绍 RabbitTemplate:消息模板,在与Spring AMQP整合时,进行发送消息的关键类. 包括了可靠性投递消息方法.回调监听消息接口ConfirmCall ...
- jchdl - RTL Data Types
https://mp.weixin.qq.com/s/hWYW1Bn---WhpwVu2e98qA 一. Bit 类结构如下: 主要属性: value: bit的值,只支持0,1, ...
- 【HBase】HBase架构中各种组件的作用
client: 发起读写请求 维护cache,加快读取速度 zookeeper: HMaster选举,存储meta-region的路由信息,监控集群从节点HRegionSever上信息 HMaster ...
- Bom和Dom对象
BOM-JavaScript是运行在浏览器中的,所以提供了一系列对象用于和浏览器窗口进行交互,这些对象主要包括window.document.location.navigator和screen等.通常 ...
- 结合 AOP 轻松处理事件发布处理日志
结合 AOP 轻松处理事件发布处理日志 Intro 前段时间,实现了 EventBus 以及 EventQueue 基于 Event 的事件处理,但是没有做日志(EventLog)相关的部分,原本想增 ...
- Java实现 蓝桥杯 算法提高 队列操作
算法提高 队列操作 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 队列操作题.根据输入的操作命令,操作队列(1)入队.(2)出队并输出.(3)计算队中元素个数并输出. 输入格式 ...
- TZOJ 车辆拥挤相互往里走
102路公交车是crq经常坐的,闲来无聊,他想知道最高峰时车上有多少人,他发现这辆车只留一个门上下人,于是他想到了一个办法,上车时先数一下车上人员数目(crq所上的站点总是人不太多),之后就坐在车门口 ...