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中央 ...
随机推荐
- IO流基础,创建File对象与方法是用
1.io流主要用途读取本地文件或服务器文件,进行本地或者服务器开呗工作 构造函数 绝对路径够构造方法: File f = new File("D:\\test\\a.txt&quo ...
- 强力解决使用node版本管理工具 NVM 出现的问题(找不到 node,或者找不到 npm)
nvm是好用的Nodejs版本管理工具, 通过它可以方便地在本地调换Node版本. 2020-05-28 当前长期稳定版12.17.0,于是 nvm install 12.17.0 然后C:/nvm/ ...
- Docker部署nginx,tomcat,es,可视化
nginx [root@iz2zeaet7s13lfkc8r3e2kz /]# docker pull nginx #下载 Using default tag: latest latest: Pull ...
- SD.Team团队人物形象
AC Mount Zergling Horse Preacher Alpha 注:无排名,仅按搞出来的时间先后排列.SD.Team犯罪团伙!!!!!!!! 本站文章为宝宝巴士 ...
- ### MySQL主从搭建Position
一.MySQL主从搭建 搭建主从架构的MySQL常用的有两种实现方式: 基于binlog的fileName + postion模式完成主从同步. 基于gtid完成主从同步搭建. 本篇就介绍如何使用第一 ...
- Shell脚本 (三) 条件判断 与 流程控制
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 六.条件判断 1.基本语法 [ condition ](注意condition 前后要有空格) 注意:条 ...
- Java实现 LeetCode 264 丑数 II(二)
264. 丑数 II 编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, ...
- (四)SQLMap之Tamper篡改脚本的类型、作用、适用场景
目录结构 一.SQLMap中tamper的简介 1.tamper的作用 2.tamper用法 二.适配不同数据库类型的测试tamper 三.SQLMap中tamper篡改脚本的功能解释 一.SQLMa ...
- 提高编译速度! 第一次运行需要注释掉,不然会报错,因为需要编译SO库文件 !
// 提高编译速度! 第一次运行需要注释掉,不然会报错,因为需要编译SO库文件 ! tasks.whenTaskAdded { task -> if (task.name.contains(&q ...
- 为什么阿里巴巴Java开发手册中不允许魔法值出现在代码中?
在阅读<阿里巴巴Java开发手册>时,发现有一条关于关于常量定义的规约,具体内容如下: 图中的反例是将数据缓存起来,并使用魔法值加链路 id 组成 key,这就可能会出现其他开发人员在复制 ...