95992828九五至尊2

Django的Kubernetes集群管理平台

一月 25th, 2019  |  882828九五至尊手机版

越多技术干货请戳:听云博客

原文出自【听云技术博客】:http://blog.tingyun.com/web/article/detail/1345

至此,接触kubernetes也有一段时间了,而大家的绝半数以上政工也早就平稳地运转在分歧范畴的kubernetes集群上,不得不说,无论是从利用部署、迭代,依然从资源调度管理等方面都有其难以言喻的优势,可是随着业务的持续增加,以及劳动的多元化,容器的体量与治本的难度也随即升高。

至此,接触kubernetes也有一段时间了,而我辈的一大半作业也早已稳定地运作在分裂层面的kubernetes集群上,不得不说,无论是从利用安排、迭代,如故从资源调度管理等方面都有其难以言喻的优势,可是随着事情的不停增强,以及劳动的多元化,容器的体量与治本的难度也随着拉长。

浅述Kubernetes集群日常管理维护中的一些痛点:

浅述Kubernetes集群平时管理保险中的一些痛点:

1.相比较庞大的集群规模及容器数量维护管理。

1.较为庞大的集群规模及容器数量维护管理。

咱俩集团的事情场景属于典型的多业务线并行。同时为了方便分类管理,幸免端口冲突和资源合理施用。大家也利用了有的方针,如:

标签
label:通过标签,一方面可以标识哪个产品线的哪些应用坐落于哪些node之上,也许有人会想干什么要这样做,要是你有一个数目落盘的应用而该行使总是每一次随着启动变来变去就不好玩了。一方面通过标签可以平衡设备负载,比如将相比耗cpu和相比耗内存的铺垫在同步,不但资源充裕利用而且还管用的防护同种类(比如高耗cpu)偶然间跑一个node上造成资源掠夺及端口争论。

那就是说问题来了,如何让一个运维人士面对广大多的标签并对其有限支撑管理(kubectl
get node –show-labels
?),又怎么让一个运维人士,故障暴发时,面对广大多的nodes/pods,即时快捷地稳定两者的呼应关系,从而化解问题。

咱俩公司的事体场景属于典型的多业务线并行。同时为了方便分类管理,幸免端口顶牛和资源合理运用。大家也利用了一部分国策,如:

2. 测试环境维护管理问题。

诚如的选拔布署与上线流程比较麻烦

882828九五至尊手机版 1

那种情势下,让种种研发人士在历次调试beta环境时,无论是更改配置或者代码更新都急需联系运维人士给予操作,让每个运维人士都要用越来越多的生机额外的有限帮助一套甚至越来越多系统环境,每一日游走于beta,线上中间。不免有点令人讨厌。

882828九五至尊手机版 2

更期望有诸如此类的一种情势

这么大大收缩了单位之间的维系开支。不过问题来了,如何让一个研发人员可以单独的开销珍重属于自己的beta环境,且不需求过多的关怀除代码调试外的一对事物吧?(如怎么着去写一个基于kubernetes服务的yaml或json)

借此,于是萌生出了一个尝试写一个管克制务的想法,意在让运维人士更是便宜的管住自己的kubernetes线下线上集群,让研发人员也可以自立的编制与保安属于自己的测试环境应用,初期阶段,仅供参考,若有不足之处,欢迎大家时刻予以宝贵意见。

Python Admin(测试版)是按照Python+Django与kubernetes
Api的运维管理连串。前端接纳开源SB(start bootstrap)
Admin-2模板(清新,简约)。

1.版本新闻:

Python2.7.5+Django1.8.13+Kubernetes1.2.4+docker1.10.3

2.Kubernetes Api相关:

开创与更新label

curl -X PATCH -i -H \”Content-Type:application/merge-patch+json” \

http://k8smaster:8080/api/v1/nodes/{ nodename } \

-d  ‘{“metadata”:{“labels”:{“标签”:”应用”}}}’

创建configmap

curl-X POST -i -H 
\”Content-Type:application/json”\http://k8smaster:8080/api/v1/namespaces/default/configmaps/\\
-d”$(cat configmaptest.json)”

更新configmap

curl-X PATCH -i -H
\”Content-Type:application/merge-patch+json”\http://k8smaster:8080/api/v1/namespaces/default/configmaps/{configmapname}
\-d”$(cat configmapupdate.json)”

删除configmap

curl-X DELETE
\http://k8smaster:8080/api/v1/namespaces/default/configmaps/{configmapname}

Configmap的基本Json模板

882828九五至尊手机版 3

创建daemonset

curl-X POST -i –H
\”Content-Type:application/json”\http://k8smaster:8080/apis/extensions/v1beta1/namespaces/default/daemonsets
\-d”$(cat daemonset.json)”

更新daemonset

curl -X PATCH -i -H
\882828九五至尊手机版,”Content-Type:application/merge-patch+json”\http://k8smaster:8080/apis/extensions/v1beta1/namespaces/default/daemonsets/{daemonsetname}-d"$(cat
daemonsetupdate.json)”

删除daemonset

curl
-XDELETE\http://k8smaster:8080/apis/extensions/v1beta1/namespaces/default/daemonsets/{daemonsetname}

daemonset 基本json模板

882828九五至尊手机版 4

上述列举为一些api操作,其他连锁操作请参见kubernetes官方文档

http://kubernetes.io/docs/api-reference/v1/operations/

3.平台操作界面概览

1..Kubernets集群资源管理界面(清晰彰显集群资源音讯及所属体系组,便于分类管理)

882828九五至尊手机版 5

2.品种拔取配置管理界面(配置文件单独管理,选择数据库存储配置文件内容。创造和更新configmap时重新reload,并实时同步计划文件使用意况。)

882828九五至尊手机版 6

882828九五至尊手机版 7

3.劳动配置与管理界面(应用模板成立,同时扩大系统日志作用,服务启动后记录每个阶段的推行情形,方便错误追踪,具有一定的操作审计作用)

882828九五至尊手机版 8

882828九五至尊手机版 9

4.Kubernetes容器资源管理界面(每个集群拥有node,以及各种node所有pods新闻,并动用websocket格局exec进入容器内部防止权限控制不当问题)

882828九五至尊手机版 10

若是不认可劳动是还是不是能健康启动,Container建立完结后,可以由此debug形式(command:
[“sleep”,
“足够长日子”])进去容器内部执行./run.sh调节服务,待没问题后,再已见怪不怪情势启动。

标签
label:通过标签,一方面可以标识哪个产品线的哪个应用坐落于哪些node之上,也许有人会想干吗要如此做,假如你有一个数码落盘的选择而该使用总是每趟随着启动变来变去就不佳玩了。一方面通过标签可以平衡设备负载,比如将比较耗cpu和相比较耗内存的反衬在一块,不但资源充裕利用而且还使得的严防同品种(比如高耗cpu)偶然间跑一个node上导致资源掠夺及端口争持。

前途优化的一部分小想法:

1.kubernets集群一键配置,节点资源即时参预。

2.督察方面,在系统级别监控的根底上,扩张容器服务级别监控及相应告警策略。

3.整合融入jenkins接口,让服务配置与立异,更简单透明化。

那就是说问题来了,怎样让一个运维人士面对广大多的竹签并对其保险管理(kubectl
get node –show-labels
?),又怎么着让一个运维人士,故障暴发时,面对广大多的nodes/pods,即时疾速地稳住两者的照应关系,从而解决问题。

2. 测试环境维护管理问题。   

貌似的行使布署与上线流程相比麻烦

882828九五至尊手机版 11

那种方式下,让种种研发人士在历次调试beta环境时,无论是更改配置或者代码更新都须要联系运维人士给予操作,让每个运维人士都要用越来越多的生机额外的保证一套甚至越来越多系统环境,每日游走于beta,线上中间。不免有点让人高烧。

更希望有那般的一种情势

882828九五至尊手机版 12

如此大大收缩了机关时期的沟通开销。可是问题来了,怎么着让一个研发人士可以独立的开支爱抚属于自己的beta环境,且不要求过多的关怀除代码调试外的一部分东西吧?(如如何去写一个依据kubernetes服务的yaml或json)

借此,于是萌生出了一个尝试写一个管理服务的想法,意在让运维人士进一步便利的军事管制自己的kubernetes线下线上集群,让研发人士也可以自立的编撰与保险属于自己的测试环境应用,初期阶段,仅供参考,若有不足之处,欢迎大家随时予以宝贵意见。

Python
Admin(测试版)是根据Python+Django与kubernetes
Api的运维管理连串。前端选取开源SB(start bootstrap)
Admin-2模板(清新,简约)。

1.版本新闻:

Python2.7.5+Django1.8.13+Kubernetes1.2.4+docker1.10.3

2.Kubernetes
Api相关:

始建与更新label

curl -X PATCH -i -H \
"Content-Type:application/merge-patch+json" \
http://k8smaster:8080/api/v1/nodes/{ nodename } \
-d  '{"metadata":{"labels":{"标签":"应用"}}}'

创建configmap

curl -X POST -i -H  \
"Content-Type:application/json" \
http://k8smaster:8080/api/v1/namespaces/default/configmaps/ \
 -d "$(cat configmaptest.json)"

更新configmap

curl -X PATCH -i -H \
"Content-Type:application/merge-patch+json" \
http://k8smaster:8080/api/v1/namespaces/default/configmaps/{ configmapname } \
-d "$(cat configmapupdate.json)"

删除configmap

curl -X DELETE \
http://k8smaster:8080/api/v1/namespaces/default/configmaps/{ configmapname }

Configmap的基本Json模板

882828九五至尊手机版 13

创建daemonset

curl -X POST -i –H \
"Content-Type:application/json" \
http://k8smaster:8080 /apis/extensions/v1beta1/namespaces/default/daemonsets \
-d "$(cat daemonset.json)"

更新daemonset

curl -X PATCH -i -H \
"Content-Type:application/merge-patch+json" \
http://k8smaster:8080/apis/extensions/v1beta1/namespaces/default/daemonsets/{daemonsetname} -d "$(cat daemonsetupdate.json)"

删除daemonset

curl -X DELETE  \
http://k8smaster:8080/apis/extensions/v1beta1/namespaces/default/daemonsets/{daemonsetname}

daemonset
基本json模板

882828九五至尊手机版 14

如上列举为局地api操作,其余连锁操作请参考kubernetes官方文档

http://kubernetes.io/docs/api-reference/v1/operations/

3.平台操作界面概览

1..Kubernets集群资源管理界面(清晰展现集群资源音信及所属系列组,便于分类管理)

882828九五至尊手机版 15

2.体系接纳配置管理界面(配置文件单独保管,选取数据库存储配置文件内容。创立和更新configmap时重新reload,并实时同步安插文件使用状态。)

882828九五至尊手机版 16

882828九五至尊手机版 17

3.劳务配置与治本界面(应用模板创制,同时伸张系统日志功用,服务启动后记录每个阶段的实践景况,方便错误追踪,具有自然的操作审计效用)

882828九五至尊手机版 18

882828九五至尊手机版 19

4.Kubernetes容器资源管理界面(每个集群拥有node,以及各种node所有pods新闻,并应用websocket格局exec进入容器内部防止权限控制不当问题)

882828九五至尊手机版 20

一经不肯定劳动是或不是能健康启动,Container建立完成后,可以透过debug形式(command:
[“sleep”,
“丰裕长日子”])进去容器内部执行./run.sh调节服务,待没问题后,再已健康格局启动。

前程优化的一些小想法:

1.kubernets集群一键配置,节点资源即时出席。

2.督查方面,在系统级别监控的底子上,增添容器服务级别监控及相应告警策略。

3.结合融入jenkins接口,让服务配置与创新,更简便易行透明化。

Your Comments

近期评论

    功能


    网站地图xml地图