网站建设岗位招聘,补肾壮阳吃什么药效果好,南山出名的互联网公司,网站与数据库的联系目录
一、实验
1.环境
2.GitLab新建项目存放K8S部署文件
3.Jenkins手动测试前端项目CD 流水线代码#xff08;下载部署文件#xff09;
4. 将K8S master节点配置为jenkins从节点
5.K8S 手动回滚前端项目版本
6.Jenkins手动测试前端项目CD 流水线代码#xff08;发布应…目录
一、实验
1.环境
2.GitLab新建项目存放K8S部署文件
3.Jenkins手动测试前端项目CD 流水线代码下载部署文件
4. 将K8S master节点配置为jenkins从节点
5.K8S 手动回滚前端项目版本
6.Jenkins手动测试前端项目CD 流水线代码发布应用
7.Jenkins手动测试前端项目CD 流水线代码添加选择回滚功能
8. Jenkins创建前端项目CD流水线
9. GitLab修改代码
10. Jenkins手动构建前端项目CI流水线
11. K8S node节点连接Harbor拉取镜像
12.Jenkins通过GitLab共享库实现前端项目在K8S自动发布应用
二、问题
1. jenkins从节点配置页面显示端口被禁用
2.将K8S master节点配置为jenkins从节点报错 一、实验
1.环境
1主机
表1 主机
主机架构版本IP备注master1K8S master节点1.20.6192.168.204.180 jenkins slave 从节点 node1K8S node节点1.20.6192.168.204.181node2K8S node节点1.20.6192.168.204.182jenkins jenkins主节点 2.414.2192.168.204.15:8080 gitlab runner 从节点 harbor私有仓库1.2.2192.168.204.15gitlab gitlab 主节点 12.10.14192.168.204.8:82 jenkins slave 从节点 sonarqube9.6192.168.204.8:9000 2.GitLab新建项目存放K8S部署文件
1新建项目 2K8S查看节点及部署文件
# kubectl get nodes# cat devops03-devops-ui.yaml3将部署文件复制到GitLab项目 4完成提交 5查看项目编号为22 3.Jenkins手动测试前端项目CD 流水线代码下载部署文件
1在回放中运行测试代码
Library(mylibmaster) _
import org.devops.*def gitlabbutil new Gitlab()pipeline {agent { label build}options {skipDefaultCheckout true}stages{stage(GetDeployFile){steps{script {println(GetCode)fileData gitlabbutil.GetRepoFile(22,deployment.yaml, master)println(fileData)}}}}
} 2成功 3生成流水线脚本实现写入文件 4回放中运行代码测试代码
Library(mylibmaster) _
import org.devops.*def gitlabbutil new Gitlab()
pipeline {agent { label build}options {skipDefaultCheckout true}stages{stage(GetDeployFile){steps{script {println(GetCode)fileData gitlabbutil.GetRepoFile(22,deployment.yaml, master)println(fileData)writeFile file: deployment.yaml, text: fileDatash ls -l; cat deployment.yaml}}}}
} 2成功 4. 将K8S master节点配置为jenkins从节点
1Jenkins添加节点 2设置 3配置界面 4K8S master节点创建目录下载jar包
# mkdir /tmp/jenkinsagent# cd /tmp/jenkinsagent# wget http://192.168.204.15:8080/jnlpJars/agent.jar 选择第3种方式进行安装
运或者运行脚本 5成功添加 6查看节点列表
K8S 集群关闭了Swap Space 5.K8S 手动回滚前端项目版本
1查看历史
# kubectl rollout history deployment/devops03-devops-ui -n devops03 2查看具体某一个历史版本信息
# kubectl rollout history deployment/devops03-devops-ui --revision3 -n devops03# kubectl rollout history deployment/devops03-devops-ui --revision4 -n devops03 3 另开一个终端用watch命令观察pod变化
# watch -n 1 kubectl get pod -n devops03 4外部测试访问当前版本为1.1.6
# curl http://devops03-devops-ui.devops.com:312915回滚指定版本
# kubectl rollout undo deployment/devops03-devops-ui --to-revision3 -n devops036观察pod变化 7外部测试访问回滚版本为1.1.5
# curl http://devops03-devops-ui.devops.com:31291 6.Jenkins手动测试前端项目CD 流水线代码发布应用
1回放中运行代码测试代码
Library(mylibmaster) _
import org.devops.*def gitlabbutil new Gitlab()
env.groupName ${JOB_NAME}.split(/)[0]
env.projectName ${JOB_NAME}.split(/)[-1].split(_)[0]pipeline {agent { label k8s}options {skipDefaultCheckout true}stages{stage(GetDeployFile){steps{script {println(GetCode)fileData gitlabbutil.GetRepoFile(22,deployment.yaml, master)//println(fileData)sh rm -fr deployment.yamlwriteFile file: deployment.yaml, text: fileData//sh ls -l; cat deployment.yamlsh ls -l }}}stage(DeployAPP){steps{script{namespace ${env.groupName}appName ${env.projectName}sh ## 发布应用kubectl apply -f deployment.yaml -n ${namespace}// 获取应用状态5.times{sh sleep 2; kubectl -n ${namespace} get pod | grep ${appName} }}}}}
} 2成功 3观察pod变化 4外部测试访问版本升级为1.1.6
# curl http://devops03-devops-ui.devops.com:31291 7.Jenkins手动测试前端项目CD 流水线代码添加选择回滚功能
1先手动回滚为1.1.5
# kubectl rollout undo deployment/devops03-devops-ui -n devops03
deployment.apps/devops03-devops-ui rolled back2观察pod变化 3 外部测试访问当前版本回滚为为1.1.5
# curl http://devops03-devops-ui.devops.com:312914回放中运行代码测试代码
Library(mylibmaster) _
import org.devops.*def gitlabbutil new Gitlab()
env.groupName ${JOB_NAME}.split(/)[0]
env.projectName ${JOB_NAME}.split(/)[-1].split(_)[0]pipeline {agent { label k8s}options {skipDefaultCheckout true}stages{stage(GetDeployFile){steps{script {println(GetCode)fileData gitlabbutil.GetRepoFile(22,deployment.yaml, master)//println(fileData)sh rm -fr deployment.yamlwriteFile file: deployment.yaml, text: fileData//sh ls -l; cat deployment.yamlsh ls -l }}}stage(DeployAPP){steps{script{env.namespace ${env.groupName}env.appName ${env.projectName}sh ## 发布应用kubectl apply -f deployment.yaml -n ${env.namespace}// 获取应用状态5.times{sh sleep 2; kubectl -n ${env.namespace} get pod | grep ${env.appName} }}}}stage(RollOut){input {message 是否进行回滚ok 提交submitter david,aaparameters {choice(choices: [yes,no], name: opts)}}steps{script{switch (${opts}){case yes:sh kubectl rollout undo deployment/${env.appName} -n ${env.namespace}breakcase no:break}}}}}
}5观察pod变化 (6) 外部测试访问当前版本为1.1.6
# curl http://devops03-devops-ui.devops.com:312916Blue Ocean弹出选项选择yes (7) 观察pod变化 8外部测试访问当前版本回滚为1.1.5
# curl http://devops03-devops-ui.devops.com:312918. Jenkins创建前端项目CD流水线
1Jenins新建前端项目CD流水线 2去除其他参数修改脚本路径 9. GitLab修改代码
1GitLab共享库新建K8S CD流水线 2将之前测试成功的代码复制过来 3GitLab前端项目新建分支RELEASE-1.1.7 10. Jenkins手动构建前端项目CI流水线
1Jenkins手动构建分支输入RELEASE-1.1.7 2Jenkins添加视图 3查看CI和CD视图 4成功 5Blue Ocean 查看 6Harbor查看镜像
192.168.204.15/devops03/devops03-devops-ui:RELEASE-1.1.77Build Now 直接构建 8观察pod变化 9 外部测试访问版本升级为1.1.6
# curl http://devops03-devops-ui.devops.com:31291 11. K8S node节点连接Harbor拉取镜像
1拉取镜像
# docker login -u admin -p Harbor12345 192.168.204.15# docker pull 192.168.204.15/devops03/devops03-devops-ui:RELEASE-1.1.7# docker logout 192.168.204.15
2node1 节点 3node2节点 12.Jenkins通过GitLab共享库实现前端项目在K8S自动发布应用
1GitLab修改部署文件 修改前 修改后 2Build Now 直接构建 3观察pod变化 4 外部测试访问当前版本为1.1.7
# curl http://devops03-devops-ui.devops.com:312915Blue Ocean弹出界面选择no (不进行回滚) (6) 完成 二、问题
1. jenkins从节点配置页面显示端口被禁用
1报错 2原因分析
未启用WebSocket
(3) 解决方法
启用WebSocket 2.将K8S master节点配置为jenkins从节点报错
1报错 2原因分析
根据报错信息可以得知报错的原因是由于编译这份java代码的版本和当前用于运行的java版本并不一致。并且编译的版本仅支持52.0或以上的运行版本。从而可以得知当前用于运行的java版本低于52.0。而首先需要了解什么是编译的版本什么是运行的版本。需要区分开jre和jdk。在安装java环境的时候一个版本会分别对应两个文件夹分别是jre和jdk。而jre表示的是java runtime environment 即java的运行环境而jdk表示的是Java SE Development kit(JDK)即java的编译环境。java -version查看的是jre的版本运行环境。
javac -version查看的是jdk的版本编译环境。
3解决方法
在查看版本后发现不一致那么就去重新配置一下环境保证版本一致后重新编译运行即可。需要说明的是我这里这份代码并不是我编写的并且也只拿到了编译完成后的class文件因此只能通过解决更换运行的java版本解决这个问题。而从报错信息中可以知道这份代码在编译后仅支持用52.0及以上的java版本的jre环境运行即使不知道52.0的版本对应的是哪个java版本但肯定是需要高于1.8.0的。并且为了避免以后产生问题我计划直接更新整个java的版本即将jdk和jre换成一个新的版本也考虑到以后可能还需要用到1.8.0的版本因此并不会把1.8.0的版本删除。① 查询java版本
# java -version②本机自带jdk 先卸载jdk
# rpm -qa|grep java # rpm -e --nodeps xxxxx
查询 删除 再次查询 ③ 新版的Jenkins需要安装JDK11的JAVA环境所以我们首先要配置JDK
Java Archive Downloads - Java SE 11 | Oracle 中国
#下载完之后拖到opt目录下
cd /opt#安装JDK11
rpm -ivh jdk-11.0.15.1_linux-x64_bin.rpm#配置环境变量
vim /etc/profile
export JAVA_HOME/usr/java/jdk-11.0.15.1
export PATH$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin#刷新配置
source /etc/profile#查看java版本
java -version ④ ssh-copy-id 被控端IP 需要输入对应主节的root密码
# ssh-copy-id root192.168.204.180⑤ 运行脚本 ⑥ 成功添加