➢Linux部署jenkins(超详细K8s、Docker部署应用)

开始语

一位普通的程序员,慢慢在努力变强!

jenkins官网👈
在这里插入图片描述

1.进行安装部署

# 选择linux-CentOS,按照官网的指示往下运行即可

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum upgrade
# Add required dependencies for the jenkins package
sudo yum install java-11-openjdk
sudo yum install jenkins
sudo systemctl daemon-reload

sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins  
# 出现active代表运行正常
Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-11-13 16:19:01 +03; 4min 57s ago

2.访问以及安装插件

初次访问:127.0.0.1:8080时,登录请根据以下命令查看密码:

#访问jenkins 默认端口是8080,  查看密码
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

温馨提示:插件选择根据自己的需要进行选型,我这边直接选择【推荐安装插件】
在这里插入图片描述
到这一步就完成了搭建!

3.下载需要的插件

在这里插入图片描述
推荐安装插件,maven、gitee plugin、git-parameter
重启:访问路径后面加 /restart即可!

4.使用Gitee作为代码仓库

创建私人令牌,并且在项目中使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.设置系统配置项

5.1 设置为中文

在这里插入图片描述

5.2 配置Publish over SSH

在这里插入图片描述

6.配置全局属性

在这里插入图片描述

6.1 Linux部署maven

下载maven官网

wget https://dlcdn.apache.org/maven/maven-3/3.8.7/binaries/apache-maven-3.8.7-bin.tar.gz
# 解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz
# 创建本地仓库:
mkdir repository
# 查看仓库位置:
pwd    # 我的位置是:/devops/maven/repository
# 进入config目录,添加以下配置

<!--仓库位置-->
<localRepository>/devops/maven/repository</localRepository>
 <!--阿里云镜像-->
    <mirror>
      <id>aliyun-maven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven mirror</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

温馨提示:接下来jenkins进行mvn操作时,需要对仓库给予权限:chmod -R 777 repository 或者 755

6.2 Linux部署jdk

下载jdk官网

# 登录账号,然后下载上传至linux机器上
wget https://www.oracle.com/java/technologies/downloads/#java11
# 解压
tar -zxvf jdk-11.0.14_linux-x64_bin.tar.gz

6.3 Linux部署git

# 安装
yum install git
# 查看安装结果
git --version  # 我的版本:git version 1.8.3.1  
# 查看安装位置
which git      # 位置:/usr/bin/git

6.4 配置系统变量

vi /etc/profile   # 添加下面的配置

# maven
export MAVEN_HOME=/devops/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH

# jdk
export JAVA_HOME=/devops/jdk/jdk-11.0.14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# 使配置生效
source /etc/profile

# 检查git、maven、jdk是否搭建成功 (出现下列结果说明成功)
git --version # 命令
git version 1.8.3.1

mvn -v # 命令
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /devops/maven/apache-maven-3.6.3
Java version: 11.0.14, vendor: Oracle Corporation, runtime: /devops/jdk/jdk-11.0.14
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.71.1.el7.x86_64", arch: "amd64", family: "unix"

java -version # 命令
java version "11.0.14" 2022-01-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.14+8-LTS-263)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.14+8-LTS-263, mixed mode)

6.5 jenkins开始配置git、maven、jdk

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

7.创建java-maven项目

这个的步骤为:首页->新建任务->构建一个maven项目->源码管理, 添加按钮->这里添加gitee的信息
在这里插入图片描述
问题:
你会发现之前定义的凭证选不到,怎么选怎么新增都选不到,Gitee这里有点坑,这里要选中新增username with password选项, 然后写入你的Gitee账号(登录名)和密码, 到这来就完成了gitee的连接了。
在这里插入图片描述

7.1 docker运行

jenkins-shell脚本

#--------------------------------第一种docker启动
# 将文件和jar放置一个文件夹中
cp Dockerfile target
# 进入编译后的文件中
cd target

# 开始构建镜像,启动容器
docker build -t ${AppName}:v$BUILD_NUMBER .

#--------------------------------第二种docker-compose启动
echo "开始创建docker-compose.yml文件..."
# 这个路径是和你配置SSH时定义工作路径
deploy_file=/var/lib/jenkins/deploy/${AppName}-docker-compose.yaml
cat > $deploy_file <<EOF

version: "3"
services:
  ${AppName}Service:
    image: ${AppName}:v$BUILD_NUMBER
    container_name: ${AppName}
    ports:
      - "${Port}:${Port}"

EOF

echo "创建${AppName}-docker-compose.yaml成功!"

下一步ssh执行远程脚本
在这里插入图片描述

7.2 k8s运行

jenkins-shell脚本

# 将文件和jar放置一个文件夹中
cp Dockerfile target
# 进入编译后的文件中
cd target

# 开始构建镜像,启动容器
image_name=${AppName}:v$BUILD_NUMBER
docker build -t $image_name .

echo "构建镜像成功"

# 这个路径是和你配置SSH时定义工作路径
deploy_file=/var/lib/jenkins/deploy/${AppName}-deployment.yaml
cat > $deploy_file <<EOF

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: ${k8sNamespace}
  name: ${AppName}
  labels:
    app.kubernetes.io/name: ${AppName}
spec:
  replicas: 1
  selector:
    matchLabels:
       name: ${AppName}
  template:
    metadata:
      labels:
        name: ${AppName}
    spec:
      containers:
        - name: ${AppName}
          image: $image_name
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80
              name: ${AppName}-pod
          resources: 
            requests: 
              cpu: "100m" #CPU限制
              memory: "1024Mi" #内存限制
          env: 
            - name: SPRING_PROFILES_ACTIVE
              value: "test"
            - name: SERVER_PORT
              value: "80" # 这里默认80,所有服务端口交给k8s
           # - name: PARAMS
           #   valueFrom:
           #     configMapKeyRef:
           #       name: mynacos
           #       key: params
---
apiVersion: v1
kind: Service
metadata:
  namespace: ${k8sNamespace}
  name: ${AppName}
spec:
  selector:
    name: ${AppName}
  type: NodePort # 这个模式是service服务对外提供端口访问应用
  ports:
    - name: ${AppName}
      protocol: TCP
      port: 80
      targetPort: ${AppName}-pod
      nodePort: ${Port}
      #nodePort: ${Port} #如果你使用了nginx进行代理,那么此处无需对外暴露访问端口

EOF

echo "创建${AppName}-deployment.yaml文件成功"

下一步ssh执行远程脚本
在这里插入图片描述

8.查看构建服务页面

在这里插入图片描述

9.下列展示一个完整的maven配置截图

在这里插入图片描述
提示:需要k8s集成nginx-controller组件文档的同学可以在下方评论,或者私聊我!

结束语

本章节完成了,各位正在努力的程序员们,如果你们觉得本文章对您有用的话,或者是你学到了一些东西,希望用您那漂亮,帅气的小手点个赞,支持一下猿仁!
持续更新中…

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿仁

多一分支持,多一分动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值