CN109947452A - 一种Kubernetes容器平台应用更新方法 - Google Patents

一种Kubernetes容器平台应用更新方法 Download PDF

Info

Publication number
CN109947452A
CN109947452A CN201910231840.1A CN201910231840A CN109947452A CN 109947452 A CN109947452 A CN 109947452A CN 201910231840 A CN201910231840 A CN 201910231840A CN 109947452 A CN109947452 A CN 109947452A
Authority
CN
China
Prior art keywords
host
kubernetes
project
jenkins
script
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910231840.1A
Other languages
English (en)
Inventor
林宇程
蔡华忠
王文波
孟祥鹏
刘本中
司震
魏阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Linkage Information Technology Co Ltd
Original Assignee
Nanjing Linkage Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Linkage Information Technology Co Ltd filed Critical Nanjing Linkage Information Technology Co Ltd
Priority to CN201910231840.1A priority Critical patent/CN109947452A/zh
Publication of CN109947452A publication Critical patent/CN109947452A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种Kubernetes容器平台应用更新方法,包含以下步骤:在第一主机上安装Docker环境,安装kubectl工具并使其能够连接并管理Kubernetes;配置第二主机到第一主机免密登录,部署Jenkins环境并安装插件,在Publish over SSH功能中配置第一主机;在第一主机上创建脚本;在Jenkins中新建一个项目project,实现从SVN中拉取代码,通过Maven脚本将生产环境中使用的配置文件加入构建,构建后将软件包通过SSH发布至第一主机,并执行第一主机中创建的脚本。本发明大大增加了更新的效率,并减少了误操作的可能性,对人工成本具有极大的节省意义。

Description

一种Kubernetes容器平台应用更新方法
技术领域
本发明设计一种应用更新方法,特别是一种Kubernetes容器平台应用更新方法。
背景技术
随着容器化的推广,基于Docker的Kubernetes容器平台越来越多的被应用于生产环境,Kubernetes容器平台中的Deployment应用更新时,需要先从代码库中拉取新代码,编译构建新版本应用,制作成镜像上传至镜像仓库,再更新Kubernetes中的Deployment应用。随着代码量和应用量的增加,人工更新的效率越来越低,误操作可能性越来越高,人工成本也越来越高。
发明内容
本发明所要解决的技术问题是提供一种Kubernetes容器平台应用更新方法,节省人工成本。
为解决上述技术问题,本发明所采用的技术方案是:
一种Kubernetes容器平台应用更新方法,其特征在于包含以下步骤:
步骤一:在第一主机上安装Docker环境,安装kubectl工具并使其能够连接并管理Kubernetes;
步骤二:配置第二主机到第一主机免密登录,部署Jenkins环境并安装插件,在Publishover SSH功能中配置;
步骤三:在第一主机上创建脚本;
步骤四:在Jenkins中新建一个项目project,实现从SVN中拉取代码,通过Maven脚本将生产环境中使用的配置文件加入构建,构建后将软件包通过SSH发布至第一主机,并执行第一主机中创建的脚本。
进一步地,所述步骤一具体为选择与Kubernetes环境网络连通的第一主机安装Docker环境,版本与Kubernetes中保持一致,安装kubectl工具并配置apiServer地址,使其能够连接并管理Kubernetes。
进一步地,所述步骤二具体为选择与代码库和第一主机网络相通的第二主机,配置到第一主机的免密登陆,下载Jenkins的war包与Tomcat的代码包,将Jenkins的war包放入Tomcat目录下的webapps目录中,启动Tomcat,访问http://localhost:8080/jenkins,进入Jenkins初始化页面,按提示完成初始化步骤,进入***管理-管理插件中,安装Subversion和Maven插件,再进入***管理-***设置,配置JDK、Maven,并在Publish overSSH功能下的Jenkins SSH Key中配置id_rsa与密语,SSH Servers中添加第一主机。
进一步地,所述步骤三中脚本的功能为使用指定的Dockerfile创建容器镜像并命名,再上传至容器仓库,最后使用kubectl命令更新对应的Deployment。
进一步地,所述步骤三具体为建立专用的Dockerfile实现下面功能:设定容器环境,指定容器运行用户,创建需要使用的目录,指定工作目录及权限,将新版应用文件放入容器,指定容器启动命令;创建应用打包上传更新脚本,使用docker build命令利用刚刚建立的Dockerfile创建容器镜像,使用docker push命令上传至容器仓库,使用kubectl setimage命令更新对应的Deployment。
进一步地,Kubernetes容器平台使用Deployment部署应用,使用镜像仓库存储应用镜像。
进一步地,所述脚本内容为
#!/bin/bash
cd /root/image/project-name
cv=`docker images|grep project-name|awk '{print $2}'|sort -r|head -n 1`
cvn=${cv:1}
step=0.1
nvn=`echo "$cvn + $step"|bc`
echo $nvn
docker build -t project-name:v$nvn ./
docker push project-name:v$nvn
kubectl set image deployment/project-name project-name = project-name:v$nvn。
进一步地,所述步骤四具体为在Jenkins中新建一个项目project,配置SVN仓库地址与连接账号、Maven构建参数、构建后发布操作,实现从SVN中拉取代码,通过Maven将生产环境中使用的配置文件加入构建,构建后将软件包通过SSH发布至第一主机,并执行第一主机中创建的脚本。
进一步地,使用Jenkins***作为容器应用更新的管理与控制工具,自动拉取代码编译构建并远程部署。
本发明与现有技术相比,具有以下优点和效果:本发明对生产环境中Kubernetes容器平台下Deployment应用的更新方式进行自动化配置,主要使用Jenkins工具,将应用代码的编译构建及发布集成到一个Jenkins项目中,再将镜像的打包上传及应用的更新集成到一个shell脚本中,在Jenkins项目的最后调用。本发明将多个步骤集成在一个Jenkins项目中,只需开发运维人员一次点击,即可将新版本应用更新至生产环境,大大增加了更新的效率,并减少了误操作的可能性,对人工成本具有极大的节省意义。
具体实施方式
下面通过实施例对本发明作进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
本发明的一种Kubernetes容器平台应用更新方法,包含以下步骤:
步骤一:在第一主机上安装Docker环境,安装kubectl工具并使其能够连接并管理Kubernetes;
选择与Kubernetes环境网络连通的第一主机安装Docker环境,版本与Kubernetes中保持一致,安装kubectl工具并配置apiServer地址,使其能够连接并管理Kubernetes。
步骤二:配置第二主机到第一主机免密登录,部署Jenkins环境并安装插件,在Publish over SSH功能中配置;
选择与代码库和第一主机网络相通的第二主机,配置到第一主机的免密登陆,下载Jenkins的war包与Tomcat的代码包,将Jenkins的war包放入Tomcat目录下的webapps目录中,启动Tomcat,访问http://localhost:8080/jenkins,进入Jenkins初始化页面,按提示完成初始化步骤,进入***管理-管理插件中,安装Subversion和Maven插件,再进入***管理-***设置,配置JDK、Maven,并在Publish over SSH功能下的Jenkins SSH Key中配置id_rsa与密语,SSH Servers中添加第一主机。
步骤三:在第一主机上创建脚本;脚本的功能为使用指定的Dockerfile创建容器镜像并命名,再上传至容器仓库,最后使用kubectl命令更新对应的Deployment。Kubernetes容器平台使用Deployment部署应用,使用镜像仓库存储应用镜像。
建立专用的Dockerfile实现下面功能:设定容器环境,指定容器运行用户,创建需要使用的目录,指定工作目录及权限,将新版应用文件放入容器,指定容器启动命令;创建应用打包上传更新脚本,使用docker build命令利用刚刚建立的Dockerfile创建容器镜像,使用docker push命令上传至容器仓库,使用kubectl set image命令更新对应的Deployment。
脚本内容为
#!/bin/bash
cd /root/image/project-name
cv=`docker images|grep project-name|awk '{print $2}'|sort -r|head -n 1`
cvn=${cv:1}
step=0.1
nvn=`echo "$cvn + $step"|bc`
echo $nvn
docker build -t project-name:v$nvn ./
docker push project-name:v$nvn
kubectl set image deployment/project-name project-name = project-name:v$nvn。
步骤四:在Jenkins中新建一个项目project,实现从SVN中拉取代码,通过Maven脚本将生产环境中使用的配置文件加入构建,构建后将软件包通过SSH发布至第一主机,并执行第一主机中创建的脚本。
在Jenkins中新建一个项目project,配置SVN仓库地址与连接账号、Maven构建参数、构建后发布操作,实现从SVN中拉取代码,通过Maven将生产环境中使用的配置文件加入构建,构建后将软件包通过SSH发布至第一主机,并执行第一主机中创建的脚本。
使用Jenkins***作为容器应用更新的管理与控制工具,自动拉取代码编译构建并远程部署。
本发明对生产环境中Kubernetes容器平台下Deployment应用的更新方式进行自动化配置,主要使用Jenkins工具,将应用代码的编译构建及发布集成到一个Jenkins项目中,再将镜像的打包上传及应用的更新集成到一个shell脚本中,在Jenkins项目的最后调用。本发明将多个步骤集成在一个Jenkins项目中,只需开发运维人员一次点击,即可将新版本应用更新至生产环境,大大增加了更新的效率,并减少了误操作的可能性,对人工成本具有极大的节省意义。
本说明书中所描述的以上内容仅仅是对本发明所作的举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种修改或补充或采用类似的方式替代,只要不偏离本发明说明书的内容或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

Claims (9)

1.一种Kubernetes容器平台应用更新方法,其特征在于包含以下步骤:
步骤一:在第一主机上安装Docker环境,安装kubectl工具并使其能够连接并管理Kubernetes;
步骤二:配置第二主机到第一主机免密登录,部署Jenkins环境并安装插件,在Publishover SSH功能中配置第一主机;
步骤三:在第一主机上创建脚本;
步骤四:在Jenkins中新建一个项目project,实现从SVN中拉取代码,通过Maven脚本将生产环境中使用的配置文件加入构建,构建后将软件包通过SSH发布至第一主机,并执行第一主机中创建的脚本。
2.按照权利要求1所述的一种Kubernetes容器平台应用更新方法,其特征在于:所述步骤一具体为选择与Kubernetes环境网络连通的第一主机安装Docker环境,版本与Kubernetes中保持一致,安装kubectl工具并配置apiServer地址,使其能够连接并管理Kubernetes。
3.按照权利要求1所述的一种Kubernetes容器平台应用更新方法,其特征在于:所述步骤二具体为选择与代码库和第一主机网络相通的第二主机,配置到第一主机的免密登陆,下载Jenkins的war包与Tomcat的代码包,将Jenkins的war包放入Tomcat目录下的webapps目录中,启动Tomcat,访问http://localhost:8080/jenkins,进入Jenkins初始化页面,按提示完成初始化步骤,进入***管理-管理插件中,安装Subversion和Maven插件,再进入***管理-***设置,配置JDK、Maven,并在Publish over SSH功能下的Jenkins SSH Key中配置id_rsa与密语,SSH Servers中添加第一主机。
4.按照权利要求1所述的一种Kubernetes容器平台应用更新方法,其特征在于:所述步骤三中脚本的功能为使用指定的Dockerfile创建容器镜像并命名,再上传至容器仓库,最后使用kubectl命令更新对应的Deployment。
5.按照权利要求4所述的一种Kubernetes容器平台应用更新方法,其特征在于:所述步骤三具体为建立专用的Dockerfile实现下面功能:设定容器环境,指定容器运行用户,创建需要使用的目录,指定工作目录及权限,将新版应用文件放入容器,指定容器启动命令;创建应用打包上传更新脚本,使用docker build命令利用刚刚建立的Dockerfile创建容器镜像,使用docker push命令上传至容器仓库,使用kubectl set image命令更新对应的Deployment。
6.按照权利要求5所述的一种Kubernetes容器平台应用更新方法,其特征在于:Kubernetes容器平台使用Deployment部署应用,使用镜像仓库存储应用镜像。
7.按照权利要求4所述的一种Kubernetes容器平台应用更新方法,其特征在于:所述脚本内容为
#!/bin/bash
cd /root/image/project-name
cv=`docker images|grep project-name|awk '{print $2}'|sort -r|head -n 1`
cvn=${cv:1}
step=0.1
nvn=`echo "$cvn + $step"|bc`
echo $nvn
docker build -t project-name:v$nvn ./
docker push project-name:v$nvn
kubectl set image deployment/project-name project-name = project-name:v$nvn。
8.按照权利要求1所述的一种Kubernetes容器平台应用更新方法,其特征在于:所述步骤四具体为在Jenkins中新建一个项目project,配置SVN仓库地址与连接账号、Maven构建参数、构建后发布操作,实现从SVN中拉取代码,通过Maven将生产环境中使用的配置文件加入构建,构建后将软件包通过SSH发布至第一主机,并执行第一主机中创建的脚本。
9.按照权利要求1所述的一种Kubernetes容器平台应用更新方法,其特征在于:使用Jenkins***作为容器应用更新的管理与控制工具,自动拉取代码编译构建并远程部署。
CN201910231840.1A 2019-03-26 2019-03-26 一种Kubernetes容器平台应用更新方法 Pending CN109947452A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910231840.1A CN109947452A (zh) 2019-03-26 2019-03-26 一种Kubernetes容器平台应用更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910231840.1A CN109947452A (zh) 2019-03-26 2019-03-26 一种Kubernetes容器平台应用更新方法

Publications (1)

Publication Number Publication Date
CN109947452A true CN109947452A (zh) 2019-06-28

Family

ID=67011016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910231840.1A Pending CN109947452A (zh) 2019-03-26 2019-03-26 一种Kubernetes容器平台应用更新方法

Country Status (1)

Country Link
CN (1) CN109947452A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110673858A (zh) * 2019-08-30 2020-01-10 四川新网银行股份有限公司 一种基于ssh免密登录协议的轻量级部署方法
CN110764786A (zh) * 2019-12-27 2020-02-07 凯泰铭科技(北京)有限公司 一种云计算环境下优化部署资源与软件交付平台
CN110795207A (zh) * 2019-09-27 2020-02-14 广东浪潮大数据研究有限公司 一种虚拟容器最小资源单位互信配置方法及装置
CN110865840A (zh) * 2019-11-18 2020-03-06 上海极链网络科技有限公司 一种应用管理方法、装置、服务器及存储介质
CN111147297A (zh) * 2019-12-23 2020-05-12 广东省新一代通信与网络创新研究院 一种kubernetes的多层网络平面构建方法
CN111475260A (zh) * 2020-04-10 2020-07-31 杭州趣维科技有限公司 一种基于jenkins和kubernetes平台的可弹性CICD方法
CN111475145A (zh) * 2020-04-14 2020-07-31 北京思特奇信息技术股份有限公司 一种创建开发环境的方法、装置、计算设备和存储介质
CN112148269A (zh) * 2020-10-22 2020-12-29 深圳市思迅软件股份有限公司 研发持续集成方法、装置、计算机设备及存储介质
CN112395039A (zh) * 2019-08-16 2021-02-23 北京神州泰岳软件股份有限公司 一种Kubernetes集群的管理方法和装置
WO2021042846A1 (zh) * 2019-09-04 2021-03-11 南京中兴软件有限责任公司 网络隔离策略管理方法和网络隔离策略管理***
CN113253887A (zh) * 2021-06-11 2021-08-13 北京中祥英科技有限公司 应用发布方法、计算机设备及可读存储介质
CN113504916A (zh) * 2021-07-23 2021-10-15 京东方科技集团股份有限公司 一种代码更新方法和装置、计算机设备及介质
CN114995962A (zh) * 2022-08-08 2022-09-02 浩鲸云计算科技股份有限公司 一种通过初始化容器来加载应急补丁的方法
US11500980B2 (en) 2020-02-11 2022-11-15 International Business Machines Corporation Automated and auditable framework to control software component changes in an application build process

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化***及方法
CN107807815A (zh) * 2017-10-19 2018-03-16 北京京东尚科信息技术有限公司 分布式处理任务的方法和装置
US20180137032A1 (en) * 2016-11-11 2018-05-17 Atlassian Pty Ltd Systems and methods for testing source code
CN108196915A (zh) * 2018-02-06 2018-06-22 杭州朗和科技有限公司 基于应用容器引擎的代码处理方法、设备及存储介质
US10120670B1 (en) * 2018-03-28 2018-11-06 Capital One Services, Llc Systems and methods for building generic CI/CD pipelines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180137032A1 (en) * 2016-11-11 2018-05-17 Atlassian Pty Ltd Systems and methods for testing source code
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化***及方法
CN107807815A (zh) * 2017-10-19 2018-03-16 北京京东尚科信息技术有限公司 分布式处理任务的方法和装置
CN108196915A (zh) * 2018-02-06 2018-06-22 杭州朗和科技有限公司 基于应用容器引擎的代码处理方法、设备及存储介质
US10120670B1 (en) * 2018-03-28 2018-11-06 Capital One Services, Llc Systems and methods for building generic CI/CD pipelines

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
LOUIEGUO: ""k8s+Jenkins+GitLab-自动化部署asp.net core项目"", 《博客园》 *
WJOYXT: ""Windows7***下Jenkins+Maven+SVN搭建自动部署环境"", 《百度文库》 *
ZHGX201711: ""微服务部署架构"", 《百度文库》 *
张力文: ""基于Jenkins的项目持续集成方案研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
魏春来 等: ""基于微服务的DevOps研究与实现"", 《网络安全和信息化》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395039A (zh) * 2019-08-16 2021-02-23 北京神州泰岳软件股份有限公司 一种Kubernetes集群的管理方法和装置
CN112395039B (zh) * 2019-08-16 2024-01-19 北京神州泰岳软件股份有限公司 一种Kubernetes集群的管理方法和装置
CN110673858A (zh) * 2019-08-30 2020-01-10 四川新网银行股份有限公司 一种基于ssh免密登录协议的轻量级部署方法
CN110673858B (zh) * 2019-08-30 2023-04-11 四川新网银行股份有限公司 一种基于ssh免密登录协议的轻量级部署方法
WO2021042846A1 (zh) * 2019-09-04 2021-03-11 南京中兴软件有限责任公司 网络隔离策略管理方法和网络隔离策略管理***
CN110795207A (zh) * 2019-09-27 2020-02-14 广东浪潮大数据研究有限公司 一种虚拟容器最小资源单位互信配置方法及装置
CN110795207B (zh) * 2019-09-27 2022-08-12 广东浪潮大数据研究有限公司 一种虚拟容器最小资源单位互信配置方法及装置
CN110865840A (zh) * 2019-11-18 2020-03-06 上海极链网络科技有限公司 一种应用管理方法、装置、服务器及存储介质
CN110865840B (zh) * 2019-11-18 2023-11-03 义乌中国小商品城大数据有限公司 一种应用管理方法、装置、服务器及存储介质
CN111147297A (zh) * 2019-12-23 2020-05-12 广东省新一代通信与网络创新研究院 一种kubernetes的多层网络平面构建方法
CN111147297B (zh) * 2019-12-23 2022-07-15 广东省新一代通信与网络创新研究院 一种kubernetes的多层网络平面构建方法
CN110764786A (zh) * 2019-12-27 2020-02-07 凯泰铭科技(北京)有限公司 一种云计算环境下优化部署资源与软件交付平台
US11500980B2 (en) 2020-02-11 2022-11-15 International Business Machines Corporation Automated and auditable framework to control software component changes in an application build process
CN111475260A (zh) * 2020-04-10 2020-07-31 杭州趣维科技有限公司 一种基于jenkins和kubernetes平台的可弹性CICD方法
CN111475145A (zh) * 2020-04-14 2020-07-31 北京思特奇信息技术股份有限公司 一种创建开发环境的方法、装置、计算设备和存储介质
CN112148269A (zh) * 2020-10-22 2020-12-29 深圳市思迅软件股份有限公司 研发持续集成方法、装置、计算机设备及存储介质
CN113253887A (zh) * 2021-06-11 2021-08-13 北京中祥英科技有限公司 应用发布方法、计算机设备及可读存储介质
CN113253887B (zh) * 2021-06-11 2023-08-22 北京中祥英科技有限公司 应用发布方法、计算机设备及可读存储介质
CN113504916A (zh) * 2021-07-23 2021-10-15 京东方科技集团股份有限公司 一种代码更新方法和装置、计算机设备及介质
CN114995962A (zh) * 2022-08-08 2022-09-02 浩鲸云计算科技股份有限公司 一种通过初始化容器来加载应急补丁的方法
CN114995962B (zh) * 2022-08-08 2022-12-02 浩鲸云计算科技股份有限公司 一种通过初始化容器来加载应急补丁的方法

Similar Documents

Publication Publication Date Title
CN109947452A (zh) 一种Kubernetes容器平台应用更新方法
McLay et al. Best practices for the deployment and management of production HPC clusters
US8881139B1 (en) Legacy application rehosting system
CN1291313C (zh) 操作***的自动安装和配置的***和方法
KR101954480B1 (ko) 클라우드-컴퓨팅 스탬프의 자동화된 구축
US9491037B2 (en) Enhanced exporter tool
CN104615466B (zh) 一种云平台部署方法和***
CN109347663A (zh) 一种OpenStack云平台中资源可视化编排方法
CN105786564A (zh) 一种Oracle的自动化定制安装部署方法
CN103412768A (zh) 一种基于脚本程序自动化部署Zookeeper集群的方法
CN113391828B (zh) 实现***盘raid划分并安装操作***的方法和***
CN102141924A (zh) 一种Linux板卡的批量生产方法以及生产服务器
Hall Ansible configuration management
CN103777979A (zh) 一种通过云端来刷写bios的方法及装置
CN105824648A (zh) 一种无人值守bios配置方法
CN103490929B (zh) 一种服务器多适应性固件制作和实施方法
CN103995696A (zh) 移动终端的程序包定制***及定制方法
CN111158743B (zh) 大数据运维管理平台
CN107465709A (zh) 分布式镜像构建任务方法及装置、***
CN115827008A (zh) 一种基于云原生平台Kubernetes的云原生大数据组件管理***
CN112486505B (zh) 容器化跨平台操作***映像构建方法
CN109213517A (zh) 基于VxWorks操作***的多版本应用程序在线管理与切换***
CN102609301B (zh) 给多个客户端快速部署软件的方法
CN102736926B (zh) 一种基于任务模板的升级方法及装置、批量升级***
TW201826130A (zh) 移動裝置外部控制器模組

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20190628

RJ01 Rejection of invention patent application after publication