K8s监控方案kubestack(prometheusope
写在前面学习K8s监控涉及网上的教程大都不全或者有些旧,所以整理分享给小伙伴。博文内容为K8s集群通过helm方式创建kubeprometheusstack监控平台教程折腾了一晚上,搞定了,一开始一直用prometheusoperator这个chart来装,报错各种找问题,后来才发现我的集群版本太高了,1。22的版本,而且prometheusoperator之后的版本改变了名字kubeprometheusstack,旧的版本可能不兼容。
人生不尽美好,追求自我注定孤独,而这就是生命的意义黑塞《彼得卡门青》环境版本
我的K8s集群版本〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕kubectlgetnodesNAMESTATUSROLESAGEVERSIONvms81。liruilongs。github。ioReadycontrolplane,master34dv1。22。2vms82。liruilongs。github。ioReadynone34dv1。22。2vms83。liruilongs。github。ioReadynone34dv1。22。2
hrlm版本〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕helmversionversion。BuildInfo{Version:v3。2。1,GitCommit:fe51cd1e31e6a202cba7dead9552a6d418ded79a,GitTreeState:clean,GoVersion:go1。13。10}prometheusoperator(旧名字)安装出现的问题〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕helmsearchrepoprometheusoperatorNAMECHARTVERSIONAPPVERSIONDESCRIPTIONaliprometheusoperator8。7。00。35。0ProvideseasymonitoringdefinitionsforKubern。。。azureprometheusoperator9。3。20。38。1DEPRECATEDProvideseasymonitoringdefinitions。。。〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕helminstallliruilongaliprometheusoperatorError:failedtoinstallCRDcrdscrdalertmanager。yaml:unabletorecognize:nomatchesforkindCustomResourceDefinitioninversionapiextensions。k8s。iov1beta1〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕helmpullaliprometheusoperator〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕解决办法:新版本安装
直接下载kubeprometheusstack(新)的chart包,通过命令安装:
https:github。comprometheuscommunityhelmchartsreleasesdownloadkubeprometheusstack30。0。1kubeprometheusstack30。0。1。tgz〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕lsindex。yamlkubeprometheusstack30。0。1。tgzliruilonghelmliruilonghelm0。1。0。tgzmysqlmysql1。6。4。tgz〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕helmlistNAMENAMESPACEREVISIONUPDATEDSTATUSCHARTAPPVERSION
解压chart包kubeprometheusstack30。0。1。tgz〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕tarzxfkubeprometheusstack30。0。1。tgz
创建新的命名空间〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕cdkubeprometheusstack〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕kubectlcreatensmonitoringnamespacemonitoringcreated〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕kubectlconfigsetcontext(kubectlconfigcurrentcontext)namespacemonitoringContextkubernetesadminkubernetesmodified。
进入文件夹,直接通过helminstallliruilong。安装〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕lsChart。lockchartsChart。yamlCONTRIBUTING。mdcrdsREADME。mdtemplatesvalues。yaml〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕helminstallliruilong。
kubeprometheusadmissioncreate对应Pod的相关镜像下载不下来问题〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEliruilongkubeprometheusadmissioncreate1bn7x201ImagePullBackOff033s
查看pod详细信息,发现是谷歌的一个镜像国内无法下载〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕kubectldescribepodliruilongkubeprometheusadmissioncreate1bn7x2Name:liruilongkubeprometheusadmissioncreate1bn7x2Namespace:monitoringPriority:0Node:vms83。liruilongs。github。io192。168。26。83StartTime:Sun,16Jan202202:43:070800Labels:appkubeprometheusstackadmissioncreateapp。kubernetes。ioinstanceliruilongapp。kubernetes。iomanagedbyHelmapp。kubernetes。iopartofkubeprometheusstackapp。kubernetes。ioversion30。0。1chartkubeprometheusstack30。0。1controlleruid2ce48cd2a1184e23a27f0228ef6c45e7heritageHelmjobnameliruilongkubeprometheusadmissioncreatereleaseliruilongAnnotations:cni。projectcalico。orgpodIP:10。244。70。832cni。projectcalico。orgpodIPs:10。244。70。832Status:PendingIP:10。244。70。8IPs:IP:10。244。70。8ControlledBy:JobliruilongkubeprometheusadmissioncreateContainers:create:ContainerID:Image:k8s。gcr。ioingressnginxkubewebhookcertgen:v1。0sha256:f3b6b39a6062328c095337b4cadcefd1612348fdd5190b1dcbcb9b9e90bd8068ImageID:Port:noneHostPort:
在dokcer仓库里找了一个类似的,通过kubectledit修改image:k8s。gcr。ioingressnginxkubewebhookcertgen:v1。0替换为:docker。ioliangjwkubewebhookcertgen:v1。1。1
或者也可以修改配置文件从新install(记得要把sha注释掉)〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕lsindex。yamlkubeprometheusstackkubeprometheusstack30。0。1。tgzliruilonghelmliruilonghelm0。1。0。tgzmysqlmysql1。6。4。tgz〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreate〕cdkubeprometheusstack〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕lsChart。lockchartsChart。yamlCONTRIBUTING。mdcrdsREADME。mdtemplatesvalues。yaml〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕catvalues。yamlgrepA3B2kubewebhookcertgenenabled:trueimage:repository:docker。ioliangjwkubewebhookcertgentag:v1。1。1sha:f3b6b39a6062328c095337b4cadcefd1612348fdd5190b1dcbcb9b9e90bd8068pullPolicy:IfNotPresent〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕helmdelliruilong;helminstallliruilong。
之后其他的相关pod正常创建中〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEliruilonggrafana5955564c75zpbjq03ContainerCreating027sliruilongkubeprometheusoperator5cb699b469fbkw501ContainerCreating027sliruilongkubestatemetrics5dcf758c47bbwt401ContainerCreating027sliruilongprometheusnodeexporterrfsc501ContainerCreating028sliruilongprometheusnodeexportervm7s901ContainerCreating028sliruilongprometheusnodeexporterz9j8b01ContainerCreating028s
kubestatemetrics这个pod的镜像也没有拉取下来。应该也是相同的原因〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEalertmanagerliruilongkubeprometheusalertmanager022Running03m35sliruilonggrafana5955564c75zpbjq33Running04m46sliruilongkubeprometheusoperator5cb699b469fbkw511Running04m46sliruilongkubestatemetrics5dcf758c47bbwt401ImagePullBackOff04m46sliruilongprometheusnodeexporterrfsc511Running04m47sliruilongprometheusnodeexportervm7s911Running04m47sliruilongprometheusnodeexporterz9j8b11Running04m47sprometheusliruilongkubeprometheusprometheus022Running03m34s
同样k8s。gcr。iokubestatemetricskubestatemetrics:v2。3。0这个镜像没办法拉取〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕kubectldescribepodliruilongkubestatemetrics5dcf758c47bbwt4Name:liruilongkubestatemetrics5dcf758c47bbwt4Namespace:monitoringPriority:0Node:vms82。liruilongs。github。io192。168。26。82StartTime:Sun,16Jan202202:59:530800Labels:app。kubernetes。iocomponentmetricsapp。kubernetes。ioinstanceliruilongapp。kubernetes。iomanagedbyHelmapp。kubernetes。ionamekubestatemetricsapp。kubernetes。iopartofkubestatemetricsapp。kubernetes。ioversion2。3。0helm。shchartkubestatemetrics4。3。0podtemplatehash5dcf758c47releaseliruilongAnnotations:cni。projectcalico。orgpodIP:10。244。171。15332cni。projectcalico。orgpodIPs:10。244。171。15332Status:PendingIP:10。244。171。153IPs:IP:10。244。171。153ControlledBy:ReplicaSetliruilongkubestatemetrics5dcf758c47Containers:kubestatemetrics:ContainerID:Image:k8s。gcr。iokubestatemetricskubestatemetrics:v2。3。0ImageID:Port:8080TCP
同样的,我们通过docker仓库找一下相同的,然后通过kubectleditpod修改一下k8s。gcr。iokubestatemetricskubestatemetrics替换为:docker。iodyrnqkubestatemetrics:v2。3。0
可以先在节点机上拉取一下〔rootvms81。liruilongs。github。io〕〔ansible〕ansiblenodemshelladockerpulldyrnqkubestatemetrics:v2。3。0192。168。26。82CHANGEDrc0v2。3。0:Pullingfromdyrnqkubestatemetricse8614d09b7be:Pullingfslayer53ccb90bafd7:Pullingfslayere8614d09b7be:VerifyingChecksume8614d09b7be:Downloadcompletee8614d09b7be:Pullcomplete53ccb90bafd7:VerifyingChecksum53ccb90bafd7:Downloadcomplete53ccb90bafd7:PullcompleteDigest:sha256:c9137505edaef138cc23479c73e46e9a3ef7ec6225b64789a03609c973b99030Status:Downloadednewerimagefordyrnqkubestatemetrics:v2。3。0docker。iodyrnqkubestatemetrics:v2。3。0192。168。26。83CHANGEDrc0v2。3。0:Pullingfromdyrnqkubestatemetricse8614d09b7be:Pullingfslayer53ccb90bafd7:Pullingfslayere8614d09b7be:VerifyingChecksume8614d09b7be:Downloadcompletee8614d09b7be:Pullcomplete53ccb90bafd7:VerifyingChecksum53ccb90bafd7:Downloadcomplete53ccb90bafd7:PullcompleteDigest:sha256:c9137505edaef138cc23479c73e46e9a3ef7ec6225b64789a03609c973b99030Status:Downloadednewerimagefordyrnqkubestatemetrics:v2。3。0docker。iodyrnqkubestatemetrics:v2。3。0
修改完之后,会发现所有的pod都创建成功〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕kubectlgetpodsNAMEREADYSTATUSRESTARTSAGEalertmanagerliruilongkubeprometheusalertmanager022Running061mliruilonggrafana5955564c75zpbjq33Running062mliruilongkubeprometheusoperator5cb699b469fbkw511Running062mliruilongkubestatemetrics5dcf758c47bbwt411Running7(32mago)62mliruilongprometheusnodeexporterrfsc511Running062mliruilongprometheusnodeexportervm7s911Running062mliruilongprometheusnodeexporterz9j8b11Running062mprometheusliruilongkubeprometheusprometheus022Running061m〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕
然后我们需要修改liruilonggrafanaSVC的类型为NodePort,这样,物理机就可以访问了〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstacktemplates〕kubectlgetsvcNAMETYPECLUSTERIPEXTERNALIPPORT(S)AGEalertmanageroperatedClusterIPNonenone9093TCP,9094TCP,9094UDP33mliruilonggrafanaClusterIP10。99。220。121none80TCP34mliruilongkubeprometheusalertmanagerClusterIP10。97。193。228none9093TCP34mliruilongkubeprometheusoperatorClusterIP10。101。106。93none443TCP34mliruilongkubeprometheusprometheusClusterIP10。105。176。19none9090TCP34mliruilongkubestatemetricsClusterIP10。98。94。55none8080TCP34mliruilongprometheusnodeexporterClusterIP10。110。216。215none9100TCP34mprometheusoperatedClusterIPNonenone9090TCP33m〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstack〕kubectleditsvcliruilonggrafanaserviceliruilonggrafanaedited〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstacktemplates〕kubectlgetsvcNAMETYPECLUSTERIPEXTERNALIPPORT(S)AGEalertmanageroperatedClusterIPNonenone9093TCP,9094TCP,9094UDP35mliruilonggrafanaNodePort10。99。220。121none80:30443TCP36mliruilongkubeprometheusalertmanagerClusterIP10。97。193。228none9093TCP36mliruilongkubeprometheusoperatorClusterIP10。101。106。93none443TCP36mliruilongkubeprometheusprometheusClusterIP10。105。176。19none9090TCP36mliruilongkubestatemetricsClusterIP10。98。94。55none8080TCP36mliruilongprometheusnodeexporterClusterIP10。110。216。215none9100TCP36mprometheusoperatedClusterIPNonenone9090TCP35m
物理机访问
通过secrets解密获取用户名密码〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstacktemplates〕kubectlgetsecretsgrepgrafanaliruilonggrafanaOpaque338mliruilonggrafanatesttokenq8z8jkubernetes。ioserviceaccounttoken338mliruilonggrafanatokenj94p8kubernetes。ioserviceaccounttoken338m〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstacktemplates〕kubectlgetsecretsliruilonggrafanaoyamlapiVersion:v1data:adminpassword:cHJvbS1vcGVyYXRvcgadminuser:YWRtaW4ldaptoml:kind:Secretmetadata:annotations:meta。helm。shreleasename:liruilongmeta。helm。shreleasenamespace:monitoringcreationTimestamp:20220115T18:59:40Zlabels:app。kubernetes。ioinstance:liruilongapp。kubernetes。iomanagedby:Helmapp。kubernetes。ioname:grafanaapp。kubernetes。ioversion:8。3。3helm。shchart:grafana6。20。5name:liruilonggrafananamespace:monitoringresourceVersion:1105663uid:c03ff5f3deb5458c8583787f41034469type:Opaque〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstacktemplates〕kubectlgetsecretsliruilonggrafanaojsonpath{。data。adminuser}}base64dadminbase64:输入无效〔rootvms81。liruilongs。github。io〕〔ansiblek8shelmcreatekubeprometheusstacktemplates〕kubectlgetsecretsliruilonggrafanaojsonpath{。data。adminpassword}}base64dpromoperatorbase64:输入无效
得到用户名密码:adminpromoperator
正常登录,查看监控信息
生活加油
为什么近视的孩子看东西喜欢眯眼睛?真相是孩子看东西眯眼睛一般有两种情况,一种是畏光,一种是近视。当眼睛有过敏或炎症的时候,会出现畏光,这种情况会伴随眼睛发红、流眼泪甚至烧灼刺激感等症状,很容易分辨。另外,还有些滴用了……
我,开启蔚来NOP返乡过年,在高速上被围观了除夕临近,高速公路上再次涌现出汽车春运潮。对于幸运的一部分蔚来车主而言,这是一次全新体验的回家之旅。2023年元旦期间,蔚来正式开始向10,000名NT2。0平台(……
亚太6E卫星独立推进舱星间分离成功,开启电推旅程IT之家1月25日消息据中国航天科技集团发布,在1月23日(农历大年初二)21时31分,西安卫星测控中心宣布研制的亚太6E卫星独立推进舱星间分离成功。发射成功10天后,亚……
海量资源配迷你彩屏,轻松搞定九科学习,这款黑科技仅几百元导语可能是为了弥补小时候物质匮乏的遗憾,当代父母,都特别舍得给孩子花钱,不过现在四脚吞金兽的吞金能力也实在是太强大了,所以妈妈们一个比一个会精打细算。尤其是在孩子学习工具……
重要通知!网友太需要了!一直以来一些APP的自动续费项目让不少人颇为烦恼有些是不知情状态下开通有些是不用了但忘记取消一不小心又被扣费总之白花了冤枉钱此前报道:忘关会员被续费!APP自动续费的千层……
为何苹果华为酷派等大厂争相推出WiFi6手机,5G将要被淘汰如果说2019年是5G元年,那么2020年可以说是WiFi6元年。2019年,还没用上5G的苹果,却提前让iPhone11全系列支持WiFi6。紧接着,华为、小米、三星等手机大……
活着中那些发人深省的话人是为活着本身而活着的,而不是为了活着之外的任何事物所活着。生活是属于每个人自己的感受,不属于任何别人的看法。做人不能忘记四条,话不要说错,床不要睡错,门槛不要踏错……
马特乌斯诺伊尔为自己开脱一切而迁怒他人,他和拜仁破镜难圆了直播吧2月5日讯拜仁队长诺伊尔日前接受了《TheAthletic》和《南德意志报》的联合采访,他在其中的很多发言被视为对拜仁的攻击,尤其是在塔帕洛维奇被解雇的话题上。德国名宿马……
世界足坛赛况速递(2。18)1、克瓦拉茨赫利亚一条龙破门,那不勒斯20客胜萨索洛在今天先进行的意甲那不勒斯20客胜萨索洛比赛中,凭借克瓦拉茨赫利亚的一条龙进球和奥斯梅恩的破门,那不勒斯20客胜萨索洛……
应无所住而生其心应无所住而生其心不应该对眼识所见的种种色法生起执着心,也不应于声、香、味、触及法等尘境生起执着心,应该于无任何所缘执着而生起离一切边执的清净心。我们的意……
什么是以太坊?它是怎么运作的?以太坊是一个开源的、有智能合约功能的公共区块链平台。它通过其专用加密货币以太币提供去中心化的以太虚拟机(Ethereumvirtualmachine)来处理点对点合约。以太坊是……
2月2日,中国又传来了6个重要消息每天三五分钟跟我来了解一下祖国发生的大事件和重要变化,跟随祖国一起成长。中国加油今天咱们来看看我国都有哪些新消息传来吧。第一个消息,我国出台跨境电商出口退运商品税收……