自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 K8S-NetworkPolicy

本文深入探讨了Kubernetes中的NetworkPolicy功能,详细介绍了其核心原理和使用方法。NetworkPolicy通过Pod选择器、命名空间选择器及Ingress/Egress规则实现对Pod间网络通信的精细控制,有效提升集群安全性。文章提供了多种典型场景的配置示例,包括:限制命名空间内Pod通信、控制外部访问、指定端口范围等。特别强调了完整隔离策略需要同时配置Ingress和Egress规则,并提供了允许访问同命名空间Pod和外部网络但禁止跨命名空间通信的实用案例。

2026-07-03 19:03:23 224

原创 K8S-HPA水平扩缩容

文章摘要: Kubernetes的Horizontal Pod Autoscaler(HPA)是一种自动水平扩缩容机制,通过动态调整Pod副本数以匹配业务负载需求,解决资源与负载的供需平衡问题。HPA支持多种指标类型(Resource、Pods、Object、External),结合实时监控数据(如CPU、内存或自定义指标),按算法计算目标副本数,并遵循“快速扩容、谨慎缩容”原则。v2版本引入Behavior配置,支持独立控制扩缩容速率和稳定性窗口。HPA依赖Metrics API聚合层获取数据,需配合Pr

2026-07-02 19:53:17 221

原创 Redis数据库基础

本文摘要: 文章系统介绍了关系型数据库与非关系型数据库的特点与区别,重点讲解了Redis内存数据库的部署与应用。主要内容包括: 数据库分类对比 关系型数据库(如MySQL)基于二维表格,强调事务一致性 非关系型数据库(如Redis)采用键值存储,擅长高并发和大数据量处理 Redis核心特性 支持持久化到磁盘 单线程模型保证原子性操作 丰富数据类型(String/List/Hash/Set等) 极高读写性能

2026-06-07 20:26:53 205

原创 Jenkins 自动化部署 Tomcat + PHP

Jenkins 自动化部署 Tomcat + PHP

2026-05-28 21:03:13 1010

原创 DevOps介绍与工具链全解析

DevOps是一种融合开发与运维的实践方法论,旨在通过自动化流程和跨团队协作提升软件交付效率和质量。其核心原则包括协作沟通、流程自动化、持续改进、重视反馈和安全集成。与传统开发模式相比,DevOps强调快速迭代、自动化部署和实时监控。关键工具链涵盖代码管理(Git)、CI/CD(Jenkins)、配置管理(Ansible)、容器化(Docker/K8s)和监控(Prometheus)等。实施建议从局部试点开始,逐步自动化高频操作,并建立度量指标评估效果。

2026-05-27 21:30:29 546

原创 Grafana配置详解

本文摘要介绍了Grafana配置文件中的关键配置项,主要包括: 路径设置:包括数据、日志、插件和配置文件的存储路径; 服务器配置:协议、端口、域名、TLS等网络相关设置; 数据库连接:支持多种数据库类型及连接参数配置; 安全设置:管理员账户、加密、Cookie安全、内容安全策略等; 认证配置:登录设置、OAuth集成、匿名访问等。 这些配置项涵盖了Grafana的核心功能模块,包括数据存储、网络服务、安全认证等方面,为系统管理员提供了全面的配置选项来定制Grafana的运行环境和安全策略。

2026-05-26 20:58:44 411

原创 Prometheus介绍及监控平台部署

本文介绍了开源监控系统Prometheus的基本概念、核心特性及部署实践。主要内容包括:1. Prometheus作为时序数据库监控系统的优势,包括多维度数据模型、高效存储和灵活查询语言;2. 详细部署步骤,涵盖监控端、被监控主机及MySQL服务的配置;3. 数据可视化方案,通过Grafana展示监控数据并设置仪表板;4. 告警系统配置,包括Alertmanager部署和钉钉机器人集成。文章还提供了告警规则编写示例和常见监控指标表达式,帮助读者构建完整的监控告警体系。

2026-05-25 21:37:24 439

原创 Zabbix 7 概述与配置

Zabbix7企业级监控系统技术解析 摘要:Zabbix7作为新一代开源监控系统,实现了三大突破性升级:1)支持混合云原生架构,通过eBPF技术实现无埋点采集;2)性能显著提升,指标采集能力达100万/秒,查询速度提升50倍;3)采用Vue3重构UI,提供拖拽式可视化设计器。其核心价值在于从基础设施监控演进为可观测性平台,整合Metrics/Logs/Traces数据源,支持金融、制造等多行业场景。新架构引入ClickHouse时序存储和ProxyHA集群,在千万级节点监控场景下展现卓越性能

2026-05-21 20:46:13 382

原创 k8s-Helm管理器

Helm是Kubernetes的包管理工具,类似于apt/yum等包管理器。它将Kubernetes资源打包成Chart(图表),简化应用的安装、升级和回滚。Helm解决了原生kubectl管理多YAML文件的痛点,支持环境配置切换、版本控制和依赖管理。核心概念包括Chart(应用包)、Repository(仓库)和Release(运行实例)。常用命令如helm install安装、helm upgrade升级等。适用于部署复杂应用和管理多环境,但对简单服务可能过度。

2026-05-14 20:45:43 273

原创 K8S中的优先级

本文介绍了Kubernetes中Pod优先级和节点优先级的配置与应用。Pod优先级通过PriorityClass资源定义,支持抢占和非抢占两种策略,高优先级Pod可抢占低优先级资源。节点优先级包括静态优先级、亲和性优先级、服务质量优先级(QoS)和插件优先级四种类型,其中QoS分为Guaranteed、Burstable和BestEffort三个等级,决定资源不足时的Pod终止顺序。

2026-05-13 20:58:10 373

原创 K8S-特殊容器

Kubernetes中的Init容器和临时容器解析 Init容器是Pod中用于初始化工作的特殊容器,在主容器启动前按顺序执行,常用于服务依赖检查、配置初始化等场景。与普通容器不同,Init容器必须成功执行才会启动主容器,且具有独立生命周期。临时容器(Ephemeral Containers)则用于故障排查,特别是当主容器崩溃或缺少调试工具时,可通过临时容器进行交互式诊断。临时容器不保证资源分配,且创建后不可修改。两者都扩展了Pod的功能,Init容器确保应用依赖就绪,临时容器提供灵活的调试手段。

2026-05-12 21:26:27 443

原创 k8s的持久化存储

Kubernetes中Pod具有生命周期特性,为确保MySQL、Redis等数据库数据持久化,必须采用持久化存储方案。本文详细介绍了四种Kubernetes存储方案:emptyDir:临时存储卷,随Pod创建/删除而存在/消失,适用于临时数据存储场景 hostPath:节点级存储卷,数据在Pod删除后仍保留,但存在单点故障风险NFS:网络共享存储,解决单点故障问题,但NFS服务宕机会导致数据丢失PVC+PV:通过PersistentVolumeClaim动态申请存储资源,支持Retain/Delete

2026-05-11 20:55:37 388

原创 K8S-Ingress资源对象

Kubernetes Ingress 服务暴露方案解析 本文介绍了Kubernetes中通过Ingress暴露服务的解决方案。传统NodePort方式会占用大量集群端口,而LoadBalancer方式需要为每个服务单独配置LB。Ingress作为7层负载均衡器,通过定义路由规则实现多服务统一暴露,其核心组件包括: Ingress资源:定义请求转发规则 Ingress控制器:实现反向代理(如Nginx) 实践部分详细演示了: Ingress环境搭建

2026-05-11 20:48:15 535

原创 Docker常用配置

Docker安装与使用指南摘要 本文详细介绍了Docker的安装、配置和使用方法: 安装Docker:包括卸载旧版本、设置镜像仓库(推荐阿里云)、安装Docker CE社区版等步骤。 基本操作: 容器管理:启动/停止容器、查看日志、进入容器等 镜像管理:删除镜像、commit保存镜像、导入导出镜像 数据卷:匿名/具名挂载、数据卷容器实现数据共享 Dockerfile:指令详解(FROM、RUN、ADD等)和构建自定义镜像的步骤。

2026-05-04 22:00:44 512

原创 Docker存储与网络

本文介绍了Docker存储与网络的核心概念及实践方法。在存储方面,重点讲解了数据卷的两种挂载方式(主机目录挂载和数据卷容器)及其应用场景,包括数据备份/恢复、数据盘管理等操作。在网络方面,详细解析了Docker的四种网络模式(bridge、host、none和自定义网络),并演示了如何创建自定义网络、实现容器间通信以及端口映射等配置。文章还特别说明了不同网络模式下容器与外部网络的访问机制,为容器化应用的网络部署提供了实用指导。

2026-05-04 21:57:37 647

原创 K8S-Pod资源对象

摘要:本文详细介绍了Kubernetes中Pod的基本概念、创建过程、资源清单配置及常见状态分析。Pod是Kubernetes最小部署单元,包含一个或多个共享存储和网络的容器。文章阐述了Pod的创建流程(从API请求到最终调度),并详细解析了YAML资源清单中的关键字段。同时介绍了标签管理、资源限制配置以及三种探针(存活、就绪、启动)的使用方法。最后总结了Pod的六种状态(Pending、Running等)及其排障技巧,包括常见错误原因分析和解决方案

2026-04-29 21:10:44 571

原创 K8S-namespace资源对象

Kubernetes命名空间(namespace)是一种虚拟集群机制,允许在单个物理集群中隔离不同项目或团队的环境。本文介绍了命名空间的核心概念和操作方法:1)命名空间适用于多团队协作场景,默认包含kube-system等系统空间;2)通过kubectl命令或YAML文件可创建/删除命名空间;3)详细列举了Pod、Service等命名空间级资源;4)演示了通过ResourceQuota实现CPU/内存资源限额;5)提供了Finalizers机制处理命名空间删除异常的方法,包括手动移除finalizer的步骤

2026-04-27 21:10:57 332

原创 K8S-组件介绍

Kubernetes(k8s)是云原生容器编排平台,源自Google的Borg系统,现由CNCF基金会维护。它解决了Docker单机运行的痛点,提供集群管理、自动伸缩、服务发现等功能。k8s采用master/slave架构,核心组件包括API Server、Controller Manager、Scheduler等。其关键特性包含自我修复、滚动更新、存储编排等,通过Pod、Service、Deployment等抽象概念管理容器化应用。k8s已成为容器编排的事实标准,大幅简化了微服务的开发和部署流程。

2026-04-25 22:06:42 967

原创 Kubectl命令指南

本文介绍了Kubernetes命令行工具kubectl的核心使用方法。主要内容包括:1)kubectl基本命令格式和常用操作示例;2)Kubernetes资源类型及其管理方式;3)命令式管理方法(create/get/describe等)和声明式管理(YAML文件配置);4)常用容器管理命令(logs/exec/cp)和服务暴露方法。文章详细讲解了如何通过kubectl创建部署、暴露服务、查看资源状态等操作,并对比了命令式和声明式两种管理方式的区别与应用场景,是Kubernetes初学者的实用操作指南。

2026-04-25 21:58:42 574

原创 Docker私有仓库

Harbor是一个企业级Docker镜像仓库管理工具,基于VMware开源项目开发。它提供RBAC权限控制、镜像复制、漏洞扫描、LDAP/AD集成等功能,支持通过Docker Compose快速部署。Harbor由多个容器组件构成,包括UI、Registry、MySQL等,采用Nginx作为前端代理。部署时需要配置harbor.yml文件,设置主机IP、管理员密码等参数,并确保Docker版本符合要求。安装完成后可通过Web界面管理镜像,使用docker login/push命令进行镜像上传

2026-04-22 21:37:23 426

原创 Dockerfile文件

Dockerfile是用于构建Docker镜像的文本配置文件,通过一系列指令定义镜像的构建过程。主要指令包括:FROM指定基础镜像;RUN执行命令;ADD/COPY添加文件;CMD/ENTRYPOINT定义容器启动命令;EXPOSE声明端口;ENV设置环境变量;VOLUME创建挂载点;WORKDIR设置工作目录;USER指定运行用户。此外还有ARG传递构建参数、LABEL添加元数据等指令。文章详细介绍了各指令的语法和使用注意事项,如RUN应合并减少镜像层数、CMD与ENTRYPOINT的区别等

2026-04-22 21:32:26 540

原创 计算机网络技术

分层思想的核心理念是将复杂的系统或问题划分为多个独立的、相互关联的层级,每个层级有不同的功。在发送端,表示层会对数据进行必要的处理,如分割、压缩、加密等。在发送端,会话层会为数据添加一些会话控制信息,如会话标识符、状态等。在数据封装和解封装过程中,数据链路层主要负责添加和删除数据帧的。在发送端,数据链路层将数据分割成多个数据帧,并为每个数据帧添加首部和尾部。在数据封装和解封装过程中,物理层主要负责比特流的传输和接收。在发送端,物理层将比特流添加到数据帧的首部,形成一个新的数据单元。这个过程就是数据封装。

2026-04-21 21:03:43 425

原创 Docker命令与镜像、容器管理

Docker命令与容器管理摘要 Docker基础命令包括: 镜像管理:pull/push/build/images 容器操作:run/exec/ps/commit 网络管理:network/port 系统管理:system/info 核心概念: 镜像分层结构实现资源共享 Copy-on-Write机制保证镜像只读性 容器作为独立进程空间运行 常用操作流程: 通过Dockerfile构建镜像 使用run命令创建容器 通过exec进入运行中的容器 使用logs查看容器日志 通过stop/kill控制容器状态

2026-04-20 19:35:37 803

原创 Docker概述与安装

Docker是一个开源的应用容器引擎,允许开发者打包应用及依赖到可移植容器中,实现跨平台部署。文章首先介绍了Docker的基本概念、发展历程(2013年至今的四个阶段)和关键技术演进,包括容器运行时、构建系统、网络模型等方面的改进。其次阐述了Docker的架构组成(镜像、容器、仓库等)及其与虚拟机的区别(更轻量、启动更快)。最后详细说明了安装配置方法,包括镜像加速设置和daemon.json配置文件的各项参数(存储路径、网络配置、安全设置等)。Docker适用于Web应用打包、自动化测试、PaaS环境搭建等

2026-04-20 19:30:19 512

原创 LVS 基线检查与安全加固指南(附案例)

本文介绍了LVS负载均衡系统的安全基线检查与加固方案。主要内容包括:1)主机安全、网络配置、服务防护等关键检查项;2)操作系统内核参数优化、LVS部署加固(DR模式)、防火墙策略配置等具体加固措施;3)针对DDoS攻击的防护案例,包含SYNPROXY启用、限流策略和自动化防护脚本;4)通过ARP抑制验证、攻击模拟测试和流量监控来检验加固效果。方案强调纵深防御、最小化暴露面和自动化防护,提供了从系统配置到实战防护的完整安全解决方案。

2026-04-16 21:35:29 517

原创 LVS负载均衡集群理论详解

文章摘要: 集群是由多台独立计算机通过高速网络互联组成的系统,能够以单一系统模式管理,提供高性能、高可用性和负载均衡服务。主要集群类型包括负载均衡集群(如LVS、Nginx)、高可用集群(如HA)和高性能计算集群(如HPC)。LVS(Linux Virtual Server)是一种高效的负载均衡技术,支持NAT、TUN和DR三种工作模式,具有高性能、可扩展性和稳定性,适用于大规模网络服务。IPVS模块是LVS的核心,通过IPVSadm工具管理集群服务和节点。相比Nginx,LVS在性能和负载能力上更具优势

2026-04-16 21:31:40 710

原创 OpenResty介绍与实战

OpenResty是一个基于Nginx与Lua的高性能Web平台,集成了大量Lua库和第三方模块,支持超高并发Web应用开发。文章详细介绍了OpenResty的安装方法、工作原理(基于Nginx的11个处理阶段)及其核心功能模块,包括ngx_lua、ngx_stream_lua等11个主要模块的使用示例。通过具体配置案例展示了OpenResty在内容生成、API访问控制、Redis交互等方面的应用,体现了其将Lua脚本嵌入Nginx配置实现动态处理的强大能力。

2026-04-15 14:18:09 578

原创 Nginx后端节点的健康检查

本文介绍了Nginx后端节点健康检查的实现方法。首先讲解了Nginx原生模块(ngx_http_proxy_module和ngx_http_upstream_module)的故障转移机制,包括proxy_next_upstream等指令的配置,但指出其存在检测效率低、转发浪费等问题。然后重点介绍了淘宝技术团队开发的nginx_upstream_check_module模块,详细说明了其配置参数如interval、rise、fall等,以及支持的各种检查类型(tcp/http/mysql等)。

2026-04-15 14:11:53 368

原创 Nginx反向代理与缓存功能

本文详细介绍了Nginx的正向代理和反向代理功能。正向代理客户端,用于访问受限资源、隐藏真实IP等;反向代理代理服务端,提供负载均衡、缓存、动静分离等功能。重点阐述了反向代理的配置方法,包括proxy_pass参数、IP透传、负载均衡算法(轮询、加权轮询、ip_hash等)以及防盗链设置。通过实战案例展示了如何配置单台/多台服务器代理、动静分离、缓存功能等。还介绍了Nginx解决跨域问题的原理和配置方法,以及基于Referer机制的防盗链实现。文章提供了完整的配置示例和测试方法,帮助读者全面掌握Nginx

2026-04-14 19:32:52 442

原创 Nginx Web服务

Nginx是一款高性能的开源Web服务器和反向代理服务器,具有高并发、高可靠性和热部署等特点。文章详细介绍了Nginx的核心功能、工作原理、安装配置及常见应用场景。主要内容包括:Nginx作为静态服务器、虚拟主机和反向代理的作用;通过yum和源码两种安装方式;核心配置文件nginx.conf的结构解析;常用命令和信号管理;虚拟主机配置(基于IP、域名和端口);HTTPS自签名证书配置;location匹配规则与rewrite重定向;以及状态统计模块的编译与配置。文章提供了丰富的配置案例,适合从入门到进阶的系

2026-04-14 19:20:54 1192

原创 Tomcat服务

本文全面介绍了Tomcat应用服务器的核心概念、架构原理、安装配置及高可用方案。主要内容包括:1. Tomcat概述:作为Apache基金会开源的轻量级Web应用服务器,支持Servlet/JSP规范;2. 架构分析:详细解析HTTP工作原理、Tomcat整体架构(Connector和Container)、Coyote连接器及Catalina容器组件;3. 安装配置:提供单实例/多实例部署指南,深入解读server.xml等核心配置文件;4. 高可用方案:通过Nginx反向代理实现Tomcat集群负载均衡,

2026-04-13 19:47:17 603

原创 文件共享服务器

文件传输协议(file transfer protocol,FTP),基于该协议 FTP 客户端与服务端可以实现共享文件、上传文件、下载文件。FTP 基于 TCP 协议生成一个虚拟的连接,主要用于控制 FTP 连接信息,同时再生成一个单独的 TCP 连接用于 FTP 数据传输。用户可以通过客户端向 FTP 服务器端上传、下载、删除文件,FTP 服务器端可以同时提供给多人共享使用。FTP 服务是 client/server(简称 C/S)模式,基于 FTP 协议实现 FTP 文件对外共享及传输的软

2026-04-13 19:35:28 365

原创 SELinux安全上下文

SELinux是Linux内核的强制访问控制系统,通过安全上下文实现细粒度权限控制。摘要介绍了SELinux的三种工作模式(Enforcing/Permissive/Disabled)及切换方法,核心命令包括getenforce、setenforce等。重点讲解了安全上下文管理(ls-Z/chcon/restorecon)、端口绑定(semanage port)和布尔值(getsebool/setsebool)等关键操作,并提供了Web服务403错误等常见问题的解决方案。最后强调调试时应优先使用Permis

2026-04-12 15:27:39 328

原创 nmcli命令使用及说明

摘要:本文详细介绍了NetworkManager命令行工具nmcli的使用方法,包括基本命令格式、常用选项和操作对象。主要内容涵盖网络连接状态查看、接口管理、IP/DNS配置等常用操作,同时对比了多种网络配置方法:通过修改keyfile配置文件、使用nmtui界面工具、nmcli命令行以及ip临时配置。文章还提供了系统服务管理命令和配置文件说明,特别强调了配置时的注意事项,如避免直接修改配置文件、配置冲突处理等。不同方法的适用场景和优缺点也有简要说明,为Linux系统网络管理提供了全面的参考指南。

2026-04-12 15:23:44 458

原创 Rsync+sersync 实现数据实时同步故障排查

本文详细介绍了Rsync+sersync实时同步系统的故障排查方法,包含六个主要部分:基础检查流程(服务状态、网络端口)、配置验证(关键配置检查)、详细诊断方法(调试模式、同步测试)、高级诊断工具(网络抓包、性能监控)、常见问题解决方案(同步不触发、认证失败等)以及维护检查清单。重点强调inotify监控范围、rsync权限配置和网络连通性三个核心环节的检查,并提供了从基础到高级的完整诊断流程,帮助系统管理员快速定位和解决文件同步问题。

2026-04-11 16:17:34 427

原创 Rsync+sersync实现数据实时同步

Rsync是一款Linux下的高效数据备份工具,支持远程同步、全量/增量备份,能保持文件属性并压缩传输。其采用C/S模式,通过873端口通信,支持push(服务器主动推送)和pull(客户端主动拉取)两种同步方式。部署时需安装xinetd和rsync服务,配置/etc/rsyncd.conf定义同步参数。结合sersync可实现实时增量同步,sersync监控文件变化,rsync仅同步变更部分,大幅提升效率。典型应用包括配置密码文件实现免密同步、设置定时任务自动化备份,以及通过firewalld开放873端

2026-04-11 16:13:34 582

原创 SSH故障排查与运维案例实战指南

SSH运维故障排查与优化指南 本文系统梳理了SSH运维中的典型故障场景及解决方案。主要内容包括: 故障分类框架:将常见问题分为连接失败、连接缓慢和会话异常三大类 核心排查方法:提供网络诊断、认证调试、性能分析等关键命令速查表 典型案例解析:详细分析密钥认证失败、连接缓慢等问题的排查过程 优化配置方案:涵盖安全强化、性能调优、防火墙规则等高级配置 自动化运维工具:包含密钥批量部署、暴力破解防护等实用脚本 安全基线要求:明确SSH服务配置的最低安全标准 通过系统化的故障树分析和标准化处理流程,可显著提升SSH运

2026-04-10 22:18:57 401

原创 SSH远程管理工具

摘要:SSH是一种安全的远程管理协议,CentOS7默认安装openssh软件包,提供ssh、scp、sftp等服务。服务端配置文件sshd_config可设置端口、登录验证方式等参数,客户端通过ssh命令连接。登录方式包括密码验证和公钥验证,后者通过ssh-keygen生成密钥对,使用非对称加密确保安全。scp命令可实现远程文件传输,sftp提供安全的文件传输服务。实操中可通过ssh-copy-id配置公钥登录,实现不同用户间的安全远程访问。(149字)

2026-04-10 22:15:32 318

原创 MySQL数据库基础

本文摘要: MySQL是一种关系型数据库管理系统,用于存储和管理结构化数据。文章首先介绍了数据库的基本概念、发展历程和类型,包括关系型数据库(如MySQL、Oracle)和非关系型数据库(如Redis、MongoDB)。接着详细讲解了MySQL的安装配置、常用命令操作、数据类型(整型、字符串、日期等)以及SQL语言分类(DDL、DML、DCL、DQL)。此外还涵盖了用户权限管理、备份恢复策略(冷备、热备、增量备份)和常用备份工具(mysqldump、XtraBackup等)。最后附录了MySQL配置文件和内

2026-04-09 19:31:39 777

原创 DNS服务管理

DNS服务配置与智能解析指南 本文详细介绍了DNS服务的基本概念、配置流程和智能解析实现方法。主要内容包括: DNS基础:解析过程、服务器类型分类及记录类型说明 单点架构配置:主配置文件修改、区域文件创建及解析测试 主从架构搭建:主从服务器配置及同步机制 智能解析实现:基于客户端IP的分区域解析配置,包含视图定义、区域文件创建和测试方法 高级配置选项:多视图配置、日志记录和动态更新控制 配置过程涵盖从软件安装、文件修改到服务启动的全流程,并提供了详细的故障模拟测试方案。通过智能解析配置,可实现根据客户端网络

2026-04-08 18:22:25 758

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除