城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

运维自动化之nacos,apollo,k8s常用API汇总

2月2日 飞凤谷投稿
  1。NacosAPI
  本代码包括列出service列表,列出指定服务下实例列表,服务上下线,实例注册,服务信息修改等方法,更多关于nacosapi的详细信息,请参考https:nacos。iozhcndocsopenapi。html,importrequestsclassNacosAPI(object):definit(self,url,username,password):self。auth,self。url{username:username,password:password},urlself。responserequests。post(snacosv1authuserslogin(self。url),dataself。auth,verifyFalse)。json()self。params((accessToken,self。response〔accessToken〕),)defservicesList(self):列出service列表datarequests。get(snacosv1nscatalogservices?pageNo1pageSize100self。url,paramsself。params)。textprint(data)definstanceList(self,service):列出指定服务下实例列表datarequests。get(snacosv1nsinstancelist?serviceNames(self。url,service),paramsself。params)。textprint(data)defchangeStatus(self,serviceName,ip,port,enabled):实例上下线enabled:true上线,false下线self。data{serviceName:serviceName,ip:ip,port:port,enabled:enabled}datarequests。put(snacosv1nsinstance(self。url),paramsself。params,dataself。data,verifyFalse)。textprint(data)defregister(self,serviceName,ip,port):实例注册urlsnacosv1nsinstance(self。url)datarequests。post(url,data{ip:ip,port:port,serviceName:serviceName})print(data。text)definstanceChange(self):修改实例信息data{serviceName:merchantorder,ip:10。42。4。129,port:8080,clusterName:DEFAULT,weight:1,enabled:False}responserequests。put(urlsnacosv1nsinstance(self。url),datadata)print(response。text)ifnamemain:nacosNacosAPI(http:192。168。3。160:8848,nacos,NACOS)nacos。register()
  2。Apollo前台界面API
  因开放平台未支持授权,故抓取了前台界面的api实现批量授权功能,开放平台的管理需要提前授权才能管理importrequestsclassapolloweb():definit(self,potalurl,username,password):self。potalurl,self。username,self。passwordpotalurl,username,passworddata{username:username,password:password}responserequests。post(f{self。potalurl}signin,datadata,allowredirectsFalse)self。SESSIONdict(response。cookies)〔SESSION〕defAuthorizeApp(self,Token,app:str):授权应用给用户cookies{NGTRANSLATELANGKEY:zhCN,SESSION:self。SESSION}params((envs,〔DEV,SIT〕),(type,AppRole))headers{ContentType:applicationjson}data{appId:s}appresponserequests。post(f{self。potalurl}consumers{Token}assignrole,paramsparams,headersheaders,cookiescookies,datadata,verifyFalse)print(response。text)ifnamemain:apolloapolloweb()apollo。AuthorizeApp(Token,sms)
  3。Apollo开放平台API
  本代码包含获取配置,修改配置,发布配置,批量发布配置等功能,在我的日常工作中,批量发布用的很频繁,importrequests,jsonfromloguruimportloggerclassApolloAPI(object):definit(self,apolloenv):apolloinfo{aliyun:{url:http:apollo。ali。cn,token:a2814e7476b64fbdb08d9e9ec0b2d2d76e621cac},local:{url:http:apollo。tenx。cn,token:a2814e7476b64fbdb08d9e9ec0b2d2d76e621cac}}self。apollourlapolloinfo〔apolloenv〕。get(url)self。apps〔zuul,omc,oms,omss〕self。headers{Authorization:apolloinfo〔apolloenv〕。get(token),ContentType:charsetUTF8}defGetnamespaceName(self,env,appid,clusterNamedefault):获取某集群下,指定appid的所有namespaceurlsopenapiv1envssappssclusterssnamespaces(self。apollourl,env,appid,clusterName)datarequests。get(url,headersself。headers)。json()result〔x〔namespaceName〕forxindata〕returnresultdefAddAppConfig(self,env,appId,namespaceName,key,value,comment,clusterNamedefault):添加配置urlsopenapiv1envssappssclusterssnamespacessitems(self。apollourl,env,appId,clusterName,namespaceName)data{key:key,value:value,comment:comment,dataChangeCreatedBy:apollo}resposerequests。post(url,jsondata,headersself。headers)print(新增配置:环境:s,appId:s,namespaceName:s,key:s,value:s,新增配置结果:s(env,appId,namespaceName,key,value,respose。text))defReleasesAppOneNamespaceName(self,env,appId,namespaceName,clusterNamedefault):发布指定appid下指定的namespaceurlsopenapiv1envssappssclusterssnamespacessreleases(self。apollourl,env,appId,clusterName,namespaceName)data{releaseTitle:releaseTitle,releaseComment:releaseComment,releasedBy:apollo}resposerequests。post(url,jsondata,headersself。headers)logger。info(ReleasesAppOneNamespaceName:respose:s(respose。text))ifrespose。statuscode200:return发布成功else:return发布失败,HTTP状态码:srespose。statuscodedefReleasesAppAllNamespaceName(self,env,appId,clusterNamedefault):发布指定appid下所有namespaceresult〔〕namespaceNamesself。GetnamespaceName(env,appId,clusterName)fornamespaceNameinnamespaceNames:logger。info(ReleasesAppAllNamespaceName:app:s,namespaceName:s(appId,namespaceName))result。append(self。ReleasesAppOneNamespaceName(env,appId,namespaceName,clusterName))returnresultdefReleasesAllApps(self,envFINDEV):发布指定环境的所有应用forappinself。apps:try:resultself。ReleasesAppAllNamespaceName(env,app)logger。info(app:s,s(app,result))exceptExceptionase:logger。info(ReleasesAllApps:s,error:s(app,e))defBeforeReleasesDetailAll(self,env,appId,clusterNamedefault):获取即将发布后的配置信息result{}urlsopenapiv1envssappssclusterssnamespaces(self。apollourl,env,appId,clusterName)try:resposerequests。get(url,headersself。headers)。json()forxinrespose:result〔x〔namespaceName〕〕{}foriinx〔items〕:result〔x〔namespaceName〕〕〔i〔key〕〕i〔value〕returnresultexceptExceptionase:print(BeforeReleasesDetailAll:s:s(env,appId))raiseException(sdsdsdsd)defCurrentReleasesedDetailAll(self,env,appId,clusterNamedefault):获取发布前的配置信息result{}namespaceNamesself。GetnamespaceName(env,appId,clusterName)fornamespaceNameinnamespaceNames:urlsopenapiv1envssappssclusterssnamespacessreleaseslatest(self。apollourl,env,appId,clusterName,namespaceName)resposerequests。get(url,headersself。headers)ifrespose。text:resposejsonrespose。json()result〔resposejson〔namespaceName〕〕resposejson〔configurations〕returnresultifnamemain:apolloApolloAPI(ali)apollo。ReleasesAllApps(PRE)
  4。K8SAPI
  本代码支持文件和文本认证信息,方便根据实际情况开发fromkubernetesimportclient,configfromkubernetes。client。restimportApiExceptionclassKubernetesAPI:definit(self,kubeconf):文件config。loadkubeconfig(kubeconf)definit(self,kubeconftext):文本yamldatayaml。load(kubeconftext,Loaderyaml。Loader)k8loaderkubeconfig。KubeConfigLoader(yamldata)callconfigtype。call(Configuration)k8loader。loadandset(callconfig)Configuration。setdefault(callconfig)deflistnode(self):列出nodev1client。CoreV1Api()try:retv1。listnode(watchFalse)result{code:200,data::〔{uid:x。metadata。uid,name:x。metadata。name,creattime:x。metadata。creationtimestamp,podcidrs:x。spec。podcidrs,podcidr:x。spec。podcidr,unschedulable:x。spec。unschedulable}forxinret。items〕}exceptApiExceptionase:result{code:500,msg:e}returnresultdeflistnamespace(self):列出namespacev1client。CoreV1Api()try:retv1。listnamespace(watchFalse)result{code:200,data::〔{uid:x。metadata。uid,name:x。metadata。name,creattime:x。metadata。creationtimestamp}forxinret。items〕}exceptApiExceptionase:result{code:500,msg:e}returnresultdeflistdeploymet(self,namespaces):列出指定namespaces的deploymetv1client。AppsV1Api()try:retv1。listnamespaceddeployment(namespaces,watchFalse)result{code:200,data:〔{uid:x。metadata。uid,name:x。metadata。name,namespace:x。metadata。namespace,replicas:x。spec。replicas,status:x。status。availablereplicas,creattime:x。metadata。creationtimestamp}forxinret。items〕}exceptApiExceptionase:result{code:500,msg:e}returnresultdeflistpods(self,namespace):v1client。CoreV1Api()try:retv1。listnamespacedpod(namespace)result{code:200,data:〔{uid:x。metadata。uid,name:x。metadata。name,podip:x。status。podip,hostip:x。status。hostip,creattime:x。metadata。creationtimestamp}forxinret。items〕}exceptApiExceptionase:result{code:500,msg:e}returnresultdeflistpodsdeployment(self,namespace,deployment):查询deployment的podsv1client。CoreV1Api()try:retv1。listnamespacedpod(namespace,labelselectorapp。kubernetes。ionamesdeployment)result{code:200,data:〔{uid:x。metadata。uid,name:x。metadata。name,podip:x。status。podip,hostip:x。status。hostip,creattime:x。metadata。creationtimestamp}forxinret。items〕}exceptApiExceptionase:result{code:500,msg:e}returnresultdefquerypodstdoutlogs(self,namespaces,pod):查看podstdout日志v1client。CoreV1Api()try:result{code:200,data:v1。readnamespacedpodlog(pod,namespaces)}exceptApiExceptionase:result{code:500,msg:e}returnresultdefquerydeploymentstdoutlogs(self,namespace,deployment):查看deployment下pod的日志result〔〕querypodsself。listpodsdeployment(namespace,deployment)ifquerypods〔code〕200:forxinquerypods〔data〕:result。append({name:x〔name〕,logs:self。querypodstdoutlogs(namespace,x〔name〕)})else:result{code:500,msg:查询pod出错:squerypods〔msg〕}returnresultdefremovepod(self,namespace,podname):删除podv1client。CoreV1Api()try:v1。deletenamespacedpod(podname,namespace)return{code:200,msg:删除成功}exceptApiExceptionase:return{code:500,msg:str(e)}defdeploymentsetvar(self,namespace,deployment,key,value):设置deployment变量v1client。AppsV1Api()body{spec:{template:{spec:{containers:〔{env:〔{name:key,value:value}〕,name:deployment}〕}}}}try:v1。patchnamespaceddeployment(namedeployment,namespacenamespace,bodybody)return{code:200,msg:设置成功}exceptApiExceptionase:return{code:500,msg:str(e)}ifnamemain:ssKubernetesAPI(D:Softwareconfig)sssss。querydeploymentstdoutlogs(dev,qtz)print(sss)
投诉 评论 转载

让人心烦的支付宝支付宝开始面向市场出现在大众面前的时候,给大家带来了不少方便,随着时间推移,乱七八糟的东西应运而生,推送信息每天不断的骚扰,为什么说它是骚扰呢!其一,信息不是支付方面的信息,也……国产X86CPU的现状研发近10年,市场份额基本为0众所周知,国产一共有6大CPU,分别是华为鲲鹏、龙芯、兆芯、海光、申威、飞腾。其中华为鲲鹏、飞腾采用ARM架构,龙芯采用MIPS架构,申威是alhpa架构,而海光、兆芯使……智能投影涨势喜人会取代电视吗?伴随着互联网的发展,人们的社交与个人娱乐生活完全互联网化,导致由电视媒介的繁荣所造就的客厅娱乐文化被瓦解。伴随着互联网一同成长的Z世代离开客厅,年轻消费者不再需要电视。在……银河电子2022年第一季度净利4702。21万同比减少13。挖贝网4月18日,银河电子(002519)发布2022年第一季度报告,公告显示,本报告期内营业收入270,037,254。84元,同比减少40。70;归属于上市公司股东的净利润……2022备用机选择本人重度手机使用者,加上开宽带又增加了两个号码就想弄台备用机。要求能玩王者刷抖音,CPU最低骁龙660、665、670、675、710、835、845、天玑800U,麒麟……毫末智行完成数亿元A轮融资国家队出手领投,高瓴深耕自动驾驶全近日,毫末智行宣布获得A轮数亿元融资。本轮融资由中银集团投资有限公司(以下简称中银投)领投,首钢基金旗下首程资本跟投,募得资金将持续加强毫末智行的自动驾驶研发投入和人才体系建设……Python中argsargs到底是什么有啥区别怎么用args不定参数,元组,如(1,2,n)kwargs传入键值对,字典(例如:num111,num222)先看示例1:deftest(a,b,c3,args):print(……仅售8499元!索尼Xperia1国行版正式发布点击右上角关注我们,每天给您带来最新最潮的科技资讯,让您足不出户也知道科技圈大事!北京时间5月20日下午,索尼在SonyExpo2021展会上正式发布索尼Xperia1国……来自未来的智能生活Aqara妙控套装体验不知从什么时候开始,智能家居这个词开始在各大数码品牌和装修公司疯狂传播,但功能确良莠不齐,并且很难兼容,在以前,很难有一个品牌能够把所有的智能设备完美的连接到一起,虽然我很想让……运维自动化之nacos,apollo,k8s常用API汇总1。NacosAPI本代码包括列出service列表,列出指定服务下实例列表,服务上下线,实例注册,服务信息修改等方法,更多关于nacosapi的详细信息,请参考http……AppleMusic开始向部分用户提示无损音频与杜比全景声功随着AppleMusicLossless流媒体音乐服务即将于6月的某个时候上线,一些用户也开始率先收到新功能的提示。在距离苹果开发者大会(WWDC2021)只剩一周的时候,个别……冷冻能否杀死寄生虫?冷冻是可以杀死寄生虫的。不过要有一定的温度和冷冻时间。并不是说放进冰箱里放一天就可以了。因为我的特长领域是水族系列的,在这里我就拿鱼类举例。离我们最近的就是日本料理……
各个价位5G性能最好的手机,都来自同一品牌,猜到了吗?企业数量全球第二融资规模全球最大专利申请量世界第一中国人工智莫让电商特供成劣质商品代名词它来了!荣耀就在昨晚发布了荣耀Play6T系列这设计太奇葩了!特斯拉ModelY七座版曝光将内部空间利用到华为疯狂暗示!3月26号除了P30之外,发布会上还有这4大看如果地球有一个硬币那么大,那么太阳有多大?华为Mate50或支持外挂5G,外观设计已坐实,最快7月份发明亮便携颜值高,手电就选务本新品C2双双突破!2大国产规格正逼近国际一流,华为终结外购的日子近了如何提高测试用例的覆盖率问题?3种python3的canny边缘检测之静态,可调节和自适应
十大世界上最难吃的食物,可爱外表的甘草糖绝对让你终身难忘河南昨增本土35141:郑州35132昨日全国新增本土531 我阳的经历12。14日12。17日这四个特色炒饭速速了解下次去贵州必须点它【歌词】吻(Kiss)歌手:戴佩妮手机铃声热评聚热点网 元旦主题班会教案怎样改善皮肤粗糙脸部皮肤粗糙小妙招妈妈我爱你辩护律师取保候审申请书怎么写长期服用华法林需要注意哪些饮食问题?黄章战雷军魅族和小米该买谁其实并不难华为P7什么配置参数?华为P7标配有什么?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁