阿里云容器Kubernetes监控(三) - 与云监控的集成与使用-阿里云开发者社区

开发者社区> 莫源> 正文

阿里云容器Kubernetes监控(三) - 与云监控的集成与使用

简介: 简介 监控是运维Kubernetes中非常重要的一环,在kubernetes的生态内,有非常多可选的方案,场景的方案包括内置的Heapster、CNCF的亲儿子Prometheus、Influxdb的采集方案Telegraf等等,当然传统的监控运维工具例如zabbix也对容器的场景进行了适配。
+关注继续查看

简介

监控是运维Kubernetes中非常重要的一环,在kubernetes的生态内,有非常多可选的方案,常见的方案包括Kubernetes内置的Heapster、CNCF的亲儿子Prometheus、Influxdb的采集方案Telegraf等等,当然传统的监控运维工具例如zabbix也对容器的场景进行了适配。这些方案的实现方式各有不同,有的是采用agent的推模式推送数据,有的是通过集中式的拉模式来采集数据,那么究竟该怎么选择适合自己的监控方案呢?这个问题要从容器监控的难点开始讲起。

容器监控的难点

传统的监控方案,大部分是自顶向下的,配置一个监控的任务、采集端点,然后应用的生命周期与监控的任务生命周期是一致的,采集的目标是固定的。无论应用如何重启、变化,对于采集任务而言只要采集端点没有变化,那么任何的变化都是生命周期中的正常现象。

但是容器的场景则有所不同,大部分容器是被调度器进行调度的,也就是说是在一个资源池中随机调度的,监控系统通常无法感知采集端点的具体位置。因此大部分的监控采用的是自底向上的聚合方式,这种方式的原理就是:通过给容器打标,将一些原本在配置任务时候设定的信息,通过label打标到容器上。然后在聚合的时候从容器的信息,反向聚合出应用的监控。
但是自底向上的聚合方式有一个严重的缺陷,从生命周期上来看,因为监控的生命周期是来自监控数据的,因此一旦监控数据缺失,就会导致上层的监控生命周期收到影响,也就是说无法判断此时应用的生命周期状态。为了解决这个问题,大部分的采集系统会通过额外的label来实现,但是每一个metric都会打上这样的Label使得监控的数据会有大量的冗余信息。

阿里云容器服务Kubernetes与云监控集成

与云监控的集成是通过应用分组进行实现的,与传统的Pod监控不同,阿里云容器服务Kubernetes支持Kubernetes的逻辑概念的监控,例如Deployment、DaemonSet、StatefulSet的监控。对于1.10.4的版本的集群,默认在创建的时候就安装完毕。

所有的部署都会自动创建应用分组,可以通过控制台的部署页面找到对应的部署监控入口。

%E7%B2%98%E8%B4%B4%E5%9B%BE%E7%89%87.png

更多类型的workloads监控可以通过k8s原生的Dashboard进入。

lALPBY0V44Pj9qbNAzfNBTk_1337_823.png_620

点击 监控 可以进入到对应的监控分组中。

lALPBY0V44PhvG3NAzfNBTk_1337_823.png_620

在本例中是一个Deployment,并且此Deployment下包含一个Pod,监控包含两个维度,一个是分组维度,一个是实例维度。

lALPBY0V44Pit7jNAzfNBTk_1337_823.png_620

分组会聚合当前所有实例的指标,假如当前Deployment下有多个Pod,那么此时分组的数据指标就是聚合多个Pod的监控指标。

lALPBY0V44PiuIrNAzfNBTk_1337_823.png_620

如果需要查看特定的Pod的监控,可以分组实例来去查看,选择Pod名称,点击确认即可。

lALPBY0V44PiuujNAzfNBTk_1337_823.png_620
您也可以给当前的监控分组设置报警规则,实现应用的告警。

老集群升级

阿里云容器服务Kubernetes目前已完成与云监控的集成,目前1.10.4版本的集群已经默认支持,老集群可以通过如下的方式进行升级。

根据自己的集群替换REGION与CLUSTER_ID,并重新部署Heapster的yaml

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: heapster
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        task: monitoring
        k8s-app: heapster
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
      serviceAccount: admin
      containers:
      - name: heapster
        image: registry.##REGION##.aliyuncs.com/acs/heapster-amd64:v1.5.1.1
        imagePullPolicy: IfNotPresent
        command:
        - /heapster
        - --source=kubernetes:https://kubernetes.default
        - --historical-source=influxdb:http://monitoring-influxdb:8086
        - --sink=influxdb:http://monitoring-influxdb:8086
        - --sink=socket:tcp://monitor.csk.##REGION##.aliyuncs.com:8093?clusterId=##CLUSTER_ID##&public=true

根据自己集群替换REGION与CLUSTER_ID,并部署alicloud-monitor-controller

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: alicloud-monitor-controller
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        task: monitoring
        k8s-app: alicloud-monitor-controller
      annotations:
        scheduler.alpha.kubernetes.io/critical-pod: ''
    spec:
      hostNetwork: true
      tolerations:
      - effect: NoSchedule
        operator: Exists
        key: node-role.kubernetes.io/master
      - effect: NoSchedule
        operator: Exists
        key: node.cloudprovider.kubernetes.io/uninitialized
      serviceAccount: admin
      containers:
      - name: alicloud-monitor-controller
        image: registry.##REGION##.aliyuncs.com/acs/alicloud-monitor-controller:v1.0.0
        imagePullPolicy: IfNotPresent
        command:
        - /alicloud-monitor-controller
        - agent
        - --regionId=##REGION##
        - --clusterId=##CLUSTER_ID##
        - --logtostderr
        - --v=4

在kube-system命名空间中看到这两个Deployment已经运行中即升级完毕。对于不清楚自己REGION信息的开发者,可以通过如下的方式快速查询,打开ECS控制台,选择自己集群所在的地域,路由中最后一段即是REGION。
lALPBY0V44PzJ9vNAzfNBTk_1337_823.png_620

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Kubernetes Ingress 日志分析与监控的最佳实践
Ingress 主要提供 HTTP 层(7 层)路由功能,是目前 K8s 中 HTTP/HTTPS 服务的主流暴露方式。为简化广大用户对于 Ingress 日志分析与监控的门槛,阿里云容器服务和日志服务将 Ingress 日志打通,只需要应用一个 yaml 资源即可完成日志采集、分析、可视化等一整套 Ingress 日志方案的部署。
4971 0
阿里云容器Kubernetes监控(一) - 资源监控
简介 容器通过集装箱式的编译、打包、部署,大大提高了应用的迭代速度。对于架构师而言,容器带来的是分钟级的部署、秒级的伸缩与恢复、一个量级的迭代速度提升、50%左右的基础成本节省。但是对于落地实施容器的开发者而言。
6152 0
CICD联动阿里云容器服务Kubernetes实践之CodePipeline篇
通过CodePipeline可以构建您的代码工作流模板,配置从应用编译到容器镜像构建和推送,再到Kubernetes应用的发布,打通代码应用发布全过程自动化。
3344 0
容器服务-Kubernetes知识图谱
1. 概述  容器服务 kubernetes知识图谱,部分内容参考网上一知识图谱,更加结合阿里云容器服务。https://www.processon.com/view/link/5ac64532e4b00dc8a02f05eb#map 2.
1845 0
重磅!容器集群监控利器 阿里云Prometheus 正式免费公测
Prometheus 作为容器生态下集群监控的首选方案,是一套开源的系统监控报警框架。2019 年7月3日,阿里云Prometheus云托管实例正式开始免费公测。针对容器集群监控场景,提供了完整的采集、存储、监控、告警、图表展现的数据监控服务。
11075 0
如何使用Terraform管理容器服务Kubernetes集群之--Serverless集群
#### 介绍 Terraform 是一款 Infrastructure as Code 的工具,可以将云端资源代码化。关于 Terraform 的基本介绍本文不再赘述,有兴趣的同学可以参考 [《云生态下的基础架构资源管理利器Terraform》](https://yq.aliyun.com/articles/215592) 等云栖社区的优秀文章。
1296 0
Kubernetes容器运行时接口-CRI
Kubernetes提供了多种容器开放接口用于对接不同的后端来提供资源,如提供计算资源的容器运行时接口(Container Runtime Interface, CRI),提供网络资源的容器网络接口(Container Network Interface, CNI),提供提供存储资源的容器存储接口(Container Storage Interface, CSI)。这篇作为这系列的开篇,主要介绍了kubelet的CRI接口实现。
424 0
Docker容器可视化监控中心搭建
一个宿主机上可以运行多个容器化应用,容器化应用运行于宿主机上,我们需要知道该容器的运行情况,包括 CPU使用率、内存占用、网络状况以及磁盘空间等等一系列信息,而且这些信息随时间变化,我们称其为时序数据
1812 0
容器服务 kubernetes Deployment实现分批发布
1. 前言 容器服务官网提供的分批发布基于 StatefulSet 开发,有状态副本集部署 POD 是按照顺序一台一台的发布重启,需要消耗很长的时间,并且控制台不尽人意,存在不少坑。 StatefulSet 分批发布不支持任意数目任意批数的发布,实际操作中往往需要先发布一台线上服务做灰度,然后逐步放大。 因而采用无状态副本集 Deployment 对象分批部署,并通过同一个 labels指向
3964 0
区块链Hyperledger Fabric在阿里云容器服务Kubernetes中的进阶使用技巧(一)
区块链Hyperledger Fabric在Kubernetes集群中的进阶使用经验、技巧和最佳实践,涵盖了系统设计、资源规划、服务使用、错误诊断、运营维护等方面,适用于区块链Hyperledger Fabric应用和方案的开发测试、以及生产部署等用途。这些内容将以系列文章的形式陆续发布并更新
6862 0
+关注
莫源
主要负责阿里云容器服务产品的底层服务发现系统、集群管理系统的研发,从事容器的持续交付、持续集成的方案的设计与实现。在云计算、分布式系统、图像识别与虚拟现实方向有多年的开发经验。个人博客:abandonzoo.com
53
文章
39
问答
来源圈子
更多
容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级 Kubernetes 容器化应用的全生命周期管理。容器服务 Kubernetes 版简化集群的搭建和扩容等工作,整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳的 Kubernetes 容器化应用运行环境。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载