环境准备 CentOS Linux release 7.9 Docker version 23.0.6 Docker Compose version v2.33.1 安装Docker 配置国内镜像加速(可选) 12345678910111213141516171819[ -d /etc/docker/ ] || mkdir -p /etc/docker/tee /etc/docker/daemon.json << 'EOF'{ "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "1" }, "registry-mirrors": [ "https://x9r52uz5.mirror.aliyu ...
概述 什么是普罗米修斯 普罗米修斯(Prometheus) 是一款开源的系统监控和报警工具包,专为可靠性而设计。它特别适用于对现代云环境或微服务架构中的动态服务进行监控。 特点 普罗米修斯的主要特点是: 支持多维数据模型由指标名称和键值对标识的时间序列数据 多维数据模型:通过指标名称和键值对来标识的时间序列数据。 内置TSDB:拥有自己的时间序列数据库,用于存储监控数据。 PromQL支持:一种强大的查询语言,可用于数据分析、图形展示以及监控告警。 自治节点:不依赖分布式存储,每个服务器节点都是独立工作的。 HTTP拉取模式:主要采用HTTP协议从目标端拉取监控数据。 Pushgateway:允许通过推送方式提交监控数据,适合短期或批量任务。 灵活的目标发现机制:可以通过服务发现或者静态配置两种方式来识别监控目标。 可视化与仪表盘:广泛兼容多种可视化工具,如Grafana等。 核心组件 Prometheus Server:负责抓取、存储时序数据,并提供查询接口和告警规则管理。 Client Libraries:帮助开发者在应用代码中集成监控功能。 Pushgateway:作为中介 ...
Linux
未读6bfaebf3e9f67b5202b8d6c1cdcd16f7b5ba01cd0c86fe46b43ae97bedd417e201620164b95ab1b7fa7df1a594d7fac3de1d2b98ec0ba9d635085ab0d01ce782cc5ba6be68db2dff3e03d603a2589e330e6cbbbd8891357e2af7f9c72c0e07eca71661352b6620d51ec97fc0d9a3f543d1e4d60192fda0b9e1241db59a4ee1bace263228d6dae35af9c3de71b46352defcb10439cca417504c48ac07074c1383cff39a90364ee45615584e683a93978ac089bee7df9f50e79d6d25834ecb36e7e23569fda2ae5436a84024cd0e1e02be4830f9714faddab2382427bb850f7b3809c8b071c835673fd8b911dc945a6e23eba17f3cffc295aee ...
6bfaebf3e9f67b5202b8d6c1cdcd16f7b5ba01cd0c86fe46b43ae97bedd417e2de80d7cccb76f7bec7f0746223308235cb572adde79c988c2e3966deff928490f920e9711b05534f930fc7f56655905afa24188175b82eca3077025de83891f920fc8892bcc5f29076149e05c8012dbcb9f90ae8699c957124931fe3d75930850577bf12d3d21d5dcc42b4ae9353a401d9b0067ba9316b4a43696217c2c13e2e710769e64d40ad28997f9869eec8fb1b39a2887ba6f5485955ff238772570d2e99b57fae82b9aad9042ff8d5f040d070a71b0e67dfde267227b14e6d0cb38ceb37f0e9c68058162458b27db05963eb61cd76c2b0532d2d83f ...
Linux
未读检查是否安装,如已安装,先卸载 1rpm -qa | grep Mariadb* 配置要安装的[mariadb](MariaDB Server - All releases - MariaDB.org))版本对应的yum源 https://mariadb.org/mariadb/all-releases 选择要下载的版本,这里以10…11演示 点击 MariaDB Repositories 后,选择对应的版本,然后复制下方内容 按照提示信息创建yum源信息文件 vi /etc/yum.repos.d/MariaDB.repo 这里选择的阿里云 1234567891011# MariaDB 10.11 CentOS repository list - created 2023-02-17 07:13 UTC# https://mariadb.org/download/[mariadb]name = MariaDB# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https: ...
Linux
未读适用场景:数据备份、跨服务器同步、增量传输 简介 rsync 是一个快速、多功能的文件传输工具,支持增量传输、压缩等功能。它可以通过 SSH 或者通过 xinetd 启动的服务模式来同步文件。 核心优势: 增量传输:仅传输文件变化部分,减少带宽消耗。 压缩数据:传输过程中自动压缩,节省网络流量。 多平台支持:Linux、Windows、macOS 均可使用。 安全性:通过 SSH 加密 或 独立服务模式 确保数据安全。 安装rsync 12345# 检查是否已安装rpm -qa | grep rsync || whereis rsync# 未安装则执行yum -y install rsync 服务端配置 方法一:xinetd 启动模式(低负载场景) 步骤: 安装 xinetd: xinetd 是一个超级服务器,可以用来启动 rsync 服务。 1yum -y install xinetd 编辑 xinetd 配置文件 /etc/xinetd.d/rsync: 确保包含以下内容: 12345678910service rsync{ disable = no ...
前提条件:配置ssh免密码登陆 通过 SSH 运行命令的问题在于,通常您必须自己键入它们或上传脚本文件。但是,通过一些 bash 知识,您可以通过 SSH 传递整个脚本,而无需.sh 在远程计算机上保存该文件。 解决方案:通过标准输入传递脚本 SSH 命令有一种模式,您可以在其中在远程服务器上运行任何单个命令。为了运行多个命令,您必须使用以下技巧: 1ssh user@remotehost 'bash -s' < script.sh 该bash -s 命令的意思是“在新的 bash 会话中执行以下命令”。该-s 标志使其从标准输入读取,该< script.sh 位将本地脚本文件读入标准输入。 该文件完全在本地读取,并且全部发送到远程服务器而无需上传任何内容。这确实需要您将所有命令放入一个单独的脚本文件中。 一条指令ssh $ip "ls /home/" 在脚本中运行许多远程命令 如果您想在另一台服务器上运行 shell 脚本的一部分,而不是全部,您可以在脚本中包含如下嵌套块: 123456789101112131415161718ss ...
Docker
未读Service存在的核心价值 解决Pod动态性问题(服务发现) 动态IP困境:Pod每次重建都会分配新IP,无法直接依赖 服务发现机制:Service提供稳定的虚拟IP(VIP)和DNS名称 自动关联:通过Label Selector动态关联后端Pod集合 真实场景:某微服务架构包含50个Pod实例,每秒重建2-3个Pod。直接访问Pod IP导致30%请求失败,引入Service后失败率降至0.01%。 流量分发策略(负载均衡) 负载均衡类型 工作原理 适用场景 轮询(Round Robin) 请求依次分发到各Pod 默认策略 会话保持(Session Affinity) 相同客户端请求固定到同一Pod 有状态应用 基于客户端IP 按客户端IP哈希分配 网关类服务 生产案例:某游戏平台使用sessionAffinity: ClientIP配置,使玩家会话始终路由到相同游戏实例,解决了跨实例状态同步问题。 Pod与Service的标签关联机制 核心关系图解 关系说明:Service通过Label Selector仅关联匹配标签的Pod(如app=n ...
什么是Controller 集群的智能管家 Controller是Kubernetes的核心控制回路,通过持续监控集群状态并驱动实际状态向期望状态收敛。它解决了分布式系统中的状态维护难题,确保应用在节点故障、资源波动等情况下保持稳定运行。 典型案例:当Node节点意外宕机时,ReplicaSet Controller会立即检测到Pod缺失,并在健康节点上重新创建Pod,整个过程通常在10-30秒内完成。 Kubernetes Controller 类型对比 Controller类型 核心用途 Pod标识 部署顺序 存储卷 伸缩特性 典型应用场景 Deployment 管理无状态应用 随机名称 无序 无状态或共享存储 平滑伸缩 Web服务、API微服务 StatefulSet 管理有状态应用 固定名称(web-0,1,2) 有序 专属持久卷(PV) 需手动逐实例伸缩 数据库(MySQL/MongoDB)、消息队列 DaemonSet 节点级守护进程 随机名称 无序 通常不需要 跟随节点自动伸缩 日志收集(Fluentd)、节点监控 Job 单次任务 随机名称 ...
Docker
未读标签(Label)系统:Kubernetes的资源组织核心 Label 本质与特性 特性 说明 数据结构 键值对(key=value)附着在资源对象(如Pod)上的元数据 核心作用 资源分类/筛选/关联(Controller通过Label选择其管理的Pod) 不可变性 创建后不可修改(需删除重建),确保资源关系稳定性 多标签支持 单个资源可拥有多个Label(如app=frontend, env=prod, version=v1.2.0) Label 操作示例 12345678# 创建Pod时定义Labelkubectl run nginx --image=nginx -l "app=web,env=prod"# 为已有Pod添加Labelkubectl label pods my-pod backup=true# 按Label筛选资源kubectl get pods -l "app=web, !canary" # 查询web应用的非金丝雀版本 Controller 与 Pod 的标签绑定关系 工作原理 ...