首页 > 其他分享 >11 使用自由风格发布k8s项目

11 使用自由风格发布k8s项目

时间:2023-02-21 10:47:42浏览次数:51  
标签:11 name ## root 风格 jenkins docker k8s com

一 背景说明

新版的jenkins由于一些k8s插件发现没了,没法使用之前的方法发布了,这次不使用任何插件,直接使用自由风格发布。jenkins是使用docker启动的,k8s环境是基于 1.23版本

二 docker运行jenkins

2.1 安装docker和docker-compase

2.1.1 安装docker环境-ubuntu系统

安装方法
https://www.runoob.com/docker/ubuntu-docker-install.html
自动安装
 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
手动安装
安装 apt 依赖包,用于通过HTTPS来获取仓库:
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
    
添加 Docker 的官方 GPG 密钥:
 curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
 
 sudo apt-get install docker-ce docker-ce-cli containerd.io
 
 

2.1.2 安装docker环境-centos系统

安装方式
https://www.runoob.com/docker/centos-docker-install.html
#手动安装
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2
#设置指定仓库

yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#阿里云仓库
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	
#安装docker
yum install docker-ce -y

2.1.3 安装docker-compase

#1 安装docker-compose
官方下载安装https://github.com/docker/compose/releases/tag/v2.12.2
chmod +x docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/bin/docker-compose

#2 设置jenkins使用宿主机的docker,jdk,maven
把jdk和maven安装在宿主机的/data/目录即可。

chmod -R root:root /run/docker.sock 

chown -R root:root /run/docker.sock 
chmod o+rw /run/docker.sock 

2.2 设置jenkins的docker-compose.yml 的文件

[root@k8s-node2 jenkins_docker]# cat docker-compose.yml 
version: "3.1"
services:
  jenkins:
    image: jenkins/jenkins:lts
    container_name: jenkins1
    ports:
      - 8080:8080
      - 50000:50000
    volumes:
      - /data/:/var/jenkins_home  
      - /run/docker.sock:/var/run/docker.sock #挂载宿主机docker目录
      - /opt/kube/bin/docker:/usr/bin/docker
      - /etc/docker/daemon.json:/etc/docker/daemon.json

2.3 启动jenkins

docker-compose up -d

2.4 设置jdk和maven

jdk
image

maven路径
/var/jenkins_home/mvn

三 发布实例

前提:
设置jenkins可以免密码登录到k8s的master节点

# 172.31.7.112 master节点ip
 docker exec -it cd94e24f318f bash

 ssh-keygen 
 ssh-copy-id -i id_rsa.pub [email protected]

3.1 发布war包到k8s

https://gitee.com/huningfei/java.git #项目地址

jenkins设置,需要提前添加gitlab的用户名和密码到凭据
默认分支为master
image
执行具体的命令
image
具体代码如下:

## hub仓库地址
registry="registry.cn-hangzhou.aliyuncs.com/huningfei/welcome"


image_name="$registry:$BUILD_NUMBER"
echo "这是image_name"+$image_name

##dockhub密码

dockerhub_username="[email protected]"
dockerhub_passwd="password"

##k8s_master
master_ip=172.31.7.112

## 编译
cd $WORKSPACE && /var/jenkins_home/mvn/bin/mvn clean package -Dmaven.test.skip=true

##打包镜像

echo '
      FROM lizhenliang/tomcat 
      RUN rm -rf /usr/local/tomcat/webapps/*
      ADD target/*.war /usr/local/tomcat/webapps/ROOT.war 
      ' > $WORKSPACE/Dockerfile

 docker build -t ${image_name} .
 docker login -u${dockerhub_username} registry.cn-hangzhou.aliyuncs.com -p${dockerhub_passwd}
 docker push ${image_name}

 ## k8s部署

sed -i "s#address#${image_name}#g" $WORKSPACE/deploy.yml

scp -r $WORKSPACE/deploy.yml root@$master_ip:/root
ssh root@$master_ip "kubectl apply -f /root/deploy.yml"

最后点击保存,构建
网页访问项目
image

3.2 发布jar包到k8s

https://gitee.com/huningfei/demo-test.git #项目地址
具体执行脚本

## hub仓库地址
registry="registry.cn-hangzhou.aliyuncs.com/huningfei/welcome"
##项目名字

#project="welcome"

image_name="$registry:$BUILD_NUMBER"
echo "这是image_name"+$image_name




##dockhub密码

dockerhub_username="[email protected]"
dockerhub_passwd="password"

##k8s_master
master_ip=172.31.7.112

## 编译
cd $WORKSPACE && /var/jenkins_home/mvn/bin/mvn clean package -Dmaven.test.skip=true

##打包镜像

echo '
                FROM openjdk:8
                WORKDIR /home/tomcat/.jenkins/workspace/k8s-demo-test

                COPY target/demo-0.0.1-SNAPSHOT.jar  /demo-0.0.1-SNAPSHOT.jar

                CMD java -jar /demo-0.0.1-SNAPSHOT.jar

      ' > $WORKSPACE/Dockerfile

 docker build -t ${image_name} .
 docker login -u${dockerhub_username} registry.cn-hangzhou.aliyuncs.com -p${dockerhub_passwd}
 docker push ${image_name}     

   ## k8s部署

sed -i "s#address#${image_name}#g" $WORKSPACE/deploy.yml


scp -r $WORKSPACE/deploy.yml root@$master_ip:/root/demo-test
ssh root@$master_ip "kubectl apply -f /root/demo-test/deploy.yml"

deploy.yml文件内容具体见:
https://gitee.com/huningfei/demo-test/blob/master/deploy.yml
最后保存构建。
查看pod和svc
image

网页访问
image

标签:11,name,##,root,风格,jenkins,docker,k8s,com
From: https://www.cnblogs.com/huningfei/p/17140068.html

相关文章

  • IC FPGA XC7A200T-1FFG1156I/XC7A200T-2FFG1156I参数 引脚图
    ICFPGAXC7A200T-1FFG1156I/XC7A200T-2FFG1156I引脚图型号:XC7A200T-1FFG1156I、XC7A200T-2FFG1156I类型:FPGA-现场可编程门阵列系列:XC7A200T逻辑元件数量:215360L......
  • 0-1VAC/0-5VAC转4-20mA/0-10V导轨安装DIN11交流电压隔离放大变送器
    概述:导轨安装DIN11交流电压隔离变送器,能将输入的交流信号按比例转换成4~20mA标准信号,输入交流电压信号;输出为4~20mA直流电流信号或0~5VDC直流电压信号。实现辅助电源和输......
  • K8S故障排查
    故障排查//查看Pod事件kubectldescribeTYPENAME_PREFIX//查看Pod日志(Failed状态下)kubectllogs<POD_NAME>[-cContainer_NAME]//进入Pod(状态为running,但是服......
  • K8SYaml文件详解(云原生)
    一、K8S支持的文件格式kubernetes支持YAML和JSON文件格式管理资源对象。JSON格式:主要用于api接口之间消息的传递YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内......
  • K8S-namespace 六大类型
    一、namespace六大类型•Mount(mnt):隔离文件系统挂载点,该namespace有自己的挂载信息,即拥有独立的目录层次总结:提供磁盘挂载点和文件系统的隔离能力•UTS:隔离主机名......
  • K8S-二进制安装
    一.部署二进制概述使用Kubernetes(k8s)二进制安装的优点包括:可以使用最新版本:当你使用二进制安装时,你可以选择使用最新版本的k8s。这使你能够使用最新的功能,同时避免了某......
  • K8S-kubeadm部署
    一.部署环境master(2C/4G,cpu核心数要求大于2)192.168.61.100docker、kubeadm、kubelet、kubectl、flannelnode01(2C/2G)192.16......
  • K8S-声明式-yaml文件
    一.yaml概述Kubernetes支持YAML和JSON格式管理资源对象JSON格式:主要用于api接口之间消息的传递YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内容格......
  • 【YBT2023寒假Day11 A】海妖沙龙(计算几何)
    海妖沙龙题目链接:YBT2023寒假Day11A题目大意平面上有n个点,然后对于一个排列,如果按顺序走对于的点,会形成若干个线段组成的路径,然后你从前一个线段走到下一个线段端点......
  • K8S-kubectl
    一.kubectl资源管理1.1资源管理方法:陈述式和声明式Kubectl是Kubernetes的命令行工具,它可以用来管理和操作Kubernetes集群中的资源。在Kubectl中,有两种常见的资源管理方......