kubernetes部署jenkins

kubernetes部署jenkins

项目迁移到k8s平台是怎么样的流程?
在这里插入图片描述
基础镜像(一个空白的镜像)--------运行环境镜像(py/php/go/java)------项目镜像(项目打包)

jar包和war包区别
jar
jar包就是java的类进行编译生成的class文件就行打包的压缩包。里面是一些class文件。当我们自己使用maven写一些java程序,进行打包生成jar包。同时在可以在其他的工程下使用,但是我们在这个工程依赖的jar包,在其他工程使用该jar包也要导入。

war
war包其实就是一个web程序进行打包便于部署的压缩包,里面包含我们web程序需要的一些东西,其中包括web.xml的配置文件,前端的页面文件,以及依赖的jar。文件数量对于jar包,这样便于我们部署工程,直接放到tomcat的webapps目录下,直接启动tomcat即可。同时可以使用WinRAR查看war包,直接将后缀.war改成.rar

使用dockerfile部署jenkins
目录结构

[root@master ~]# tree /java/
/java/
├── dockerfile
└── files
    ├── apache-tomcat-9.0.35.tar.gz
    ├── index.jsp
    ├── install.sh
    ├── jenkins-2.319.war
    └── jenkins-2.326.war

构建tomcat镜像
创建一个工作目录并将最好环境准备

[root@master ~]# mkdir -p /java/files
[root@master ~]# touch dockerfile
[root@master ~]# ls /java/
dockerfile  files
[root@master ~]# ls /java/files/
apache-tomcat-9.0.35.tar.gz  index.jsp  install.sh  jenkins-2.319.war  jenkins-2.326.war

编写一个tomcat的部署脚本

[root@master ~]# cat /java/files/install.sh 
#!/bin/bash

rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-$(awk -F '"' 'NR==5{print $2}' /etc/os-release).repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
yum install -y java-1.8.0-openjdk 
ln -s /usr/local/apache-tomcat-${version}/ /usr/local/tomcat 
cp /opt/jenkins-2.319.war /usr/local/tomcat/webapps/

编写一个java测试文件

[root@master files]# pwd
/java/files

cat > index.jsp <<EOF
<html>
<head>
         <title>test page</title>
</head>
<body>
         <%
           out.println("Hello World");
         %>
</body>
</html>
EOF

编写dockerfile

[root@master ~]# vi /java/dockerfile 
FROM centos

MAINTAINER JRE  "xxxx@dsa.com"

ENV version 9.0.35 
ENV PATH $PATH:/usr/local/tomcat/bin

ADD files/apache-tomcat-${version}.tar.gz /usr/local/

COPY files/jenkins-2.319.war /opt
COPY files/index.jsp /opt
COPY files/install.sh /tmp

RUN  /tmp/install.sh

WORKDIR /usr/local/tomcat/bin

EXPOSE 8080

CMD ["/usr/local/tomcat/bin/catalina.sh", "run"] 

生成镜像

[root@master java]# docker build -t lzx17683765691/tomcat:v2.0 .
Sending build context to Docker daemon  157.2MB
Step 1/12 : FROM centos
 ---> 5d0da3dc9764
Step 2/12 : MAINTAINER JRE  "xxxx@dsa.com"
 ---> Using cache
 ---> ed908e34c66c
Step 3/12 : ENV version 9.0.35
 ---> Using cache
 ---> 78770ae2aebc
Step 4/12 : ENV PATH $PATH:/usr/local/tomcat/bin
 ---> Using cache
 ---> 830cc1d69ff7
Step 5/12 : ADD files/apache-tomcat-${version}.tar.gz /usr/local/
 ---> Using cache
 ---> 9807829a6ead
Step 6/12 : COPY files/jenkins-2.319.war /opt
 ---> Using cache
 ---> b309567d5045
Step 7/12 : COPY files/index.jsp /opt
 ---> Using cache
 ---> 3550e9891309
Step 8/12 : COPY files/install.sh /tmp
 ---> Using cache
 ---> a35142f8f9da
Step 9/12 : RUN  /tmp/install.sh
 ---> Using cache
 ---> 380aeee274c7
Step 10/12 : WORKDIR /usr/local/tomcat/bin
 ---> Using cache
 ---> 0dee4b7fd730
Step 11/12 : EXPOSE 8080
 ---> Using cache
 ---> 365e5624149e
Step 12/12 : CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
 ---> Using cache
 ---> ddc629c835d1
Successfully built ddc629c835d1
Successfully tagged lzx17683765691/tomcat:v2.0

运行镜像然后进入镜像,将jenkins包放入ROOT目录进行解压

[root@master java]# docker run -dit --name test -p 8080:8080 lzx17683765691/tomcat:v2.0
36d515ea8b5780d1d2cba39b72ef61710fe7b348083daac77bb6c9a8dfac38d3

[root@master java]# docker exec -it test /bin/bash
[root@36d515ea8b57 bin]# cd ../webapps/ROOT
[root@36d515ea8b57 ROOT]# ls
RELEASE-NOTES.txt  asf-logo-wide.svg  bg-middle.png  bg-upper.png  index.jsp         tomcat.css  tomcat.png

[root@36d515ea8b57 ROOT]# rm -rf *
[root@36d515ea8b57 ROOT]# cp ../jenkins-2.319.war .
[root@36d515ea8b57 ROOT]# ls
jenkins-2.319.war
[root@36d515ea8b57 ROOT]# yum -y install unzip
[root@36d515ea8b57 ROOT]# unzip jenkins-2.319.war 
[root@36d515ea8b57 ROOT]#  ls
bootstrap             containerd  favicon.ico  jenkins-2.319.war  LogFileOutputStream$1.class  MainDialog.class               robots.txt  winstone.jar
cni                   css         help         JNLPMain.class     LogFileOutputStream.class    Main$FileAndDescription.class  scripts
ColorFormatter.class  executable  images       jsbundles          Main.class                   META-INF                       WEB-INF

重启容器
[root@master java]# docker restart test
test

jenkins
在这里插入图片描述

在这里插入图片描述
上传镜像至docekr 仓库中

[root@master ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: lzx17683765691
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

[root@master ~]# docker push lzx17683765691/tomcat:v2.0
The push refers to repository [docker.io/lzx17683765691/tomcat]
779784db29de: Pushed 
98fcebc8c219: Pushed 
6b35e72b6571: Pushed 
bc1ffb57f0af: Pushed 
139a083dd428: Pushed 
74ddd0ec08fa: Mounted from library/centos 
v2.0: digest: sha256:6705d75a01d83f8083cce8817407d341bf00cbfc5b8c0cc55fece33e438cfc04 size: 1579

使用kubernetres 部署jenkins
目录结构

[root@master ~]# tree /main/
/main/
└── deploy.yaml

编写kubernete资源定义文件

[root@master ~]# vi /main/deploy.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata: 
  name: jenkins
spec: 
  replicas: 1
  selector: 
    matchLabels: 
      app: jenkins
  template: 
    metadata: 
      labels: 
        app: jenkins
    spec: 
      containers: 
      - name: jenkins
        image: lzx17683765691/tomcat:v2.0
        imagePullPolicy: IfNotPresent
---
apiVersion: v1
kind: Service
metadata:
  name: jenkins
spec: 
  selector: 
    app: jenkins
  type: NodePort
  ports: 
  - port: 8080
    targetPort: 8080
    nodePort: 30020
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值