各位大佬,前文如下:
K8S搭建自动化部署环境(一)安装Kubernetes

K8S搭建自动化部署环境(二)安装K8S管理工具Kuboard V3

K8S搭建自动化部署环境(三)Jenkins下载、安装和启动

一、前置环境准备:

1、jdk

下载 jdk-8u171-linux-x64.tar.gz(也可以是其他版本,一样)
解压 /usr/local/jdk1.8.0_171
配置环境变量,在/etc/profile最后面添加如下2行
export JAVA_HOME=/usr/local/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:$PATH
生效命令:source /etc/profile

2、maven

下载 apache-maven-3.8.2-bin.tar.gz(也可以是其他版本,一样)
解压 /usr/local/maven3.8.2 (我这边解压后重命名了下,一样)
配置环境变量,在/etc/profile最后面添加如下2行
export MAVEN_HOME=/usr/local/maven3.8.2
export CLASSPATH=$CLASSPATH:$MAVEN_HOME/lib
export PATH=$PATH:$MAVEN_HOME/bin
生效命令:source /etc/profile

3、git

查看是否安装git: rpm -qa | grep git

[root@nb1 harbor]# yum install git
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 git.x86_64.0.1.8.3.1-23.el7_8 将被 安装
--> 正在处理依赖关系 perl-Git = 1.8.3.1-23.el7_8,它被软件包 git-1.8.3.1-23.el7_8.x86_64 需要
--> 正在处理依赖关系 perl(Term::ReadKey),它被软件包 git-1.8.3.1-23.el7_8.x86_64 需要
--> 正在处理依赖关系 perl(Git),它被软件包 git-1.8.3.1-23.el7_8.x86_64 需要
--> 正在处理依赖关系 perl(Error),它被软件包 git-1.8.3.1-23.el7_8.x86_64 需要
--> 正在检查事务
---> 软件包 perl-Error.noarch.1.0.17020-2.el7 将被 安装
---> 软件包 perl-Git.noarch.0.1.8.3.1-23.el7_8 将被 安装
---> 软件包 perl-TermReadKey.x86_64.0.2.30-20.el7 将被 安装
--> 解决依赖关系完成依赖关系解决==============================================================================================================Package                        架构                 版本                            源                  大小
==============================================================================================================
正在安装:git                            x86_64               1.8.3.1-23.el7_8                base               4.4 M
为依赖而安装:perl-Error                     noarch               1:0.17020-2.el7                 base                32 kperl-Git                       noarch               1.8.3.1-23.el7_8                base                56 kperl-TermReadKey               x86_64               2.30-20.el7                     base                31 k事务概要
==============================================================================================================
安装  1 软件包 (+3 依赖软件包)总下载量:4.5 M
安装大小:22 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): perl-Error-0.17020-2.el7.noarch.rpm                                             |  32 kB  00:00:00
(2/4): perl-TermReadKey-2.30-20.el7.x86_64.rpm                                         |  31 kB  00:00:00
(3/4): perl-Git-1.8.3.1-23.el7_8.noarch.rpm                                            |  56 kB  00:00:01
(4/4): git-1.8.3.1-23.el7_8.x86_64.rpm                                                 | 4.4 MB  00:00:01
--------------------------------------------------------------------------------------------------------------
总计                                                                          2.5 MB/s | 4.5 MB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装    : 1:perl-Error-0.17020-2.el7.noarch                                                         1/4 正在安装    : perl-TermReadKey-2.30-20.el7.x86_64                                                       2/4 正在安装    : perl-Git-1.8.3.1-23.el7_8.noarch                                                          3/4 正在安装    : git-1.8.3.1-23.el7_8.x86_64                                                               4/4 验证中      : git-1.8.3.1-23.el7_8.x86_64                                                               1/4 验证中      : 1:perl-Error-0.17020-2.el7.noarch                                                         2/4 验证中      : perl-Git-1.8.3.1-23.el7_8.noarch                                                          3/4 验证中      : perl-TermReadKey-2.30-20.el7.x86_64                                                       4/4 已安装:git.x86_64 0:1.8.3.1-23.el7_8                                                                               作为依赖被安装:perl-Error.noarch 1:0.17020-2.el7 perl-Git.noarch 0:1.8.3.1-23.el7_8 perl-TermReadKey.x86_64 0:2.30-20.el7完毕!
[root@nb1 harbor]# git --version
git version 1.8.3.1

4、docker

直通车:https://blog.csdn.net/wdy_2099/article/details/77367107

5、Jenkins安装

我这边有个war包,直接放到tomcat下,很简单,基本一直下一步就ok了。网上也很多文章,搜索新点的文章基本都ok。

jenkins.war下载链接:https://www.aliyundrive.com/s/yiTpLXP7Syg

二、安装流水线插件BlueOcean

如果安装Jenkins后在左侧列表里没有看到“Open Blue Ocean”的菜单,则需要安装BlueOcean插件。
安装方法就是,如下图:点击Manager Jenkins–> Manager Plugins

搜索"blue ocean", 说明,正常是可以看到名称为:“Blue Ocean”的插件的,我是已经安装了,故跑到已安装Tab里了哈。选中—> 点击左下角的Install without restart(立即安装)即可。

安装的过程:

安装完成后,回到jenkins首页,就可以看到下面第1张图的左侧菜单里有了“打开Blue Ocean”的按钮, 点击该按钮,则切换到了BlueOcean展示方式。如下第2张图:就表示安装成功了。


接下来,创建一个项目的流水线:这里我用gitee作为示例,也可以是gitlab、github等。
第一次创建,是需要选择 Create new credential 的,将你gitee的用户名、密码,然后点击创建证书就可以了。
最后,点击下面的“创建流水线”按钮完成创建。


由此分支流水线Blue Ocean的安装就完成了。

创建好流水线后,需要回到 任务详情中, 点击“ 立刻Scan 多分支流水线 ” 才可以自动扫描根目录中带有Jenkinsfile文件的分支了。我这里在dev分支里加了Jenkinsfile文件。

附项目目录结构:可以看到有Jenkinsfile文件。

Jenkinsfile 文件内容如下:这里加了一些说明,用的时候,需要去掉哈,或者改成//的注释方式。注意缩进。

# 由于这边是单机版Jenkins,所以直接使用master节点:
node('master') {#加入一些环境变量,供下面调用,也通用,只需改变本变量即可自动部署,
# APP: 项目打包后的名称,你mvn clean package一下,生成的jar包全名就是它的值。
# APP_NAME: 部署到K8s中的工作负载名称,以及在镜像仓库中的仓库名称
# START_COMMOND: 是Dockerfile添加的CMD命令,当容器被启动时会被执行(这里是java应用,故为此例,springboot的一些命令都可以加到此,比如-DNACOS_SERVER -DNACOS_NAMESPACE --server.port 等等)。withEnv(['APP=k8stest-1.0.jar','APP_NAME=k8snb', 'START_COMMOND="CMD java -Xms512M -Xmx2048M -jar app.jar --server.port=8080  -Dclient.logRoot=/app/logs"']) {# 这是一个流水线的stage, 帮助在blueOcean中部署项目时,选择诸如部署的环境,部署项目的配置文件的active等stage('EnvSelect') {echo "0.EnvSelect Stage"script {env.NAME_SPACE = input message: 'Which Env To Deploy', ok: 'YES', parameters: [choice(name: 'NAME_SPACE', choices: ['k8snb', 'k8stest-blueocean'], description: 'Which Env To Deploy')]env.PROFILE = input message: 'Which Profile To Active', ok: 'YES', parameters: [string(defaultValue: env.NAME_SPACE, description: 'Which Profile To Active', name: 'PROFILE', trim: false)]}}# 顾名思义,克隆项目stage('Clone') {echo "1.Clone Stage"sh "date"checkout scmscript {build_tag = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim()if (env.BRANCH_NAME != 'master') {build_tag = "${env.BRANCH_NAME}-${build_tag}"}}}# 顾名思义,用maven项目,这边加了jenkins部署主机的maven全路径执行clean package 并跳过测试stage('Compile') {echo "2.Compile Stage"sh "/usr/local/apache-maven-3.8.2/bin/mvn clean package -DskipTests"sh "mv target/$APP ."}# 配置Dockerfile,将通用的Dockerfile 复制到工作目录,然后sed替换里面的<APP>变量。stage('Config') {echo "3.Config Stage"# 这里pwd其实就是jenkins的工作空间目录sh "pwd" sh "cp -r /usr/local/script/Dockerfile ./Dockerfile"sh "sed -i 's/<APP>/$APP/' Dockerfile"}# 构建镜像,打tag,上传镜像仓库,我这边用的hub.docker.com测试,故弄的公开镜像,生产中得搭建私有镜像仓库,或者使用阿里云、华为云等的组件(花钱买说白了就是)#以下4个sh分别表示1、登录镜像仓库;2、构建本地镜像;3、推送镜像到远程镜像仓库;4、推送完删除本地镜像(可以去掉本命令不自动删,自己手动删也是也一样的,但一般本地不留存,因为远程镜像仓库都有了);stage('Build') {echo "4.Build Stage"withCredentials([usernamePassword(credentialsId: 'dockerhub', passwordVariable: 'dockerhubPassword', usernameVariable: 'dockerhubUser')]) {sh "sudo docker login -u ${dockerhubUser} -p ${dockerhubPassword}  docker.io"sh "sudo docker build -t  docker.io/mydockerhubname/$APP_NAME:${build_tag} ."sh "sudo docker push  docker.io/mydockerhubname/$APP_NAME:${build_tag}"sh "sudo docker rmi mydockerhubname/$APP_NAME:${build_tag}"}}# 部署镜像到k8s容器中:这里也是复制通用的k8s.yaml文件,替换其中的3个变量,并执行。最后输出查看svc的命令# 这里我补充一下:这里是我部署k8s的命令,并不适合所有人。如果大家是自己玩,比如启动jar的方式启动程序的话。可以将下面6个sh命令换一下即可,比如写个.sh脚本(里面写jar的启动方式,启动之前替换下端口号),然后再在这边执行一下。再比如docker镜像的方式启动,那就直接docker run命令启动就可以了。# 这边的思路就是sed命令替换脚本里的内容,使得脚本变得通用了,都是linux上的一些命令,没什么出奇的地方。stage('Deploy') {echo "5. Deploy Stage"if (env.BRANCH_NAME == 'master') {input "确认要部署线上环境吗?"}sh "cp -r /usr/local/script/k8s.yaml ."sh "sed -i 's/<APP_NAME>/$APP_NAME/' k8s.yaml"sh "sed -i 's/<NAMESPACE>/$NAME_SPACE/' k8s.yaml"sh "sed -i 's/<APP_TAG>/${build_tag}/' k8s.yaml"sh "sudo kubectl apply -f k8s.yaml --record"sh "sudo kubectl get svc -A | grep $APP_NAME"}}
}

上述Jenkinfile里用到的通用的Dockerfile、 k8s.yaml如下:

  1. Dockerfile
FROM openjdk:8
ARG app
ADD <APP> app.jar
RUN ["/bin/bash", "-c", "chmod 777 app.jar "]
CMD java -Xms512M -Xmx2048M -jar /app.jar --server.port=8080
  1. k8s.yaml
apiVersion: v1
kind: Service
metadata:name: <APP_NAME>namespace: <NAMESPACE>
spec:type: NodePortports:- name: <APP_NAME>port: 8080
# nodePort: 30004targetPort: 8080protocol: TCPselector:k8s.kuboard.cn/layer: webk8s.kuboard.cn/name: <APP_NAME>
---
apiVersion: apps/v1
kind: Deployment
metadata:name: <APP_NAME>namespace: <NAMESPACE>
spec:selector:matchLabels:k8s.kuboard.cn/layer: webk8s.kuboard.cn/name: <APP_NAME>replicas: 1template:metadata:labels:k8s.kuboard.cn/layer: webk8s.kuboard.cn/name: <APP_NAME>spec:containers:- name: <APP_NAME>image: mydockerhubname/<APP_NAME>:<APP_TAG># 解决Back-off restarting failed container异常,加上后,会将替代镜像中的默认 ENTRYPOINT 或 CMD。需要特别注意!
# command: [ "/bin/bash", "-ce", "tail -f /dev/null" ]imagePullPolicy: IfNotPresentports:- containerPort: 8080# 这里指定创建的密钥imagePullSecrets:- name: dockerhub

三、Jenkins里另外一个配置:全局凭证

上述Jenkins文件中,有推送镜像仓库的命令,如下:

withCredentials([usernamePassword(credentialsId: 'dockerhub', passwordVariable: 'dockerhubPassword', usernameVariable: 'dockerhubUser')]) {sh "sudo docker login -u ${dockerhubUser} -p ${dockerhubPassword}  docker.io"sh "sudo docker build -t  docker.io/mydockerhubname/$APP_NAME:${build_tag} ."sh "sudo docker push  docker.io/mydockerhubname/$APP_NAME:${build_tag}"sh "sudo docker rmi mydockerhubname/$APP_NAME:${build_tag}"}

这里的withCredentials块,是读取Jenkins的全局凭据数据的,故需要建立全局凭据,我这里选择的是dockehub作为镜像仓库,故需要把dockehub的用户名密码填写进去。
从这里逐层进入:


然后,在全局凭据列表里就可以看到刚建的dockerhub凭据了。

最后,回到刚刚安装Blue Ocean完成后的时刻, 再次点击“ 立刻Scan 多分支流水线 ” 就可以自动扫描根目录中带有Jenkinsfile文件的分支了。我这里在dev分支里加了Jenkinsfile文件(重要,又说了一次,承接)。然后点击“Open Blue Ocean”,即可查看到可以部署的分支列表了:

点击列表右边的运行按钮,即可一键部署项目,等各个步骤执行完成后,如下效果:绿色,表示Jenkins流程执行过程无问题。

如上图,点击右上角的“制品”按钮,整个流水线的日志如下:

完整一次的日志内容如下:

Started by user wangdy> /usr/bin/git rev-parse --resolve-git-dir /root/.jenkins/caches/git-50b55b75288b192967baef28206c0de9/.git # timeout=10
Setting origin to https://gitee.com/wangdy0909/k8stest.git> /usr/bin/git config remote.origin.url https://gitee.com/wangdy0909/k8stest.git # timeout=10
Fetching origin...
Fetching upstream changes from origin> /usr/bin/git --version # timeout=10> git --version # 'git version 1.8.3.1'> /usr/bin/git config --get remote.origin.url # timeout=10
using GIT_ASKPASS to set credentials Git username/password for https://gitee.com/wangdy0909/k8stest.git> /usr/bin/git fetch --tags --progress origin +refs/heads/*:refs/remotes/origin/* # timeout=10
Seen branch in repository origin/dev
Seen branch in repository origin/master
Seen 2 remote branches
Obtained Jenkinsfile from d60bf74bde11408b401b521e25c064517f4ca062
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /root/.jenkins/workspace/k8stest-blueocean_dev
[Pipeline] {[Pipeline] withEnv
[Pipeline] {[Pipeline] stage
[Pipeline] { (EnvSelect)
[Pipeline] echo
0.EnvSelect Stage
[Pipeline] script
[Pipeline] {[Pipeline] input
Input requested
Approved by wangdy
[Pipeline] input
Input requested
Approved by wangdy
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Clone)
[Pipeline] echo
1.Clone Stage
[Pipeline] sh
+ date
2021年 09月 08日 星期三 15:11:27 CST
[Pipeline] checkout
Selected Git installation does not exist. Using Default
The recommended git tool is: NONE
using credential git:8943d25551d635f0bbdb6d92118c5cc53e8425f031ba989d7b051c2c53d30b26> /usr/bin/git rev-parse --resolve-git-dir /root/.jenkins/workspace/k8stest-blueocean_dev/.git # timeout=10
Fetching changes from the remote Git repository> /usr/bin/git config remote.origin.url https://gitee.com/wangdy0909/k8stest.git # timeout=10
Cleaning workspace> /usr/bin/git rev-parse --verify HEAD # timeout=10
Resetting working tree> /usr/bin/git reset --hard # timeout=10> /usr/bin/git clean -fdx # timeout=10
Fetching without tags
Fetching upstream changes from https://gitee.com/wangdy0909/k8stest.git> /usr/bin/git --version # timeout=10> git --version # 'git version 1.8.3.1'
using GIT_ASKPASS to set credentials Git username/password for https://gitee.com/wangdy0909/k8stest.git> /usr/bin/git fetch --no-tags --progress https://gitee.com/wangdy0909/k8stest.git +refs/heads/*:refs/remotes/origin/* # timeout=10
Checking out Revision d60bf74bde11408b401b521e25c064517f4ca062 (dev)> /usr/bin/git config core.sparsecheckout # timeout=10> /usr/bin/git checkout -f d60bf74bde11408b401b521e25c064517f4ca062 # timeout=10> /usr/bin/git branch -a -v --no-abbrev # timeout=10> /usr/bin/git branch -D dev # timeout=10> /usr/bin/git checkout -b dev d60bf74bde11408b401b521e25c064517f4ca062 # timeout=10
Commit message: "            sh "cp -r /usr/local/script/Dockerfile ./Dockerfile""> /usr/bin/git rev-list --no-walk d60bf74bde11408b401b521e25c064517f4ca062 # timeout=10
Cleaning workspace> /usr/bin/git rev-parse --verify HEAD # timeout=10
Resetting working tree> /usr/bin/git reset --hard # timeout=10> /usr/bin/git clean -fdx # timeout=10
[Pipeline] script
[Pipeline] {[Pipeline] sh
+ git rev-parse --short HEAD
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Compile)
[Pipeline] echo
2.Compile Stage
[Pipeline] sh
+ /usr/local/apache-maven-3.8.2/bin/mvn clean package -DskipTests
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------------< com.wdy:k8stest >---------------------------
[INFO] Building k8stest 1.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ k8stest ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ k8stest ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /root/.jenkins/workspace/k8stest-blueocean_dev/src/main/resources
[INFO] skip non existing resourceDirectory /root/.jenkins/workspace/k8stest-blueocean_dev/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ k8stest ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /root/.jenkins/workspace/k8stest-blueocean_dev/target/classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ k8stest ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /root/.jenkins/workspace/k8stest-blueocean_dev/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ k8stest ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ k8stest ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ k8stest ---
[INFO] Building jar: /root/.jenkins/workspace/k8stest-blueocean_dev/target/k8stest-1.0.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.5.4.RELEASE:repackage (default) @ k8stest ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  10.500 s
[INFO] Finished at: 2021-09-08T15:11:43+08:00
[INFO] ------------------------------------------------------------------------
[Pipeline] sh
+ mv target/k8stest-1.0.jar .
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Config)
[Pipeline] echo
3.Config Stage
[Pipeline] sh
+ pwd
/root/.jenkins/workspace/k8stest-blueocean_dev
[Pipeline] sh
+ cp -r /usr/local/script/Dockerfile ./Dockerfile
[Pipeline] sh
+ sed -i 's/<APP>/k8stest-1.0.jar/' Dockerfile
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] echo
4.Build Stage
[Pipeline] withCredentials
Masking supported pattern matches of $dockerhubPassword
[Pipeline] {[Pipeline] sh
Warning: A secret was passed to "sh" using Groovy String interpolation, which is insecure.Affected argument(s) used the following variable(s): [dockerhubPassword]See https://jenkins.io/redirect/groovy-string-interpolation for details.
+ sudo docker login -u mydockerhubname -p **** docker.io
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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-storeLogin Succeeded
[Pipeline] sh
+ sudo docker build -t docker.io/mydockerhubname/k8snb:dev-d60bf74 .
Sending build context to Docker daemon  15.45MBStep 1/5 : FROM openjdk:8---> a8035e0cce92
Step 2/5 : ARG app---> Running in 080cdf06aa49
Removing intermediate container 080cdf06aa49---> 79b5c1a15b51
Step 3/5 : ADD k8stest-1.0.jar app.jar---> c9b90d9cf71a
Step 4/5 : RUN ["/bin/bash", "-c", "chmod 777 app.jar "]---> Running in 13557b0d124b
Removing intermediate container 13557b0d124b---> abe4f649c21c
Step 5/5 : CMD java -Xms512M -Xmx2048M -jar /app.jar --server.port=8080---> Running in 0f8134203f99
Removing intermediate container 0f8134203f99---> f1c26302866d
Successfully built f1c26302866d
Successfully tagged mydockerhubname/k8snb:dev-d60bf74
[Pipeline] sh
+ sudo docker push docker.io/mydockerhubname/k8snb:dev-d60bf74
The push refers to repository [docker.io/mydockerhubname/k8snb]
b080750fc6f9: Preparing
f07d5aa4a606: Preparing
cf8ce6105788: Preparing
8ff94addd2f4: Preparing
062f9311b72d: Preparing
9889ce9dc2b0: Preparing
21b17a30443e: Preparing
05103deb4558: Preparing
a881cfa23a78: Preparing
9889ce9dc2b0: Waiting
21b17a30443e: Waiting
a881cfa23a78: Waiting
8ff94addd2f4: Layer already exists
cf8ce6105788: Layer already exists
062f9311b72d: Layer already exists
21b17a30443e: Layer already exists
9889ce9dc2b0: Layer already exists
05103deb4558: Layer already exists
a881cfa23a78: Layer already exists
f07d5aa4a606: Pushed
b080750fc6f9: Pushed
dev-d60bf74: digest: sha256:3c23afb6cf37d64107582fae7d22bc3adf09044c661db65a1cec19653f852398 size: 2219
[Pipeline] sh
+ sudo docker rmi mydockerhubname/k8snb:dev-d60bf74
Untagged: mydockerhubname/k8snb:dev-d60bf74
Untagged: mydockerhubname/k8snb@sha256:3c23afb6cf37d64107582fae7d22bc3adf09044c661db65a1cec19653f852398
Deleted: sha256:f1c26302866d20eb81333e825b3d96a524b182d0ac9995c1b0dfc3360f79d532
Deleted: sha256:abe4f649c21cc5eac07e9f2c702c67639f2ae139488d179c7230ff6c895638b4
Deleted: sha256:d6e7e7cd02b89ac284ff738ed0c37abd0d157fe27810766c8a5bcc77ea8b05fc
Deleted: sha256:c9b90d9cf71a8bb95bb92c59574e0bad34c2a374fd40a84763358c4e81c13d93
Deleted: sha256:be85729ee696a9919b9f72e2ad50c72bb2023b01b182ba09ed273650e70be684
Deleted: sha256:79b5c1a15b51a8489c6ad6f180ae3c765db8a5b3807eb3db220ee995e9d673e6
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Deploy)
[Pipeline] echo
5. Deploy Stage
[Pipeline] sh
+ cp -r /usr/local/script/k8s.yaml .
[Pipeline] sh
+ sed -i 's/<APP_NAME>/k8snb/' k8s.yaml
[Pipeline] sh
+ sed -i 's/<NAMESPACE>/k8snb/' k8s.yaml
[Pipeline] sh
+ sed -i 's/<APP_TAG>/dev-d60bf74/' k8s.yaml
[Pipeline] sh
+ sudo kubectl apply -f k8s.yaml --record
Flag --record has been deprecated, --record will be removed in the future
service/k8snb unchanged
deployment.apps/k8snb configured
[Pipeline] sh
+ sudo kubectl get svc -A
+ grep k8snb
k8snb           jenkins-tomcat   NodePort    10.96.24.16     <none>        8080:30001/TCP                                 6d21h
k8snb           k8snb            NodePort    10.96.16.88     <none>        8080:30100/TCP                                 24h
k8snb           sbd              NodePort    10.96.116.75    <none>        8080:30002/TCP                                 4d23h
k8snb           test-service     NodePort    10.96.205.141   <none>        80:31428/TCP                                   15d
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

总结:所谓流水线,其实就是一个流程,先执行什么后执行什么的一个标准化过程。替代了直接配置每个项目的Jenkins流程,具有标准化的意思。节省了部署和配置时间。提高生产效率。

END

K8S搭建自动化部署环境(四)Jenkins多分支流水线Blue Ocean的安装和使用相关推荐

  1. K8S搭建自动化部署环境(三)Jenkins下载、安装和启动

    各位大佬,前文如下: K8S搭建自动化部署环境(一)安装Kubernetes K8S搭建自动化部署环境(二)安装K8S管理工具Kuboard V3 一.jenkins 下载 jenkins下载地址:h ...

  2. 搭建Jenkins实现自动化部署环境

    大家好,我是阿飞云 怕什么真理无穷,进一步有近一步的欢喜 ​ 本文是团队内小兄弟的学习笔记整理而来.看完本文大体了解为什么要使用Jenkins,部署Jenkins依赖的环境,以及如何用Jenkins进 ...

  3. Jenkins 之 单节点 对接GitHub搭建自动化部署项目环境 与 实战测试 (三)

    Jenkins 之 单节点 对接GitHub搭建自动化部署项目环境 与 实战测试 (三) 目录 Jenkins 之 单节点 搭建自动化部署项目环境 与 实战测试 (三) Jenkins 服务器 环境 ...

  4. git maven 一键部署_Jenkins Git Maven搭建自动化部署项目环境 邮件通知

    简介 折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.com/j ...

  5. Linux如何搭建Java部署环境

    Java具有着跨平台的特性,一次编写,到处运行,如:将Java程序部署到Linux上也可以运行,但是也是需要借助一些工具,如:JDK,MySql,Tomcat等 为什么是搭建Java部署环境,而不是开 ...

  6. 搭建java部署环境以及部署Web项目到Linux

    系列文章目录 Linux 环境搭建以及xshell远程连接_crazy_xieyi的博客-CSDN博客 Linux常用命令详解_crazy_xieyi的博客-CSDN博客 Linux权限_crazy_ ...

  7. 在虚拟机上搭建云平台环境(1)Controller和Computer虚拟机的安装

    在虚拟机上搭建云平台环境(1)Controller和Computer虚拟机的安装 Controller和Computer虚拟机的安装 需要准备的软件有VM Ware.Centos7的iso镜像.Xia ...

  8. Jenkins自动化部署环境搭建

    Jenkins实现流程图 1.1. docker部署jenkins,可避免很多问题 1.2. war包启动 下载war包链接:https://get.jenkins.io/war-stable/ je ...

  9. Jenkins+Gitlab+Ansible自动化部署(四)

    Jenkins+Gitlab+Ansible自动化部署(2021-08-11) 一.Jenkins Linux Shell 集成 登录Jenkins web管理页,点击新建任务 添加描述信息 添加构建 ...

最新文章

  1. gin自定义路由日志的格式
  2. python3 “from PIL import...“报错
  3. 《说服力——让你的PPT会说话》读书笔记02
  4. WCF PeerChannel介绍
  5. PHP环境,放置系统盘的文件
  6. docker etcd
  7. quartz定时程序无故停止并且没有错误
  8. IBATIS的优缺点
  9. 前端零碎问题(四)css3
  10. 什么年代了,买硬盘不论T?
  11. 软件工程——软件维护总结
  12. 无线通信算法工程师知识地图
  13. 做精明财女必上的3堂课 结婚才是最大的投资
  14. [C++]学生学籍管理系统
  15. 【线性代数】6-5:正定矩阵(Positive Definite Matrices)
  16. FatalThrowableError in Encrypter.php line 66: Call to undefined function openssl_encrypt()
  17. 谷歌浏览器设置关闭搜索记录
  18. CNAS 认证机构认可规范文件清单
  19. 安卓手机免root权限恢复微信聊天记录(以vivo手机为例)
  20. 网站制作从原型图架构到设计开发的具体步骤

热门文章

  1. 差分进化算法(Differential Evolution)
  2. CFileDialog类应用详解
  3. 25大城市哪里买房好
  4. 什么品种的猫最受欢迎?Python爬取猫咪网站交易数据
  5. ISE约束--UCF编辑的入门介绍[zz]
  6. android 多界面开发,安卓开发教程(Android多界面应用程序开发)
  7. c语言tinyxml使用方法,如何利用tinyxml操纵xml及注意问题
  8. 长春理工大学微型计算机原理,微机原理
  9. Linux使用vi编辑文件 出现E325:ATTENTION错误
  10. 解决Win10笔记本电脑Wifi频繁断线的问题