Docker容器和kubernetes日常巡检.docx

上传人:lao****ou 文档编号:405783 上传时间:2023-10-24 格式:DOCX 页数:40 大小:652.68KB
下载 相关 举报
Docker容器和kubernetes日常巡检.docx_第1页
第1页 / 共40页
Docker容器和kubernetes日常巡检.docx_第2页
第2页 / 共40页
Docker容器和kubernetes日常巡检.docx_第3页
第3页 / 共40页
Docker容器和kubernetes日常巡检.docx_第4页
第4页 / 共40页
Docker容器和kubernetes日常巡检.docx_第5页
第5页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Docker容器和kubernetes日常巡检.docx》由会员分享,可在线阅读,更多相关《Docker容器和kubernetes日常巡检.docx(40页珍藏版)》请在第一文库网上搜索。

1、Docker容器和kubernetes日常巡检SbA【导读】本文对容器和kubernetes容器云的日常巡检工作进行了整理,希望通过第三方开源工具和日志巡检的方式,提供排查方法和排查思路、典型案例,帮助大家学会尽快发现问题,排查问题,解决问题。1DoCker容器日常巡检通过以下方式进行检查:1.1docker/podmanPS查看容器状态DOCkerpodmanps-a查看容器状态CREATEDSTATUS19hoursagoExited(0)13minutesago19hoursagoup19hours(hea1thy)3daysagoup2days(hea1thy)6daysagoup5d

2、aysSTATUS:6daysagouP6daysExited(O):表示容器正常退出EXited(其他数字):容器异常退出,需要通过Iog查看原因Up:容器在运行状态UP(PaUSed):容器暂停Up(hea1thy):容器监听健康Up(unhea1thy):容器监听异常12健康检查一HeaIthCheCk一些参数需要docker17.05以上支持1.2.1通过dockerrun或者dockerfi1e添加健康检查例如:dockerrun-name=nginx-hea1th-cmd=,cur1-si1ent-fai11oca1host/IIexit1n-hea1th-inter-va1-30

3、s-hea1th-retries=3-hea1th-timeout=10s-start-period=60snginx:1atest-interva1:两次健康检查的间隔,默认为30秒一timeout:健康检查超时时间,默认30秒一retries:连续失败次数,默认3次。一start-period:启动的初始化时间,默认0秒一hea1th-cmd:SheII和exec格式,取命令的返回值结果0表示成功,1表示失败=,STATUS,hea1thy表示健康UnheaIthy表示不健康reserved保留值,不适用1.2.2输出健康检查状态docker/PoCImaninspect-format,j

4、son.State.Hea1th,容器名Ipython-mjson.too1输出hea1thy表示健康,用户可以编写脚本监控容器状态做报警1.3dockerStatS查看容器状态可以通过dockerStatS查看容器的cpu,内存,网络,IO的使用情况14通过第三方工具监听容器这里主要介绍prometheus+grafana+cadvisor1.4.1Prometheus介绍prometheus通过node-exporter收集node主机的信息工可以看到UP状态和unhea1thy状态的node节点主机UnheaIthy表示node节点node-exporter异常PrOnIetheUS是一

5、款强大的第三方工具,除了docker容器监控,还支持mysq,数据仓库,Hadoop,k8s等开源系统14.2CadViSor介绍Goog1e的开源cadvisor,帮助收集,监听容器的status和数据,主要是CPU,内存,FS,网络等USage1.4.3grafana介绍Grafana作为展示prometheus和Cadvisor的数据,也可以实现自定义规则报警。(可以去grafana官网搜寻需要监控的模板)可以通过C1aShbOard展示node主机上的所有容器通过Pane1,metrics自定义需要收集的容器数据通过自定义规则统计需要收集的容器数据,也可以统计宕机状态的容器Grafan

6、a支持自定义报警功能如果是大量的容器监控报警,建议使用a1ertmanager做报警1.5docker容器的日志检查DoCker的日志分为两类,一类是DoCker引擎日志;另一类是容器日志。引擎日志一般都交给了系统日志。容器日志可以理解是运行在容器内部的应用输出的日志。默认情况下,docker1ogs显示当前运行的容器的日志信息,内容包含SToUT(标准输出)和STDERR(标准错误输出)。日志都会以json-fi1e的格式存储于var1ibdockerCO11tainers-json.IogCRIO的日志,存放在var1ogContainerS/通过CIe)Ckerpodman1ogs命令查

7、看容器的日志.-,查看最近1小时日志C1oCkerpodman1ogs-since60m容器名查看某时间段日志docker/POdman1ogs-t-since=unti1容器名建议:docker/podmanrun时候,日志文件-V到宿主机上,docker/podmanrun-d一namexxx-vopt1og:/1ogxxx:1atest通过e1k去抓取宿主机上的日志,尽量不要通过dockerIOgS去检查容器日志。除了docker容器,本文也向大家介绍kubernetes的日常巡检。2KubernetesZOpenShift日常巡检KUberneteS集群主要通过kubect1命令行进行

8、运维,OPenShift中使用OC命令行进行运维。两个命令行的参是相同的(OPenShift集群也提供kubect1命令行,但建议使用OC命令行)2.1 检查master主要通过以下命令检查。2.1.1 kubect1/oc检查InaSter状态kubect1/ocgetcs通过以上方法,查看kube-schedu1er,kube-contro11er-manager,etcd是否正常。在上图StatUS列,HeaIthy表示健康,UnheaIthy表示有问题需要更详细的信息,可以使用kubect1/ocdescribecs,输出更详细的信息。Systemct1statusca1ico,ser

9、vice检查ca1ico网络是否正常Systemct1statuskube-apiserver.service检查kube-apiserver是否都是active状态Active:active(running)如果状态不正常,需要SyStenICt1restartkube-apiserver如果起不来,需要JOUrna1Ct1-Xe查日志看下具体问题2.1. 2kubect1/oc1ogs检查InaSter日志kubect1/oc1ogs-tai1100-fkube-apiserver-nkube-systemkubect1/oc1ogs-tai1100-fkube-contro1Iers-n

10、kube-systemkubect1/oc1ogs-tai1100-fkube-sched1er-nkube-systemkubect1/oc1ogs-tai1100-fcoredns-nkube-system检查master服务日志是否正常kubect1/oc1ogs-tai1100-fca1ico-kube-contro1Iers-kube-system检查ca1ico是否正常以下是node巡检2.2检查node2.2.1kubect1/oc检查node状态kubect1/ocgetnode-nnamespace查看NOde节点状态,STATUSReady表示正常,NOtReady不正常注

11、意VerSiOn必须保持一致如有NotReady问题,需要重启节点kubect1/oc,或者重启docker如不能解决,需要reset节点后,k8s重新join该node(注意先执行kubect1/ocdrainnode-de1ete-1o-ca1-data驱离node)systemct1statuskube1et.servicesystemct1statuskube-proxy.service检查状态是否是ACtiVe:active(running)如果不正常,需要Systemct1restart如果起不来,需要journa1ct1-Xe查日志看下具体问题2.2.2kubect1/oc1og

12、s检查nodeB志kubect1/oc1ogs-tai1100-fkbe-proxy-nkbe-systemkubect1/oc1ogs-tai1100-fkebe1et-nkube-system检查node服务日志是否正常kubect1/oc1ogs-tai1100-fca1ico-node-nkube-system检查Ca1iCo节点是否正常2.3检查servicekubect1/ocgetsvcowideII;查看k8s集群service信息kubect1/ocgetsvc-a11-namespaces-owide查看k8s所有service信息=TYPE是NodePort的servic

13、e,k8s集群外部可以通过port访问Service的TYPE包括NodePort,C1usterIP,1oadba1ance和Externa1Name以下是POd巡检2.4检查pod2.4.1kubect1/oc检查pod状杰kubect1/ocgetpods-nnamespace-owide查看STATUS状态是否正常以下是status1ist:Running,Succeeded,Waiting,ContainerCreating,Fai1ed,Pending,Terminating,unknown,Crash1oopBackOff,ErrImagePu11,ImagePu11BackOf

14、fstatus定义说明:如出现异常状态,可查看POd日志内容kubect1/ocdescribepod容器名-nnamespace查看Conditions状态True表示成功,FaISe表示失败Initia1izedpod容器初始化完毕Readypod可正常提供服务ContainersReady容器可正常提供服务PodSchedu1edpod正在调度中,有合适的节点就会绑定,并更新到etcdUnschedu1ab1epod不能调度,没有找到合适的节点如有Fa1se状态显示查看Events信息ReaSOn显示UnheaIthy异常,仔细查看后面的报错信息,有针对性修复kubect1/ocgetp

15、ods-nnamespace-owide查看RESTARTS的次数是否为0如果不是0,说明Pod重启过,需要去日志检查原因2.4.2kubect1/oc1ogs检查pod日志kubect1/oc1ogs-tai1100-fpod-nnamespace检查日志中有无异常或者进入日志目录var1ogpods,找到容器id-json.Iog日志文件也可以检查日志有无异常2.5podhea1th健康检测针对Pod容器增加hea1thCheCk健康检测,pod.yam1中增加以下参数IiVeneSSPrObe是检测容器是否存活,running状态,如果不健康kube1et会ki11pod,根据重启策略ReStartPOIiCy执行重启PodOReadinessProbe判断容器是否处于Ready状态,ready状态表示pod可以接受请求,如果不健康,从service的后端endpoint列表中把pod驱离出去。initia1De1aySeconds120表示pod初始化启动之后延迟120秒再开始检测等待pod内应用启动时间timeoutSeconds表示超时时间PeriodSe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服