作者简介: 大家好,我是 roc,来自腾讯云容器服务(TKE)团队,这次为大家带来实用的打造云原生大型分布式监控系统系列文章,请笑纳。
Prometheus 几乎已成为监控领域的事实标准,它自带高效的时序数据库存储,可以让单台 Prometheus 能够高效的处理大量的数据,还有友好并且强大的 PromQL 语法,可以用来灵活的查询各种监控数据以及配置告警规则,同时它的 pull 模型指标采集方式被广泛采纳,非常多的应用都实现了 Prometheus 的 metrics 接口以暴露自身各项数据指标让 Prometheus 去采集,很多没有适配的应用也会有第三方 exporter 帮它去适配 Prometheus,所以监控系统我们通常首选用 Prometheus,本系列文章也将基于 Prometheus 来打造云原生环境下的大型分布式监控系统。
... ➦注:本文是我在中国云原生大会(CEUC 2018) 上同名演讲的文字整理。
Kubernetes 已经成为容器编排调度领域的事实标准,其优良的架构不仅保证了丰富的容器编排调度功能,同时也提供了各个层次的扩展接口以满足用户的定制化需求。其中,容器运行时作为 Kubernetes 管理和运行容器的关键组件,当然也提供了简便易用的扩展接口,也就是 CRI(Container Runtime Interface)。CRI 促进了容器运行时社区的繁荣,也为强隔离、多租户等复杂的场景带来更多的选择。
... ➦Azure 容器实例(ACI)提供了在 Azure 中运行容器的最简捷方式,它不需要用户配置任何虚拟机或其它高级服务。ACI 适用于快速突发式增长和资源调整的业务,但功能相对比较简单。对于需要完整容器集群编排功能的场景建议使用 ACS 或 AKS。
... ➦Azure Container Service(ACS)是 Microsoft Azure 在2015年推出的容器服务,支持 Kubernetes、DCOS 以及 Dockers Swarm 等多种容器编排工具。并且 ACS 的核心功能是开源的,用户可以通过https://github.com/Azure/acs-engine来查看和下载使用。
... ➦Azure 容器服务 (AKS) 是 Microsoft Azure 最近发布的一个托管的 Kubernetes 服务(预览版),它独立于现有的 Azure Container Service (ACS)。借助 AKS 用户无需具备容器业务流程的专业知识就可以快速、轻松的部署和管理容器化的应用程序。AKS 支持自动升级和自动故障修复,按需自动扩展或缩放资源池,消除了用户管理和维护 Kubernetes 集群的负担。并且集群管理本身是免费的,Azure 只收取容器底层的虚拟机的费用。
... ➦在容器化和云原生的大潮下,很多公司都已经开始了容器化的进程。然而,将已有应用转化为容器和云原生架构并不容易,并且这些遗留应用的维护可能会花费80%的精力。如果能够自动的将这些应用转化为容器应用,显然会是一个巨大的市场。Docker也看到了这个市场,并在 DockerCon EU (2017) 上发布了Modernize Traditional Applications (MTA) program,它由 咨询服务、Docker EE以及合作伙伴提供的混合云基础架构组成。首批MTA的合作伙伴包括Avanade, Booz Allen, Cisco, HPE 和 Microsoft 等。
... ➦在今年的 DockerCon EU (2017) 上,Solomon、Brendan、Hockin等联合宣布Docker将原生支持Kubernetes,也就是说Kubernetes将和Swarm一样作为Docker平台的编排管理系统。这包括Docker EE、Docker CE以及Docker for Mac/Windows等全平台的支持。
... ➦github pages为未配置自定义域名的网站(格式为<username>.github.io
)自动开启了https,但一直不支持配置自定义域名网站的https。好在Cloudflare提供了类似的功能,并且还自带CDN和域名解析的功能,开启也很简单:
Kubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本,也是CNCF最重要的组件之一,主要功能包括:
... ➦对于普通的服务器进程,我们可以很方便的使用宿主机上的各种工具来调试;但容器经常是仅包含必要的应用程序,一般不包含常用的调试工具,那如何在线调试容器中的进程呢?最简单的方法是再起一个新的包含了调试工具的容器。
... ➦