07 2022 档案
摘要:Alertmanager 部署和配置 在 Prometheus 生态架构中,告警是由独立的两部分组成,可以通过下图来了解我们 Prometheus 告警机制。 其中 Prometheus server 与 Alertmanager 是相互分离的两个组件。 我们使用 Prometheus server
阅读全文
摘要:Relabelling(重新标记) Prometheus 通过重新标记机制进行控制管理采集来的复杂的数据集,尽可能的实现标准化环境中的指标。我们通常用于修改导出指标信息中的标签 label 字段,对指标进行过滤,删除不必要的指标,从而可以在指标中删除敏感或不需要的标签,并且支持添加、编辑或修改指标的
阅读全文
摘要:服务发现(基于 DNS 的服务发现) 不是所有的应用环境都能使用 Prometheus 基于 文件 和基于 Consul 的服务 发现。假如我们的应用服务环境不支持任何现有的服务发现工具,那推荐你使用基于 DNS 的服务发现。 此时,我们使用 DNS 解析服务中国的 SRV 资源记录功能来实现服务发
阅读全文
摘要:服务发现(基于 Consul 的服务发现) 基于 Consul 的服务发现是一种使用网络的服务发现机制和配置工具,是使用 Go 语言开发的,部署安装较为简单,具有分布式、高可用性和极高的可扩展性。它提供了以下几个关键功能。 服务发现:Consul 通过 HTTP API 和 DNS 进行服务注册和服
阅读全文
摘要:服务发现(基于文件的服务发现) Prometheus 服务发现自动化检测分类,并且能够识别新目标和变更目标。也就是说。可以在容器平台或云平台中,自动发现并监控新目标或变更目标,动态进行数据采集和处理。 这里我们聊聊基于文件的服务发现。 现在,随着公司业务量增加,当前的静态配置维护工作的量级增加时(比
阅读全文
摘要:黑盒监控(blackbox_exporter) 之前几个 exporter 的使用,我们可以称为 "白盒监控",即需要把对应的 expoter 程序安装到被监控的目标主机上,从而实现对主机各种资源及其状态的数据采集工作。但是由于某些清下操作技术或其他原因,不是所有的 expoter 都能部署到被监控
阅读全文
摘要:Exporter(Elasticsearch监控) 一、部署 elasticsearch_exporter 不多bb,直接上配置清单 yaml文件: kind: Pod apiVersion: v1 metadata: name: elastic-j9qoiy-elasticsearch-expor
阅读全文
摘要:Exporter(Nginx监控) Nginx是比较流行的一款轻量级 Web 服务器和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务,因其优良的稳定性,丰富的功能集等等优点,广受大家喜爱,所以无论网站用户访问量级别有多大,nginx 监控是必备知识。 在 Prometheus 官方文档
阅读全文
摘要:Exporter(Redis-exporter) 在安装之前,首先在官方下载页面 https://github.com/prometheus/mysqld_exporter/releases/ 找到最新 redis_exporter 版本,下载最新版本中特定平台的二进制文件,如下: 一、部署 red
阅读全文
摘要:Exporter(MySQL数据库监控) 数据是企业的核心价值,数据库管理员对数据库进行监控,以便随时掌握数据库运行状况,使数据库稳定运行,更好地优化提升其性能,且在排查问题时有据可依。 目前互联网中,最常见的数据库模型主要有两种:关系型数据库和非关系型数据库。 这里我们先介绍 mysqld_exp
阅读全文
摘要:Exporter(Linux主机监控) 由于 Linux 操作系统自身并不支持 Prometheus,所以 Prometheus 官方提供了 Go 语言编写的 Node exporter 来实现对 linux 操作系统主机的监控数据采集。它提供了系统内几乎所有的标准指标,如 CPU、内存、磁盘空间、
阅读全文
摘要:Exporter概述 在 Prometheus 核心组件中,Exporter 是重要的组成部分,在实际中监控样本数据的收集都是由 Exporter 完成的,Prometheus 服务器只需要定时从这些 Exporter 提供的 HTTP 服务获取监控数据即可。 Exporter 本质上是将收集的数据
阅读全文
摘要:Jobs 和 Instances 在 Prometheus 中,任何被采集的目标,即每一个暴露监控样本数据的 HTTP 服务都称为一个实例(Instance),通常对应于单个进程。而具有相同采集目的的实例集合(比如为可伸缩性或可靠性而复制的流程)称为作业(Job)。 例如:以下四个复制实例的 API
阅读全文
摘要:Operator介绍 一、什么是 Operator? 在 Kubernetes中我们经常使用 Deployment、DaemonSet、Service、ConfigMap 等资源,这些资源都是 Kubernetes 的内置资源,它们的创建、更新、删除等均由 Controller Manager 负责
阅读全文
摘要:自定义 API Server 扩展 Kubernetes 系统 API 接口的另一种常用办法是使用自定义的 API Server。相比较 CRD 来说,使用自定义 API Server 更加灵活,例如可以自定义资源类型和子资源、自定义验证及其他逻辑,甚至于在 Kubernetes API Serve
阅读全文
摘要:自定义资源类型(CRD) Kubernetes 系统的扩展和增强既包括扩展 API Server 所支持的资源类型及相关声明式功能的实现,以及消除集群的单点以实现集群的高可用等,也包括如何将系统增强为一个完整意义上的 PaaS 平台,并以 DevOps 文化为驱动改善工作流程等。 Kubernete
阅读全文
摘要:Pod优先级和抢占式调度 对于运行各种负载(如Service、Job)的中等规模或者大规模的集群来说,出于各种原因,我们需要尽可能提高集群的资源利用率。而提高资源利用率的常规做法是采用优先级方案,即不同类型的负载对应不同的优先级,同时允许集群中的所有负载所需的资源总量超过集群可提供的资源,在这种情况
阅读全文
摘要:污点和容忍度 污点 taints(英[teɪnt] 美[teɪnt]) 是定义在节点之上的键值型属性数据,用于让节点拒绝将 Pod 调度运行于其上, 除非该 Pod 对象具有接纳节点污点的容忍度。而容忍度 tolerations 是定义在 Pod 对象上的键值型属性数据,用于配置其可容忍的节点污点,
阅读全文
摘要:Pod资源亲和调度 出于高效通信的需求,偶尔需要把一些 Pod 对象组织在相似的位置(同一节点、机架、区域或地区等),如某业务的前端 Pod 和后端 Pod 等,此时可以将这些 Pod 对象间的关系称为亲和性。 偶尔,出于安全或分布式等原因也有可能需要将一些 Pod 对象在其运行的位置上隔离开来,如
阅读全文
摘要:节点亲和调度 节点亲和性,是调度程序用来确定 Pod 对象调度位置的一组规则,这些规则基于节点上的自定义标签和 Pod 对象上指定的标签选择器进行定义。 节点亲和性允许 Pod 对象定义针对一组可以调度于其上的节点的亲和性或反亲和性,不过,它无法具体到某个特定的节点。例如,将 Pod 调度至有着特殊
阅读全文
摘要:Kubernetese调度器概述 API Server 接受客户端提交 Pod 对象创建请求后的操作过程中,有一个重要的步骤是由调度器程序(kube-scheduler)从当前集群中选择一个可用的最佳节点来接收并运行它,通常是默认的调度器(default-scheduler)负责执行此类任务。对于每
阅读全文
摘要:Calico网络插件 Calico 是一个开源网络和网络安全解决方案,适用于容器、虚拟机和基于本地主机的工作负载。Calico 支持广泛的平台,包括 Kubernetes、OpenShift、Mirantis Kubernetes Engine (MKE)、OpenStack 和裸机服务。(官网翻译
阅读全文
摘要:网络策略 网络策略(Network Policy)是用于控制分组的 Pod 资源彼此之间如何进行通信,以及分组的 Pod 资源如何与其他网络端点进行通信的规范。它用于为 Kubernetes 实现更为精细的流量控制,实现租户隔离机制。 Kubernetes 使用标准的资源对象 "NetworkPol
阅读全文
摘要:Flannel网络插件 各 Docker 主机在 docker0 桥上默认使用同一个子网,不同节点的容器很可能会得到相同的地址,于是跨节点的容器间通信会面临地址冲突的问题。另外,即使人为地设定多个节点上的 docker0 桥使用不同的子网,其报文也会因为在网络中缺乏路由信息而无法准确送达。事实上,各
阅读全文
摘要:Kubernets网络模型及CI插件 ——(Docker网络模型、K8S网络模型、Pod网络实现方式、常见CNI插件有哪些) Docker 的传统网络模型在应用日趋复杂的实际业务场景时必将导致复杂的几何级数上升,由此,Kubernetes 设计了一种网络模型,它要求所有容器都能够通过一个扁平的挽留过
阅读全文
摘要:准入控制器(LimitRange、ResourceQuota 和 PSP) 在经由认证插件和授权插件分别完成身份认证和权限检查之后,准入控制器将拦截那些创建、更新和删除相关的操作请求以强制实现控制器中定义的功能,包括执行对象的语义验证、设置缺失字段的默认值、限制所有容器使用的镜像文件必须来自某个特定
阅读全文
摘要:基于角色的访问控制:RBAC RBAC(Role-Based Access Control,基于角色的访问控制)是一种新型、灵活且使用广泛的访问控制机制,它将权限授予 "角色"(role)之上。 一、RBAC授权插件 RBAC 是一种操作授权机制,用于界定 "谁"(subject)能够或不能够 "操
阅读全文
摘要:X.509数字证书认证 Kubernetes 支持的 HTTPS 客户端证书认证、token 认证及 HTTP basic 认证几种认证方式中,基于 SSL/TLS 协议的客户端证书认证以其安全性高且易于实现等特性,而成为主要使用的认证方式之一。 SSL/TLS 最常见的使用场景是将 X.509 证
阅读全文
摘要:服务帐号管理与应用(ServiceAccount) 运行过程中,Pod 资源里的容器进程在某些场景需要调用 Kubernetes API 或其他类型的服务,而这些服务通常需要认证客户端身份,如调度器、Pod控制器或节点控制器,甚至是获取启动容器的镜像访问的私有仓库 Harbor 服务等。 服务帐号就
阅读全文
摘要:访问控制 在用户租户的系统上,认证和授权都是两个必不可少的功能。认证用于身份鉴别,授权是用于实现权限分派。 Kubernetes 以插件化方式实现了这两种功能,且分别存在多种可用的插件。 API Server 是 Kubernetes 集群系统的唯一网关入口,像 kube-controller-ma
阅读全文
摘要:StatefulSet控制器——案例:etcd集群 Kubernetes 的所有对象都需要持久化存储于 etcd 存储系统中,以确保系统重启或故障恢复后能将它们予以还原。 一、创建 Service 资源 StatefulSet 资源依赖于 Headless Service 为各 Pod 资源提供名称
阅读全文