INFRA概览

    每一套 Pigsty 部署(Deployment) 中,都需要有一些基础设施,才能使整个系统正常工作。基础设施通常由专业的运维团队或云厂商负责,但Pigsty作为一个开箱即用的PaaS解决方案,将基本的基础设施集成至供给方案中。

    Pigsty会在元节点(默认为当前安装的节点)上部署一套完整的基础设施,包括:

    基础设施部署于 上。一套环境中包含一个或多个元节点,用于基础设施部署。除了 分布式配置存储(DCS) 之外,所有基础设施组件都采用副本式部署。

    Nginx是Pigsty所有WebUI类服务的访问入口,默认使用管理节点80端口。

    有许多带有WebUI的基础设施组件通过Nginx对外暴露服务,例如Grafana,Prometheus,AlertManager,Consul,以及HAProxy流量管理页等。 此外,YumRepo,文档,执行计划可视化器等静态文件资源也通过Nginx对外提供服务。

    Nginx会根据 的内容,通过域名的方式,将访问请求转发至对应的上游组件处理。 Pigsty强烈建议使用域名访问Pigsty UI系统,而不是直接通过IP+端口的方式访问,基于以下几个理由:

    • 一些组件默认只监听 127.0.0.1 ,因此只能通过Nginx代理访问
    • 通过域名访问可以将访问收拢至Nginx,审计一切请求,并方便地集成认证机制。
    • 域名更容易记忆,并提供了配置灵活性。

    如果您没有可用的互联网域名或本地DNS解析,您可以在 /etc/hosts或中添加本地静态解析记录。

    Nginx相关配置参数位于:配置:INFRA - NGINX

    Yum Repo

    Pigsty会在安装时首先建立一个本地Yum软件源,以加速后续软件安装。

    该Yum源由Nginx提供服务,默认位于为 /www/pigsty,可以访问 http://yum.pigsty/pigsty 获取。Pigsty的离线软件包即是将已经建立好的Yum Repo目录整个打成压缩包。

    当Pigsty尝试构建本地源时,如果发现本地源目录 /www/pigsty 已经存在,且带有 /www/pigsty/repo_complete 标记文件,则会认为本地源已经构建完成,从而跳过从原始上游下载软件的步骤,消除了对互联网访问的依赖。

    Repo文件位于 /www/pigsty.repo,默认可以通过http://yum.pigsty/pigsty.repo 获取

    1. [pigsty-local]
    2. baseurl=file:///www/pigsty/
    3. gpgcheck=0

    Yum Repo相关配置参数位于:配置:INFRA - REPO

    Grafana

    Grafana是开源的可视化/监控平台,是Pigsty WebUI的核心,默认监听3000端口,可以直接通过IP:3000或域名http://g.pigsty访问。

    Pigsty的监控系统基于Dashboard构建,通过URL进行连接与跳转。您可以快速地在监控中下钻上卷,快速定位故障与问题。

    此外,Grafana还可以用作通用的低代码前后端平台,制作交互式可视化数据应用。因此,Pigsty使用的Grafana带有一些额外的可视化插件,例如ECharts面板。

    Grafana相关配置参数位于:配置:INFRA - GRAFANA

    AlertManager

    AlertManager是与Prometheus配套的告警平台,默认监听9093端口,可以直接通过IP:9093或域名http://a.pigsty访问。

    Prometheus的告警事件会发送至AlertManager,但如果需要进一步处理,用户需要进一步对其进行配置,例如提供SMTP服务配置以发送告警邮件。

    Prometheus是监控时序数据库,默认监听9090端口,可以直接通过或域名http://p.pigsty访问。

    Prometheus是监控用时序数据库。

    • Prometheus默认通过本地静态文件服务发现获取监控对象,并为其关联身份信息。
    • Prometheus可以选择使用Consul服务发现,自动获取监控对象。
    • Prometheus从Exporter拉取监控指标数据,进行预计算加工后存入自己的TSDB中。
    • Prometheus计算报警规则,将报警事件发往Alertmanager处理。

    Prometheus相关配置参数位于:

    Loki

    Prometheus是监控时序数据库,默认监听3100端口。

    Loki是用于日志收集的日志数据库,节点上的Promtail向元节点上的Loki推送日志。

    LOKI相关配置参数位于:

    Consul

    Consul Server用于保存DCS的状态,达成共识,提供元数据查询服务,亦提供基于DCS的服务发现。

    Docker

    Pigsty默认在元节点上安装Docker,您可以拉起各式各样的无状态应用,并使用外部数据库获得生产级的持久性。Docker相关配置参数位于:配置:INFRA - DOCKER

    PostgreSQL相关配置参数位于:配置:PGSQL,使用CMDB作为配置源,请参考。

    • 用于支持各种高级功能的MetaDB(亦是一个标准的数据库集群,由Ansible拉起)

    • 用于执行剧本,发起控制的Ansible,使用动态Inventory时会访问CMDB

    • 定时任务控制器(支持备份,清理,统计,巡检,等特性),会访问CMDB

    Ansible

    Pigsty默认会在元节点上安装Ansible,Ansible是一个流行的运维工具,采用声明式的配置风格与幂等的剧本设计,可以极大降低系统维护的复杂度。命令行工具 pigsty-cli 会调用Ansible Playbook发起管控

    Ansible相关配置参数位于:

    Dnsmasq

    Dnsmasq提供环境内的DNS解析服务(可选)

    • DNS服务为可选,可使用已有DNS服务器

    DNSMASQ相关配置参数位于:

    NTP

    NTP服务用于同步环境内所有节点的时间(可选)

    NTP相关配置参数位于:

    Pigsty 提供了一个公开演示的demo,地址为:

    因为演示实例为1核1GB的空虚拟机空实例,故显示内容较为单薄,请以实际效果为准。

    最后修改 2022-05-27: add makefile shortcuts (23d6900)