自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Prometheus监控系列-- 进阶阶段 | 高级操作 | 配合Grafana | 邮箱报警 | 参数说明

PrometheuszibbixZabbix 组件prometheus 数据模型promethues 安装zibbixzabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。1、zabbix由zabbix-server服务端和zabbix-agent监控端组成。2、Zabbix支持的通信方式*agent (代理) :专用的代理服务方式进行监控,专属的协议,装有zabbix-agent的主机就可以被zabbix-server监控。主动或被动的方式,把数据给

2021-06-12 22:48:54 1922 2

原创 Prometheus监控系列--“普罗米修斯“ 入门 | 初识 | 简述 | 超详细

Prometheus监控软件常见的监控软件1.Cacti2.Nagios3.zabbix4.prometheus5.open-falcaon运维监控平台设计思路监控体系系统层监控中间件及基础设施类监控消息中间件:应用层监控业务层监控Prometheus 简介使用场景常见的监控软件1.CactiCacti (英文含义为仙人掌)是一套基于PHP,MysQL,SNMP和RRDtoo1开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用RRDtool绘图,但使用者无须了解RRDtool

2021-06-08 16:26:40 6660

原创 Docker系列-- docker安全 | 架构缺陷 | 安全基线标准 | 解读分析

docker安全 | 架构缺陷 | 安全基线标准 容器与虚拟机的区别1.隔离与共享2.性能与损耗Docker存在的安全问题1.Docker 自身漏洞2.Docker 源码问题Docker 架构缺陷与安全机制1.容器之间的局域网攻击 :2.DDoS 攻击耗尽资源 :3.有漏洞的系统调用:4.共享root用户权限:Docker 安全基线标准1:内核级别2.主机级别3.网络级别4.镜像级别5.容器级别6.其他设置其他事项1.容器最小化2.Docker remote api 访问控制3.限制流量流向4.镜像安全容

2021-06-07 15:45:53 1321

原创 Kubernetes系列--Kubectl 命令管理 | 参数详解

Kubectl 命令管理Kubectl 命令管理Kubectl 帮助信息Kubectl 管理项目命令kubectl run 命令查看Pods状态查看资源创建的位置查看所有资源信息kubect delete 删除命令删除资源删除nginx-deployment项目周期流程① 创建nginx② 发布nginx(service提供负载均衡的功能)③ 版本更新④ 回滚⑤ 删除总结:Kubectl 命令管理Kubectl 帮助信息命令:kubectl --help常用的命令:create:创建资源(可

2021-06-06 23:34:12 2058 1

原创 Kubernetes系列---Kubernetes dashboard部署 | 命令参数 | 详解

dashboard部署一、Kubectl 概述1.1 kuerber 命令行的语法① command:② TYPE:③ NAME:Ⅰ 通过类型和名称指定资源:若分别指定多个资源类型:Ⅱ 若需要使用一个或多个文件指定资源:④ flags:1.2 Kubectl 常用命令1.3kubectl 输出选项二、Kubernetes dashboard 部署一、Kubectl 概述kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理(删除、更新、回滚)控制着Pod的生命周

2021-06-06 23:33:48 1151

原创 Kubernetes系列---Kubernetes 多节点部署 | 超详细

(master 多节点、Nginx/keepalived)Kubernetes 多节点部署 (基于单节点)1.拷贝 K8S 工作目录、组件启动脚本至 master022.master02 修改文件3.搭建 nginx/keepalived4.node 节点修改配置文件5.master 创建 pod 用以测试6.node 节点访问 nginx 页面Kubernetes 多节点部署 (基于单节点)1.拷贝 K8S 工作目录、组件启动脚本至 master02----master01----'//首先在ma

2021-06-06 23:33:21 858

原创 Kubernetes系列--- ETCD + Flannel | 单节点部署 | 超详细

一、实验环境本实验需求为3个节点即可,配置2+4(2个CPU+4G内存)主机角色分配为:① master 节点IP:192.168.78.55需安装的软件:kube-apiserverkube-controller-managerkube-scheduleretcd② node1 节点IP:192.168.78.66需安装的软件:kubeletkube-proxydockerflanneletcd③ node2 节点IP:192.168.78.7

2021-06-06 23:32:33 1899

原创 Kubernetes系列---Kubernetes 理论知识 | 初识 | 超详细

Kubernetes1.K8s 是什么?2.K8s 特性3.小拓展(业务升级)4.K8s 集群架构与组件①架构拓扑图:②Master 组件③Node 组件5.K8s 核心概念6.官方提供的三种部署方式minikube:kubeadm:二进制包:7.flannel 网络Kubernetes,简称 K8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用其技术难度与入门门槛较高,学习之前,建议掌握以下基础:*熟悉 Linux 基础命令*熟悉 Docker 基本管理*了解 SSL 证书工作原理

2021-06-06 23:31:58 3945 2

原创 Docker系列---docker cgroup资源管理 | TLS通讯加密 | 详细讲解

Cgroup前言 - Cgroup一、对 CPU 的控制1.使用 stress 工具测试2.限制 CPU 使用周期速率3.多任务比例分享 CPU4.限制 CPU 内核使用二、对内存使用的限制三、对磁盘 IO 资源的限制四、TLS 通讯加密1.密钥①对称密钥②非对称密钥③混合密钥(对称+非对称)五、Docker 启用 TLS 进行加密通讯1.TLS 概述2.TLS 原理2.部署步骤前言 - CgroupDocker 提供了一种资源控制的方式,即 CgroupCgroup 是 Control group

2021-06-04 16:28:17 243

原创 Docker系列---Docker Harbor | 私有仓库 | 故障解决 | 详情

Harbor一、Docker Harbor 概述1.Harbor 简介2.Harbor 的优势二、Harbor 的核心组件三、Docker Harbor 私有仓库架构拓扑四、Harbor 构建 Docker 私有仓库实战环境案例需求部署步骤①安装docker-ce docker-compose②启动 harbor 服务③harbor.cfg 配置文件详解④查看 harbor 启动镜像及容器⑤访问 harbor Web 页面→登录→项目→+项目(新建项目)⑥harbor 服务端进行测试⑦client 客户端测

2021-06-03 23:55:18 823 1

原创 Docker系列---服务架构consul | 参数讲解 | 详细说明

Consul一、Consul 概述1.1、Consul 简介1.2、Consul 使用场景1.3、Consul 优势1.4、consul 端口的了解1.5:基于nginx和consul构建高可用及自动发现的Docker服务架构二:Docker consul自动发现服务架构准备环境在192.168.78.11安装部署consul192.168.78.22节点 安装Gliderlabs/Registrator在192.168.78.11 安装consul-templateconsul 多节点配置一、Consu

2021-06-03 18:21:17 824

原创 Docker系列---docker_Compose_Tomcat 容器编排

Tomcat 容器编排docker_Compose_Tomcatdocker_Compose_Tomcatvim docker-compose.ymlversion: '3'services: tomcat: hostname: tomcat build: context: ./tomcat dockerfile: Dockerfile ports: - 12306:8080 networks: - mynetwo

2021-06-02 23:21:39 218

原创 Docker系列---docker 数据管理 | 数据卷容器 | 容器互联 | 详解

docker 数据管理 | 数据卷容器 | 容器互联 Docker 数据管理数据卷①创建数据卷②挂载宿主机目录作为数据卷数据卷容器Docker 网络通信端口映射容器互联自定义网络创建容器互联Docker 数据管理在 Docker 中,为了方便查看容器内产生的数据或将多个容器中的数据实现共享,就涉及到容器的数据管理操作数据卷数据卷是一个供容器使用的特殊目录,位于容器中,对数据卷的修改操作立即可见,并且更新数据不会影响到镜像,从而实现数据在宿主机与容器之间的迁徙类似于 Linux 中对目录

2021-06-02 19:41:30 244

原创 Docker系列--- docker 私有仓库 | 创建 | 使用 | 详解

docker 私有仓库①下载 registry 镜像②指定镜像仓库地址③创建 registry 容器并开放端口④给镜像打标签后上传⑤获取私有仓库列表查看是否上传成功⑥从私有仓库下载镜像①下载 registry 镜像docker pull registry②指定镜像仓库地址vim /etc/docker/daemon.json{ "insecure-registries": ["192.168.78.11:5000"], '//添加此段,本机IP地址' "registry-mirror

2021-06-02 17:34:47 669

原创 Docker系列---Docker Compose | 容器编排 | 理论详解

Docker Compose一、Docker Compose 概述(YML)二、Docker Compose 安装三、Docker Compose 配置常用字段四、Docker Compose 常用命令五、基于 Compose 创建 镜像1.首先安装好Compose2.使用Dockerfile环境:3.使用docker-compose.yml定义构成应用程序的服务4.执行docker-compose up命令5.查看镜像及容器状态6.编辑首页文件后访问测试7.一个完整的内容一、Docker Compos

2021-06-02 16:47:38 256

原创 Docker系列---dockerfile方式 | 编写镜像 | 参考模板 | 说明详细

镜像模板mysql 模板nginx 模板Tomcat 模板ssh 模板mysql 模板在 root目录里面创建mysql目录 创建dockerfile my.cnf 文件#Dockerfile文件FROM centos:7MAINTAINER darkRUN yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake makeRUN useradd -M -s /sbin/nologin mysqlADD mysql-5

2021-06-01 23:29:17 308 1

原创 Docker系列---网络模式 | Dockerfile | 参数讲解 | 详细说明

网络模式 | DockerfileDocker 原生网络网络模式Docker 四种网络模式Host 模式Container模式None模式Bridge模式Docker 网络自定义查看网络列表自定义网络固定IP暴露端口在宿主机环境执行容器内命令systemctl 命令Docker 镜像分层Docker 原生网络lo0:回环网卡、TCP/IP网卡是否生效virbr0 自身继承了一个虚拟化功能(KVM 架构),原生架构的一个虚拟化平台,安装了一个虚拟化平台之后就会自动安装虚拟网卡docker

2021-05-31 23:25:41 2771 4

原创 解决:openstack-dashboard-登陆后显示报错

故障问题:openstack-dashboard-登陆后显示报错故障代码:RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable.解决方法:1.查看日志vim /var/log/httpd/openstack_dashboard-error.log 2.修改dashboard配置文件vim /etc/openstack-dashboard/local_setti

2021-05-29 22:14:46 3898 1

原创 Docker系列--- Docker 基本操作 | 详细讲解

一、Docker 镜像操作前言:Docker 运行容器前需要本地存在对应的镜像,如果不存在本地镜像,Docker 就会尝试从默认镜像仓库【https://hub.docker.com】下载,这是 Docker 官方维护的一个公共仓库,可以满足用户的绝大部分需求当然了,用户也可以通过配置来使用自定义的镜像仓库镜像工作流程1, docker client客户端连接到了服务端(服务端是以一个守护进程的形式跑在操作系统里面的) restful api典型的c/s架构2、由docker服务端的守护进

2021-05-28 16:56:04 368

原创 Docker系列--- Docker 概述 | 入门 | 安装 | 详细讲解

Docker 概述 | 入门 | 安装一、Docker 概述二、Docker 容器与传统虚拟化的比较①Docker 的优点②Docker 与传统虚拟机相比具有显著的优势三、Docker 的核心概念四、名称空间Docker 架构五、安装Docker1.安装相关依赖包2.设置阿里云镜像3.启动docker4.检查docker版本5.镜像加速一、Docker 概述Docker 是在 Linux 容器里运行应用的一种开源工具,是一种轻量级的虚拟机,诞生于 2013 年Docker 项目加入了 Linux

2021-05-28 14:44:08 422

原创 云系列---OpenStack-Dashboard | 参数说明 | 详细讲解

OpenStack-Dashboard组件部署流程安装OpenStack-Dashboard修改dashboard配置文件重启Apache服务重启 memcache 服务验证操作安装OpenStack-Dashboard yum -y install openstack-dashboard httpd#因为在CT控制节点已安装httpd服务,而Dashboard控制台也需要httpd支持,所以此处可以在C1节点进行安装httpd修改dashboard配置文件#修改local_setting本地

2021-05-27 16:51:58 900

原创 云系列---Openstack Neutron组件 | 参数说明 | 详细讲解

Openstack Neutron前言linux 虚拟网络linux 虚拟网桥虚拟局域网linux网路虚拟化开放虚拟交换机什么是 QOS?openstack 网络基础服务前言网络是openstack最重要的资源之一,没有网络,虚拟机将被隔离。Openstack的网络服务最主要的功能就是为虚拟机实例提供网络连接,最初由nova的一个单独榜块nova-compute实现,但是nova-compute支持的网络服务有限,无法适应大规模、高密度和多项目的云计算,现已被专门的网络服务项目Neutron所取代。

2021-05-27 16:51:28 1076

原创 云系列---OpenStack-cinder 组件部署 |参数说明 | 详细讲解

OpenStack-cinder 组件一、创建数据库实例和角色二、创建用户、修改配置文件给v2和v3版本的api创建endpointyum 安装cinder 服务修改cinder 配置文件同步cinder数据库(填充块存储数据库)修改 Nova 配置文件,并重启服务。配置Cinder服务配置控制节点验证三、在计算节点c2配置Cinder(存储节点)创建lvm物理卷和卷组重启lvm服务配置cinder模块开启cinder卷服务查看卷列表小结:一、创建数据库实例和角色mysql -uroot -p1CRE

2021-05-27 16:50:54 1121

原创 解决 systemctl openstack-nova-compute.service开启失败

故障现象:openstack-nova 计算节点 systemctl openstack-nova-compute.service 开启失败systemctl start libvirtd.service openstack-nova-compute.serviceJob for openstack-nova-compute.service failed because the control process exited with error code. See "systemctl status

2021-05-24 19:59:50 5971

原创 解决 openstack-nova-scheduler/conductor 开启失败

故障问题:openstack-nova-scheduler/conductor 开启失败systemctl start openstack-nova-api.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.serviceJob for openstack-nova-scheduler.service failed because the control

2021-05-24 19:59:23 9498 10

原创 云系列---Openstack Nova组件 | 参数说明 | 详细讲解

Openstack Nova组件一、Nova 概念二、Nova 系统架构三、Nova 组件详讲1.API 讲解2.Scheduler 讲解调度器类型过滤调度器调度过程过滤器类型Scheduler-权重3.Compute 讲解4.Conductor 讲解四、虚拟机实例化流程控制台接口五、Nova 部署架构Nova 经典部署模式Nova 负载均衡部署模式Cells V2的架构cell的功能cell 两种模式cell工作原理六、Nova 元数据七、openstack-Nova 部署【nova组件部署位置】【 控制

2021-05-24 19:58:47 2597 2

原创 云系列--- Openstack Placement组件 | 参数说明 | 详细讲解

Placement前言一、创建数据库实例和用户二、创建 Placement 服务用户和 API 的 endpoint1.创建placement用户2.让placement用户对service项目拥有admin权限3.创建一个placement服务,服务类型为placement4.注册API端口到placement的service中三、安装 Placement 服务及修改配置文件1.安装服务2.修改placement配置文件3.检查placement配置文件四、导入数据库及修改 Apache 配置文件1.导入

2021-05-24 19:58:25 2845

原创 云系列---Openstack Glance 组件部署 | 参数说明 | 详细讲解

Openstack Glance 组件部署镜像服务概述镜像服务功能images API的版本镜像格式镜像文件容器格式镜像状态访问权限Glance 架构图Glance 工作流程:OpenStack-Glance组件部署1.创建数据库实例和数据库用户[root@ct ~]# mysql -u root -p2.创建用户、修改配置文件创建镜像服务 API 端点安装 openstack-glance 软件包修改glance配置文件添加glance-api.conf配置修改glance-registry.conf 配

2021-05-21 15:40:38 664 3

原创 云系列---Openstack Keystone组件部署 | 参数说明 | 详细讲解

Keystone 身份安全认证模块Keystone 身份安全认证模块Keystone 模块功能keystone 相关概念keystone 认证流程Openstack Keystone 环境部署1.创建数据库实例和数据库用户2.安装、配置keystone、数据库、Apache3.初始化认证服务数据库4.初始化fernet 密钥存储库5.配置bootstrap身份认证服务6.配置Apache HTTP服务器7.创建配置文件8.开启httpd服务9.配置管理员账户的环境变量创建OpenStack 域、项目、用户和

2021-05-20 15:09:19 656 1

原创 解决 RabbitMQ 报错: Error: unable to connect to node rabbit@localhost: nodedown

问题:openstack RabbitMQ环境部署,创建 openstack用户 ,出现的报错提示:Error: unable to connect to node rabbit@localhost: nodedown解决方案:查询mq的进程ps -ef | grep rabbitmq将mq的进程杀掉ps -ef | grep rabbitmq | grep -v grep | awk '{print $2}' | xargs kill -9启动mqrabbitmq-server -det

2021-05-19 15:53:50 999

原创 云系列---Openstack 环境部署 | 参数说明 | 详细讲解

Openstack 环境部署虚拟机配置要求基础环境配置1.配置阿里源脚本2.修改主机名及关闭防火墙/安全机制3.安装相关环境依赖包4.调优 NAT 网卡及配置 DNS 映射5.免交互及配置 DNS6.配置时间同步系统环境配置(192.168.61.55):1.安装及配置 MariaDB2.安装 RabbitMQ3.安装 memcached4.C1、C2 (192.168.61.66/77)安装 OpenStack 组件虚拟机配置要求主机CPU 内存硬盘双网卡操作系统控制节点

2021-05-19 15:45:45 1021

原创 云系列---Openstack概念讲解 | 初识 | 入门概述

云计算概述1.简介云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问进入可配置的计算资源共享池(资源包括:网络、服务器、存储、计算、应用软件等服务),这些资源能够被快速提供,只需提供很少的管理工作,或只用与服务供应商进行很少的交互狭义的云计算是指 IT 基础设施的交付和使用模式广义的云计算是指服务的交付和使用模式2.特点① 超大规模"云"具有相当的规模企业私有云一般般拥有数百上千台服务器,能给用户提供前所未有的计算能力② 虚拟化云计算支持用户

2021-05-13 14:48:03 460

原创 Linux ELK日志分析系统 | logstash日志收集 | elasticsearch 搜索引擎 | kibana 可视化平台 | 架构搭建 | 超详细

ELK日志分析系统 | logstash日志收集 | elasticsearch 搜索引擎 | kibana 可视化平台ELK 日志分析系统Elasticsearch 介绍1.概述2.核心概念2.1 接近实时(NRT)2.2 集群(Cluster)2.3 节点(node)2.4 索引(index)2.5 类型(type)2.6 文档(document)2.7 分片(Shard)2.8 副本(Replicas)2.9 小结Logstash 介绍Kibana 介绍1.概述2.主要功能拓展:EFKELK架构搭建环

2021-05-11 17:49:42 863

原创 虚拟机VM 15.5.1 安装 MacOS10.13全网最详细的教程 | 让你体验黑苹果的风采 | 让你ZB让你飞的操作

虚拟机VM 15.5.1 安装 MacOS10.13**环境准备:****安装步骤 :**1.安装虚拟机 15.5.12.安装虚拟机扩张包3.MacOS虚拟机配置4.修改MacOS虚拟机配置文件,再启动(此步骤很重要)5.开启虚拟机,安装系统`此步骤会遇到,磁盘无法识别问题,只需要格式化`6.图像化初始设置7.解决全屏问题环境准备:虚拟机15.5.1 (提供平台)MacOS10.13vm toolsmacOS_Mojave_darwin (解决全屏)unlocke

2021-05-23 22:41:30 1105

原创 linux KVM虚拟化技术理论 | KVM虚拟化安装 | 详细讲解

KVM虚拟化技术一、虚拟化技术1.概述2.发展历程3.类型4.特点5.相关二、KVM1.概述2.原理3.虚拟化架构4.工作流程5.虚拟化前后对比三、部署 KVM 虚拟化平台一、虚拟化技术1.概述虚拟化是一个广义的术语在计算机的方面,即虚拟化技术能够将一台计算机从内部虚拟化成多台逻辑意义上的计算机,即在一台计算机上能够同时运行多台逻辑计算机,且每台逻辑计算机都可以运行不同的操作系统程序,应用程序可以在相互独立的空间内运行而互相不受影响,从而提高计算机整体的工作效率在一个操作系统(Windows

2021-05-12 17:05:29 753

原创 linux GlusterFS文件系统 | GFS分布式文件系统群集部署 | 超详细

GlusterFS文件系统 | GFS分布式文件系统群集部署GlusterFS简介GlusterFS特点GlusterFS术语GlusterFS构成后端存储如何定位文件GFS支持的七种卷GFS部署`1.集群环境``2.更改节点名称``3.节点进行磁盘挂载,安装本地源``4.Hosts文件创建映射关系``5.创建GFS本地安装源``6.添加节点创建集群``7.根据规划创建卷``1.创建分布式卷``2.创建条带卷``3.创建复制卷``4.创建分布式条带卷``5.创建分布式复制卷``6.查看GFS创建列表``8.

2021-05-10 18:59:57 1145

原创 linux rsync远程同步 | rsync+inotify实时同步 | 详细讲解

rsync远程同步 | rsync+inotify实时同步rsync简介同步方式:本地复制:rsync同步源配置rsync源rsync简介Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。Rsync软件适用于unix/linux/windows等多种操作系统平台。Rsync是一个快速和非常通用的文件复制工具。它能本地复制,"远程复制,或者远程守护进程方式复制。它提供了大量的参数来控制其

2021-05-10 13:48:56 3071

原创 Linux Redis主从复制 | 哨兵监控模式 | 集群搭建 | 超详细

Redis主从复制 | 哨兵监控模式 | 集群搭建 Redis 主从复制`主从复制的概念``主从复制的作用``主从复制的流程``主从复制的搭建``1. 环境部署``2.安装Redis(主从服务器)``3.修改Master节点Redis配置文件(192.168.78.11)``4.修改Slave节点Redis配置文件(192.168.78.22)、(192.168.78.33)``5.验证主从效果`Redis 哨兵模式`哨兵模式的原理``哨兵模式的作用``哨兵模式的结构``哨兵模式的搭建``1.环境配置``2

2021-05-08 16:40:22 386 1

原创 linux Redis数据类型 | string类型 | List列表类型| Hash散列类型 | Set无序集合 | Sorted Set有序集合 | 超详细 |

Redis数据类型String数据类型List数据类型String数据类型概述:String是redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等set/get/append/strlenset #创建get #获取append #追加 append命令是往一个key追加value。如果没有key,则创建一个并且设置valuestrlen #获取字符长度incr/

2021-05-07 15:30:41 235

原创 linux Redis 持久化概念 | AOF持久化 | RDB持久化 | 性能管理 | 超详细

Redis 持久化概念`Redis 持久化功能:``Redis 提供俩种方式进行持久化原理:``AOF与RDB持久化区别:``RDB持久化:`1.触发条件1.1手动触发1.2自动触发2.执行流程3.启动时加载` AOF 持久化:`1.开启 AOF2.执行流程2.1命令追加(append)2.2 文件写入(write)和文件同步(sync)2.3文件重写(rewrite)2.3.1文件重写能够压缩 AOF 文件的原因2.3.2文件重写的触发3.启动时加载RDB 与 AOF 的优缺点RDB 持久化优点:缺点:A

2021-05-06 15:47:08 422

空空如也

空空如也

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

TA关注的人

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