一、部署代码
wget http://192.168.18.250/file/xiaoniaofeifei.zip
mkdir xiaoniao
mv xiaoniaofeifei.zip xiaoniao
cd xiaoniao/
unzip xiaoniaofeifei.zip
二、上传至码云
登录码云
创建仓库
长传代码:
[root@k8s-node2 xiaoniao]# pwd
/opt/xiaoniao
git config --global user.name "liangzeyu"
git config --global user.email "2249902650@qq.com"
git init
git add .
git commit -m "first commit"
git remote add origin https://gitee.com/liangzeyuaa/test.git
git push -u origin master
三、编写dockerfiel
[root@k8s-node2 xiaoniao]# cat /opt/xiaoniao/dockerfile
FROM 10.0.0.11:5000/nginx:1.13
ADD . /usr/share/nginx/html
[root@k8s-node2 xiaoniao]# docker build -t xiaoniao:v1 .
提交镜像
[root@k8s-node2 xiaoniao]# docker run -d -p 80:80 xiaoniao:v1
08b63194c5076401e276c1e1ef86ae337e48594fc4888c7e47d0826452be8c44
提交代码
git commit -m "first commit"
git push -u origin master
四、安装jenkns
wget http://192.168.18.250/file/k8s_jenkins/apache-tomcat-8.0.27.tar.gz
691 wget http://192.168.18.250/file/k8s_jenkins/jdk-8u102-linux-x64.rpm
692 wget http://192.168.18.250/file/k8s_jenkins/jenkin-data.tar.gz
693 wget http://192.168.18.250/file/k8s_jenkins/jenkins.war
694 rpm -ivh jdk-8u102-linux-x64.rpm
695 mkdir -p /app/
696 tar -xf apache-tomcat-8.0.27.tar.gz -C /app
mv jenkins.war /app/apache-tomcat-8.0.27/webapps/ROOT.war
697 mv jenkins.war /app/apache-tomcat-8.0.27/webapps/ROOT.war
698 tar xf jenkin-data.tar.gz -C /root
699 /app/apache-tomcat-8.0.27/bin/startup.sh
访问:8080
账号:admin 密码:123456
五、配置
创建构建项
创建一个xiaoniao的构建项
描述为test
点击源码管理
点击git
复制码云代码地址
执行shell
点击立即构建。
测试没问题
六、添加变量
点击立即构建,成功
七、jenkins控制k8s实现代码发布
docker build -t 10.0.0.11:5000/xiaoniao:$version .
docker push 10.0.0.11:5000/xiaoniao:$version
kubectl -s 10.0.0.11:8080 create namespace xiaoniao
kubectl -s 10.0.0.11:8080 run xiaoniao -n xiaoniao --image=10.0.0.11:5000/xiaoniao:$version --replicas=3 --record
kubectl -s 10.0.0.11:8080 expose -n xiaoniao deployment xiaoniao --port=80 --type=NodePort
kubectl -s 10.0.0.11:8080 set image -n xiaoniao deploy xiaoniao xiaoniao=10.0.0.11:5000/xiaoniao:$version
port=`kubectl -s 10.0.0.11:8080 get svc -n xiaoniao|grep -oP '(?<=80:)\d+'`
echo "你的项目地址访问是http://10.0.0.13:$port"
echo "更新成功"
但是上面的执行第二次会出错,下面这个是无敌的!
if [ -f /tmp/xiaoniao.lock ];thendocker build -t 10.0.0.11:5000/xiaoniao:v$BUILD_ID .docker push 10.0.0.11:5000/xiaoniao:v$BUILD_IDkubectl -s 10.0.0.11:8080 set image -n xiaoniao deploy xiaoniao xiaoniao=10.0.0.11:5000/xiaoniao:v$BUILD_IDport=`kubectl -s 10.0.0.11:8080 get svc -n xiaoniao|grep -oP '(?<=80:)\d+'`echo "你的项目地址访问是http://10.0.0.13:$port"echo "更新成功"elsedocker build -t 10.0.0.11:5000/xiaoniao:v$BUILD_ID .docker push 10.0.0.11:5000/xiaoniao:v$BUILD_IDkubectl -s 10.0.0.11:8080 create namespace xiaoniaokubectl -s 10.0.0.11:8080 run xiaoniao -n xiaoniao --image=10.0.0.11:5000/xiaoniao:v$BUILD_ID --replicas=3 --recordkubectl -s 10.0.0.11:8080 expose -n xiaoniao deployment xiaoniao --port=80 --type=NodePortport=`kubectl -s 10.0.0.11:8080 get svc -n xiaoniao|grep -oP '(?<=80:)\d+'`echo "你的项目地址访问是http://10.0.0.13:$port"echo "发布成功"touch /tmp/xiaoniao.lockchattr +i /tmp/xiaoniao.lockfi
jenkins一键回滚
kubectl -s 10.0.0.11:8080 rollout undo -n xiaoniao deployment xiaoniao
有问题请加博主微信进行沟通!
全部评论