专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

运维(39)通过KubeSphere部署SpringBoot

  DevOps
  demo源码见:https:gitee。comzhengqingyajavaworkspace
  基于kubesphere3。2。1
  自动检出(Checkout)代码、测试、分析、构建、部署并发布
  在这里插入图片描述一、创建DevOps项目
  在这里插入图片描述
  在这里插入图片描述二、DevOps凭证1、gitee仓库认证giteeauth
  在这里插入图片描述2、阿里云docker仓库认证aliyundockerregistryauth
  在这里插入图片描述3、k8s凭证kubeconfigauthk8s权限配置文件catroot。kubeconfig
  在这里插入图片描述
  将内容中的https:lb。kubesphere。local:6443https:指定IP:6443,不然之后部署可能会出现问题。。。
  在这里插入图片描述
  最终
  在这里插入图片描述三、maven配置阿里云中央仓库
  平台管理集群管理default配置配置字典ksdevopsagent
  在这里插入图片描述
  编辑设置
  在这里插入图片描述mirrors!国内中央仓库的配置阿里云中央仓库mirroridnexusaliyunidmirrorOfcentralmirrorOfnameNexusaliyunnameurlhttp:maven。aliyun。comnexuscontentgroupspublicurlmirrormirrors
  在这里插入图片描述四、k8s项目配置阿里云docker仓库认证aliyundockerregistryauth
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述也可通过命令查看凭证kubectlgetsecretsnmyproject五、创建流水线
  在这里插入图片描述
  在这里插入图片描述
  进入后可以点击编辑流水线,提供了一些模板
  在这里插入图片描述
  ex:第一步拉取代码
  在这里插入图片描述
  这里自己点着玩吧,很简单。。。根据自己的需求去定制即可。。。
  在这里插入图片描述六、其它Jenkinsfilepipeline{agent{node{labelmaven}}environment{DOCKERREGISTRYAUTHaliyundockerregistryauthDOCKERREGISTRYregistry。cnhangzhou。aliyuncs。comDOCKERREGISTRYNAMESPACEzhengqingyaAPPDOCKERIMAGE{DOCKERREGISTRY}{DOCKERREGISTRYNAMESPACE}{APPNAME}:{BRANCHNAME}PROJECTGITURLhttps:gitee。comzhengqingyatest。gitAPPNAMEtestBRANCHNAMEmasterISSKIPBUILDfalseJAVAOPTSXX:UseG1GCXms100mXmx100mDserver。port8080}parameters{string(name:BRANCHNAME,defaultValue:master,description:git分支名)choice(name:ISSKIPBUILD,choices:〔false,true〕,description:是否跳过构建,直接部署)choice(name:SERVICENAMES,choices:〔test,system,all〕,description:请选择要构建的服务,支持单个服务发布或全部服务发布)}stages{stage(参数验证){agentnonesteps{container(maven){shecho分支:{BRANCHNAME}echo是否跳过构建,直接部署(tips:适用于之前已经进行过构建打包的情景):{ISSKIPBUILD}echoapp镜像:{APPDOCKERIMAGE}echo构建运行ID:{BUILDNUMBER}echoJAVAOPTS:{JAVAOPTS}}}}stage(拉取代码){agentnonesteps{container(maven){git(credentialsId:giteeauth,url:{PROJECTGITURL},branch:{BRANCHNAME},changelog:true,poll:false)shlsal}}}stage(项目编译){agentnonesteps{container(maven){shmvncleanpackageDmaven。test。skiptrueshlsal}}}stage(docker镜像构建推送){agentnonesteps{container(maven){shcptarget。jardockershcddockerlsechoapp镜像:{APPDOCKERIMAGE}dockerbuildfDockerfilet{APPDOCKERIMAGE}。nocachewithCredentials(〔usernamePassword(credentialsId:{DOCKERREGISTRYAUTH},passwordVariable:DOCKERPASSWORD,usernameVariable:DOCKERUSERNAME,)〕){shechoDOCKERPASSWORDdockerloginDOCKERREGISTRYuDOCKERUSERNAMEpasswordstdinshdockerpush{APPDOCKERIMAGE}shecho镜像推送成功:{APPDOCKERIMAGE}shlsal}}}}stage(发布到k8s){agentnonesteps{container(maven){shlsalwithCredentials(〔kubeconfigFile(credentialsId:kubeconfigauth,variable:KUBECONFIG)〕){envsubst:将相关参数传给该yml文件shenvsubstk8sk8sdeploy。ymlkubectlapplyf}}}}}}k8sdeploy。yml定义工作负载apiVersion:appsv1kind:Deployment无状态部署metadata:name:{APPNAME}namespace:myprojectTODO命名空间labels:app:{APPNAME}spec:replicas:3TODO3个副本strategy:rollingUpdate:由于replicas为3,则整个升级,pod个数在24个之间maxSurge:1滚动升级时会先启动1个podmaxUnavailable:1滚动升级时允许的最大Unavailable的pod个数selector:matchLabels:app:{APPNAME}template:metadata:labels:app:{APPNAME}spec:imagePullSecrets:name:aliyundockerregistryauthTODO提前在项目下配置访问阿里云仓库的账号密码containers:name:{APPNAME}image:{APPDOCKERIMAGE}TODO镜像地址imagePullPolicy:Alwaysenv:环境变量name:JAVAOPTSvalue:{JAVAOPTS}ports:name:httpcontainerPort:8080protocol:TCPCPU内存限制resources:limits:cpu:300mmemory:600Mi就绪探针readinessProbe:httpGet:path:actuatorhealthport:8080timeoutSeconds:10failureThreshold:30periodSeconds:5定义服务apiVersion:v1kind:Servicemetadata:name:{APPNAME}TODO服务名namespace:myprojectTODO命名空间spec:selector:app:{APPNAME}TODOlabelselector配置,将选择具有label标签的Pod作为管理type:ClusterIP访问方式ClusterIPNodePortports:name:http端口名称port:8080protocol:TCP端口协议,支持TCP和UDP,默认TCPtargetPort:8080nodePort:666TODO当typeNodePort时对外开放端口sessionAffinity:None是否支持sessionk8syaml在线编写工具https:k8syaml。com报错ERROR:java。lang。RuntimeException:io。kubernetes。client。openapi。ApiException:java。net。UnknownHostException:lb。kubesphere。local:Nameorservicenotknown
  在这里插入图片描述DeploytoKubernetes14。66s失败StartingKubernetesdeploymentLoadingconfiguration:homejenkinsagentworkspacedevopstestp5hshtestk8sk8sdeploy。ymlERROR:ERROR:java。lang。RuntimeException:io。kubernetes。client。openapi。ApiException:java。net。UnknownHostException:lb。kubesphere。local:Nameorservicenotknownhudson。remoting。ProxyException:java。lang。RuntimeException:io。kubernetes。client。openapi。ApiException:java。net。UnknownHostException:lb。kubesphere。local:Nameorservicenotknownatcom。microsoft。jenkins。kubernetes。wrapper。ResourceManager。handleApiExceptionExceptNotFound(ResourceManager。java:180)atcom。microsoft。jenkins。kubernetes。wrapper。V1ResourceManagerDeploymentUpdater。getCurrentResource(V1ResourceManager。java:213)atcom。microsoft。jenkins。kubernetes。wrapper。V1ResourceManagerDeploymentUpdater。getCurrentResource(V1ResourceManager。java:201)atcom。microsoft。jenkins。kubernetes。wrapper。ResourceManagerResourceUpdater。createOrApply(ResourceManager。java:93)atcom。microsoft。jenkins。kubernetes。wrapper。KubernetesClientWrapper。handleResource(KubernetesClientWrapper。java:289)atcom。microsoft。jenkins。kubernetes。wrapper。KubernetesClientWrapper。apply(KubernetesClientWrapper。java:256)atcom。microsoft。jenkins。kubernetes。command。DeploymentCommandDeploymentTask。doCall(DeploymentCommand。java:172)atcom。microsoft。jenkins。kubernetes。command。DeploymentCommandDeploymentTask。call(DeploymentCommand。java:124)atcom。microsoft。jenkins。kubernetes。command。DeploymentCommandDeploymentTask。call(DeploymentCommand。java:106)athudson。remoting。UserRequest。perform(UserRequest。java:212)athudson。remoting。UserRequest。perform(UserRequest。java:54)athudson。remoting。Request2。run(Request。java:369)athudson。remoting。InterceptingExecutorService1。call(InterceptingExecutorService。java:72)atjava。util。concurrent。FutureTask。run(FutureTask。java:266)atjava。util。concurrent。ThreadPoolExecutor。runWorker(ThreadPoolExecutor。java:1149)atjava。util。concurrent。ThreadPoolExecutorWorker。run(ThreadPoolExecutor。java:624)athudson。remoting。Engine1。lambdanewThread0(Engine。java:93)atjava。lang。Thread。run(Thread。java:748)Suppressed:hudson。remoting。ChannelCallSiteStackTrace:RemotecalltoJNLP4connectconnectionfrom10。233。70。14310。233。70。143:51962athudson。remoting。Channel。attachCallSiteStackTrace(Channel。java:1800)athudson。remoting。UserRequestExceptionResponse。retrieve(UserRequest。java:357)athudson。remoting。Channel。call(Channel。java:1001)athudson。FilePath。act(FilePath。java:1160)atcom。microsoft。jenkins。kubernetes。command。DeploymentCommand。execute(DeploymentCommand。java:68)atcom。microsoft。jenkins。kubernetes。command。DeploymentCommand。execute(DeploymentCommand。java:45)atcom。microsoft。jenkins。azurecommons。command。CommandService。runCommand(CommandService。java:88)atcom。microsoft。jenkins。azurecommons。command。CommandService。execute(CommandService。java:96)atcom。microsoft。jenkins。azurecommons。command。CommandService。executeCommands(CommandService。java:75)atcom。microsoft。jenkins。azurecommons。command。BaseCommandContext。executeCommands(BaseCommandContext。java:77)atcom。microsoft。jenkins。kubernetes。KubernetesDeploy。perform(KubernetesDeploy。java:42)atcom。microsoft。jenkins。azurecommons。command。SimpleBuildStepExecution。run(SimpleBuildStepExecution。java:54)atcom。microsoft。jenkins。azurecommons。command。SimpleBuildStepExecution。run(SimpleBuildStepExecution。java:35)atorg。jenkinsci。plugins。workflow。steps。SynchronousNonBlockingStepExecution。lambdastart0(SynchronousNonBlockingStepExecution。java:47)atjava。util。concurrent。ExecutorsRunnableAdapter。call(Executors。java:511)atjava。util。concurrent。FutureTask。run(FutureTask。java:266)atjava。util。concurrent。ThreadPoolExecutor。runWorker(ThreadPoolExecutor。java:1149)atjava。util。concurrent。ThreadPoolExecutorWorker。run(ThreadPoolExecutor。java:624)。。。1moreCausedby:hudson。remoting。ProxyException:io。kubernetes。client。openapi。ApiException:java。net。UnknownHostException:lb。kubesphere。local:Nameorservicenotknownatio。kubernetes。client。openapi。ApiClient。execute(ApiClient。java:898)atio。kubernetes。client。openapi。apis。AppsV1Api。readNamespacedDeploymentWithHttpInfo(AppsV1Api。java:7299)atio。kubernetes。client。openapi。apis。AppsV1Api。readNamespacedDeployment(AppsV1Api。java:7275)atcom。microsoft。jenkins。kubernetes。wrapper。V1ResourceManagerDeploymentUpdater。getCurrentResource(V1ResourceManager。java:210)。。。16moreCausedby:hudson。remoting。ProxyException:java。net。UnknownHostException:lb。kubesphere。local:Nameorservicenotknownatjava。net。Inet4AddressImpl。lookupAllHostAddr(NativeMethod)atjava。net。InetAddress2。lookupAllHostAddr(InetAddress。java:929)atjava。net。InetAddress。getAddressesFromNameService(InetAddress。java:1324)atjava。net。InetAddress。getAllByName0(InetAddress。java:1277)atjava。net。InetAddress。getAllByName(InetAddress。java:1193)atjava。net。InetAddress。getAllByName(InetAddress。java:1127)atokhttp3。Dns。lambdastatic0(Dns。java:39)atokhttp3。internal。connection。RouteSelector。resetNextInetSocketAddress(RouteSelector。java:171)atokhttp3。internal。connection。RouteSelector。nextProxy(RouteSelector。java:135)atokhttp3。internal。connection。RouteSelector。next(RouteSelector。java:84)atokhttp3。internal。connection。ExchangeFinder。findConnection(ExchangeFinder。java:187)atokhttp3。internal。connection。ExchangeFinder。findHealthyConnection(ExchangeFinder。java:108)atokhttp3。internal。connection。ExchangeFinder。find(ExchangeFinder。java:88)atokhttp3。internal。connection。Transmitter。newExchange(Transmitter。java:169)atokhttp3。internal。connection。ConnectInterceptor。intercept(ConnectInterceptor。java:41)atokhttp3。internal。http。RealInterceptorChain。proceed(RealInterceptorChain。java:142)atokhttp3。internal。http。RealInterceptorChain。proceed(RealInterceptorChain。java:117)atokhttp3。internal。cache。CacheInterceptor。intercept(CacheInterceptor。java:94)atokhttp3。internal。http。RealInterceptorChain。proceed(RealInterceptorChain。java:142)atokhttp3。internal。http。RealInterceptorChain。proceed(RealInterceptorChain。java:117)atokhttp3。internal。http。BridgeInterceptor。intercept(BridgeInterceptor。java:93)atokhttp3。internal。http。RealInterceptorChain。proceed(RealInterceptorChain。java:142)atokhttp3。internal。http。RetryAndFollowUpInterceptor。intercept(RetryAndFollowUpInterceptor。java:88)atokhttp3。internal。http。RealInterceptorChain。proceed(RealInterceptorChain。java:142)atokhttp3。internal。http。RealInterceptorChain。proceed(RealInterceptorChain。java:117)atokhttp3。RealCall。getResponseWithInterceptorChain(RealCall。java:221)atokhttp3。RealCall。execute(RealCall。java:81)atio。kubernetes。client。openapi。ApiClient。execute(ApiClient。java:894)。。。19moreApicallfailedwithcode0,detailedmessage:nullKubernetesdeploymentendedwithHasError解决:
  kubesphere3。2。1流水线调整第一步:替换kubernetesDeploy部署方式
  https:github。comkubespherewebsitepull2098stage(发布到k8s){agentnonesteps{container(maven){废弃。。。kubernetesDeploy(enableConfigSubstitution:true,deleteResource:false,kubeconfigId:kubeconfigauth,configs:k8s)改为下面这种方式withCredentials(〔kubeconfigFile(credentialsId:kubeconfigauth,variable:KUBECONFIG)〕){envsubst:将相关参数传给该yml文件shenvsubstk8sk8sdeploy。ymlkubectlapplyf}}}}第二步:修改DevOps凭证kubeconfig
  将内容中的https:lb。kubesphere。local:6443https:指定IP:6443
  在这里插入图片描述
  最终发布成功
  在这里插入图片描述
  今日分享语句:天再高又怎样,踮起脚尖就更接近阳光。

小米13发布后,魅族20系列也官宣了时隔多年黄章再挑战雷军!小米手机创办这么多年来,一段时期里小米总有一个针锋相对的对手,而被大家谈论最多比较最多的只有一家,那就是魅族。从最早雷军向黄章请教如何做手机,再到双方变成死对头,那些年魅族和小米每学用系列自制有声读物,TTSVUE支持批量文档自动生成MP3TTSVUE,是一款基于微软语音技术的合成工具,使用ElectronVueElementPlusVite构建,当然对于普通使用者来说,只要好用就行。其优势在于提供了智能化的语音合成曝三星S23系列或将涨价因为受半导体和汇率影响手机中国新闻当前,三星是全球范围内出货量最大的智能手机厂商,其产品在全球大多数国家地区的市场都能够取得热销,其S系列旗舰手机,也一直都是Android阵营高端旗舰产品的代表之一。而vivoS16系列官宣,12月22日见,网友给个骁龙8不行吗?最近vivo的产品发布节奏很快,11月22日发布X90系列,12月初发布iQOO11系列,而S16系列的发布日期也官宣了,新机将于12月22日发布,一个月都时间给大家带来3个系列的摩洛哥无缘决赛依然惊艳世界!中国名记主帅赶紧辞职别学高洪波02不敌法国无缘决赛,摩洛哥的表现依然给人留下了深刻印象。在人员不整的情况下,他们给法国制造了足够多的麻烦,逼得卫冕冠军直到最后才锁定胜局,赢得了全世界的尊重。这场半决赛,摩洛哥的梅西将被保送夺冠?大罗给出不同意见,克罗地亚表态输得心服口服2022世界杯6场比赛4次点球,阿根廷挺进决赛,却被推进了舆论漩涡!国际足联真的在力挺梅西,为他封王,提供便利吗?我的看法是以结果倒推,且完全只提佐证个人观点的事例,也并不客观。回国有企业开展三项制度改革评估工作需关注的四大要点!前言新一轮国有企业深化改革伊始,国有企业三项制度改革就是其中的关键要点。作为一项长期性系统工程,为确保改革稳定有序推进,需要对其中的实施成效做出客观及时动态的评价。为进一步做深做实2022年人物最佳着装明星,杨紫琼压轴极简主义者海莉比伯没有人比模特出身的时尚女神更能轻松出彩,每天都有数百万粉丝关注她的一举一动,从那些釉面甜甜圈美甲和她现在火辣巧克力发色,再到她极简又别致的服装。每当有人来找我,说43岁高圆圆无滤镜工作图曝光,肌肤白皙紧致,穿礼裙秀香肩显知性12月15日,有媒体曝光了高圆圆的工作视频,看样子应该是在拍摄广告或者大片。众所周知,狗仔队拍摄的图才真的叫生图,没有滤镜,没有美颜,但是高圆圆完全经住了抓拍,颜值是真的能打!视频求是杂志发表习近平总书记重要文章继承和发扬党的优良革命传统和作风,弘扬延安精神新华社北京12月15日电12月16日出版的第24期求是杂志将发表中共中央总书记国家主席中央军委主席习近平的重要文章继承和发扬党的优良革命传统和作风,弘扬延安精神。文章强调,党的七大县委大院基层干部真实评价,从不屑一顾到彻底跪服在县委大院播出的时候,鹏哥我曾经兴奋地跟我的基层干部朋友们,普及这部剧,想让他们从专业的角度,分析分析,这部剧的优缺点。谁知道,朋友们有些不屑一顾,有人说这部剧不现实,梅晓歌(胡歌
22125!浙马新记录滨江刷新!2月26日上午,浙江财商2022第三届浙江马拉松纪录挑战赛在我区数字健康小镇举行。省政协原副主席周国辉,省体育局副局长李华,市人民政府副秘书长毛根洪,西泠印社集团有限公司董事长赵宇传统武氏太极拳的保健养生功能李永章传统武氏太极拳是我国优秀的传统武术项目之一,也是中国历史文化遗产一项璀璨瑰宝。它依据易理理论,集拳术吐纳导引之大成,既有强身健体攻防技击之功能,又有防病祛病陶冶情操之功效,为23026期胜负彩14场解析1西汉姆VS诺丁汉双方在英超中分别排名第18和第13,从以上图表(双方近10次交手和最近10场各自战绩)数据分析得出,双方均不分上下。至截稿时止,欧指胜平负即时概率分别为54261汤普森32分普尔狂铁勇士末节逆转送森林狼3连败!NBA常规赛2月27日继续进行,本场比赛库里格林和维金斯继续缺阵,森林狼这边唐斯和戈贝尔也继续不打。最终,勇士以109104战胜森林狼,森林狼遭遇3连败。首节开始,麦克丹尼尔斯里德成德眉资电动汽车公用充电桩设施诚信计量建设规范有望近期出台中国经济时报记者韩清华随着新能源电动汽车的逐步普及,与之配套的公共充电桩数量也在逐年增多。充电桩涉及电能的用量和电费结算,其量值是否准确,直接关系到广大电动汽车车主的切身利益,对电第八代凯美瑞单代销量突破百万台,连续五年正增长近日,广汽丰田宣布旗舰轿车第八代凯美瑞累计销量突破100万台,成为首款单代车型达成百万台销量的日系中高级轿车。这也是广汽丰田继年产销量突破百万之后的又一佳绩。回顾第八代凯美瑞,20河南高考之痛,破解之路?从这几天各地的高中学校都在不约而同的举行着高考百日冲刺誓师大会,我参加了一场河南省属重点高中的活动,千名师生誓言铮铮,决心执笔为剑,以梦为马,低头是浮浮沉沉的题海,举目是浩瀚无垠的预计未来三天山西以晴到多云天气为主,今天白天有45级西北风,气温有所下降2月28日6时9分,山西省气象台发布全省短期公众天气预报,预计未来三天以晴到多云天气为主,今天白天有45级西北风,气温有所下降。具体预报如下今天白天全省晴天间多云,有45级短时6级米体小因扎吉暂无下课风险,但若无缘下赛季欧冠国米将考虑换帅直播吧2月27日讯据米兰体育报报道,国米主帅小因扎吉的帅位并不会由本赛季欧冠成绩决定,而如果国米无缘下赛季欧冠小因扎吉就可能下课。在第24轮意甲联赛,国米客场01负于博洛尼亚,遭遇3月上旬,养老金上涨将正式敲定?4000元以下的涨钱更多吗?3月来临之际,在上旬养老金上涨就将正式敲定?4000元以下的涨钱更多吗?3月来临之际,关于养老金的话题又成为社保热点,引起了全国退休人员的广泛关注,每年的三月份其实是比较特殊的,因哈维今天这场是本赛季踢得最差的比赛我们错失领先10分的机会直播吧2月27日讯西甲第23轮,巴萨客场01负于阿尔梅里亚。赛后,巴萨主帅哈维表示这是本赛季踢得最差的一场比赛,球队必须提高警觉。败仗非常生气,因为这是我们本赛季踢得最差的一场比赛
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网