- 博客(56)
- 收藏
- 关注
原创 非常详细的Kubernetes多master节点操作
Kubernetes-----多master节点操作文章目录前言一、多节点群集介绍二、搭建master2节点三、部署负载均衡四、Pod创建五、dashboard创建前言上次我们已经介绍了如何部署Kubernetes单节点的二进制部署,今天我们就来看看如何再增加一个master节点操作一、多节点群集介绍架构图,上次已经架构了单master节点,现在只需要在增加一个master节点即可,然后配置nginx介绍区别于单master的二进制集群,多master集群对master
2020-11-27 12:03:39
4690
原创 针不戳----Kubernetes单节点部署
针不戳----Kubernetes单master节点二进制部署文章目录前言一、单节点架构二、组件介绍三、具体部署3.1:部署 Etcd 集群3.2:node 节点安装 docker 组件3.3:flannel 网络配置3.4:部署 master 组件3.5:部署 node 组件3.6:查看集群状态前言Kubernetes 的主要服务程序都可以通过直接运行而今只能怪文件加上启动参数完成运行。在 Kubernetes 的 Master 上需要部署 etcd、kube-apiserver
2020-11-25 23:24:58
519
原创 Docker之镜像与容器
Docker容器之初步上手文章目录前言一、Docker容器镜像操作1.1:镜像加速1.2:镜像操作1.3:容器操作前言上回我们已经介绍了如何安装docker容器服务,今天我们就来讲解下怎么日常操作docker。一、Docker容器镜像操作首先我们要了解下Docker核心概念镜像一个面向Docker容器引擎的只读模板容器从镜像创建的运行实例仓库集中保存镜像的地方1.1:镜像加速假如我们使用默认安装,Docker会通过默认方式下载镜像文件,在这个过程
2020-11-18 22:27:04
359
原创 Docker进阶之Cgroup介绍
Docker进阶之Cgroup介绍文章目录前言一、Cgroup介绍二、CPU控制1.1:CPU优先级限制1.2:CPU周期限制1.3:CPU Core 控制1.4:CPU 配额控制参数的混合使用三、内存控制四、磁盘控制4.1:Blocak IO 的限制4.2:bps 和 iops 的限制前言CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组 (process groups) 所使用的物力资源 (如 cpu memory
2020-11-18 11:03:25
376
原创 如何构建你的Harbor私有图形化用户界面仓库
如何构建你的Harbor私有图形化用户界面仓库文章目录前言一、Harbor介绍二、Harbor部署三、本地镜像上传四、其他客户端上传五、用户管理六、遇到的问题前言Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。一、Harbor介绍作为一个企业级私有 Registry 服务器,Harbor
2020-11-17 09:45:53
514
原创 超详细的Nginx之rewrite
Nginx如何rewrite文章目录前言一、Rewrite介绍1.1:Rewrite跳转场景1.2:Rewrite跳转实现1.3:Rewrite实际场景1.4:Nginx正则表达式二、Rewrite命令介绍2.1:Rewrite命令语法2.2:flag标记说明2.3:last和break的区别三、location介绍3.1:location的分类3.1.1:正则匹配的常用表达式3.2:location优先级3.3:比较rewrite和location3.4:location
2020-11-11 23:34:49
787
原创 Docker初上手之部署
Docker初上手之部署文章目录前言一、国内源Docker部署1.1:开局优化1.2:配置环境1.3:安装Docker前言作为当下最火的容器平台,上回我们已经介绍了Docker容器的原理,今天我们就来看看如何布置Docker。一、国内源Docker部署1.1:开局优化这边我们以安装19版的docker为例关闭防火墙已经核心防护[root@docker ~]# systemctl stop firewalld && systemctl disable firewa
2020-11-09 23:42:46
99
原创 Docker容器初体验之旅
Docker初体验前言一、Docker是什么二、Docker与虚拟机的区别三、Docker的优点四、Docker的使用场景前言Docker 是世界领先的软件容器平台。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用 Docker 可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。
2020-11-09 19:51:04
413
原创 一看就废的Squid传统代理和透明代理
Squid前言一、概述1.1:代理原理1.2:工作机制1.3:squid基本类型二、环境部署2.1:实验目的2.2:实验环境三、传统代理3.1:安装squid服务3.2:修改配置文件3.3:安装httpd服务3.4:设置squid代理四、透明代理4.1:修改环境4.2:配置squid服务4.3:配置web4.4:客户机访问前言Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从
2020-11-04 17:47:38
582
原创 GFS实验部署中遇到的问题点
GFS实验部署中遇到的问题点 这次的实验我已经验证了好多遍了,过程基本没有错误,所以一般来说,按照我的过程来做,实验会比较顺利,但是,我后来发现,有一点是非常重要的,就是yum源的搭载问题,我发现在客户端直接用图省事儿用线网源来安装GlusterFS服务的时候,客户端挂载条带卷相关的卷的时候,一直无法挂载。然后,我就通过检查日志的方法,看看是不是挂载的过程有问题,检查了之后发现没有问题,然后我又去检查各节点的卷的情况,也运行正常,接着我又把卷删除,然后重新创建再挂载,仍然无法正常挂载。我
2020-11-04 00:16:33
266
原创 十分详细的GFS理论介绍与部署
GFS前言一、GlusterFS理论1.1:什么是GlusterFS(GFS)1.2:GlusterFS工作原理1.3:GlusterFS的分类1.3.1:分布式圈1.3.2:条带卷1.3.3:复制卷1.3.4:分布式条带卷1.3.5:分布式复制卷二、部署2.1:实验环境2.2:添加磁盘2.3:GFS集群创建2.4:根据规则创建卷三、验证前言分布式存储已经研究很多年,但直到近年来,伴随着谷歌、亚马逊和阿里等互联网公司云计算和大数据应用的兴起,它才大规模应用到工程实践中。如
2020-11-03 23:47:07
1658
1
原创 三杀!超详解ELK!
ELK详解与实验部署文章目录前言一、ELK的理论基础1.1:ELK是什么?1.2:ELK需求的场景1.3:ELK工具介绍1.3.1:Logstash工具介绍1.3.2:ElasticSearch工具介绍1.3.3:Kibana工具介绍1.4:完整日志系统基本特征1.5:ELK的工作流程二、ELK的实战模拟2.1:环境部署2.2:实验拓扑2.3:实验部署2.3.1:开局布置2.3.2:节点上部署Elasticserch软件2.3.3:部署Elasticsearch图形化界面
2020-11-02 00:39:11
702
1
原创 MHA配置中会遇到“坑”
MHA配置中会遇到“坑”一、SSH无法正常登录 在最后用masterha_check_ssh -conf验证的时候,有时候会出现关于SSH的报错,当初我是将3台数据库的域名解析做到了MHA服务器上,但是发现仍然出现了无法解析的问题。我就想是不是因为我真机开了防火墙,导致xshell通过ssh连接的时候会出现问题。再次验证仍然无法解决。最后,我想到了,将MHA服务器的域名解析做到其他3台服务器上面。结果验证一次通过。二、最后验证发现无法漂移 首先我在前文中也提到了,在MySQL5
2020-10-23 17:08:11
469
原创 超全面的MHA介绍与实验部署
说简单也简单的MHA高可用介绍文章目录前言一、MHA概述1.1: 什么是MHA1.2:MHA场景1.3:MHA的优点二、MHA部署实验2.1:实验思路2.2:故障模拟2.3:实验环境2.3.1:案例需求2.3.2:实验部署前言前面我们阐述了主从复制读写分离的基本原理,那么假如,我们其中一台服务器宕机出现故障之后,服务是不是就已经无法正常进行了你?那么我们应该怎么样解决呢??这时候我们就要用到MHA了一、MHA概述1.1:什么是MHAMHA(Master High Avail
2020-10-23 17:06:28
578
1
原创 一看就懂的MySQL事务介绍
MySQL事务介绍前言一、事务的概念及特点1.1:事务的概念1.2:事务的ACID特性二、事务的操作2.1:MySQL操作事务2.1.1:使用事务命令控制事务2.1.2:使用set设置控制事务前言上回我们已经说到了MySQL索引,已经对数据库大致进行了整体的操作,那么在数据库中,我们除了普通的增删改查还能做什么呢?这边我们就需要引入一个概念——索引。一、事务的概念及特点1.1:事务的概念事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提
2020-10-13 20:00:55
306
原创 超!详细的Mysql索引介绍
MySQL索引前言一、数据库索引1.1:索引及分类1.1.1:索引的概念1.1.2:索引的作用1.1.3:索引的分类1.1.4:创建索引的原则依据1.2:创建及查看索引1.2.1:创建索引的方法1.2.1.1:创建普通索引1.2.1.2:创建唯一性索引1.2.1.3:创建主键索引1.2.1.4:创建全文索引1.2.1.5:创建多列索引1.2.1.6:删除索引1.2.2:索引查看方法前言在企业信息化的过程中,数据库中表的数据量越来越大,性能会急剧下降,创建索引对于保持良好的
2020-10-13 00:49:36
323
原创 来一发炸裂的开场吧----LAMP+DNS+NFS构建论坛
来一发炸裂的开场吧----LAMP+DNS+NFS构建论坛部署环境未装系统的客户机一台DNS服务器:地址192.168.100.10/24;提供域名解析PXE服务:192.168.100.20/24;提供DHCP、TFTP、FTP功能,DHCP地址范围(192.168.100.100/24~192.168.100.200/24)网关:Linux系统作为服务器(内网口:192.168.100.1/24;外网口:20.0.0.1/24)LAMP:20.0.0.12/24,提供web论坛服务,且A
2020-10-12 18:40:17
326
1
原创 超实用是Nginx介绍与安装指南
超实用是Nginx介绍与安装指南前言一、Nginx介绍1.1:何为Nginx1.2:Nginx工作原理1.3:Nginx优点二、Nginx安装指南2.1:安装支持的环境依赖2.2:创建Nginx运行的用户、组2.3:编译安装Nginx2.4:优化路径2.5:检查配置文件2.6:启动、停止Nginx2.7:添加系统服务前言Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。一、Nginx介绍1.1:何为
2020-10-09 01:11:27
260
原创 一看就会的简单的PHP部署教学
简单的PHP部署教学文章目录前言一、PHP介绍1.1:PHP的特点1.2:PHP的优缺点二、PHP部署前言上回书说道,LAMP架构中的Apache服务和MySQL数据库,今天我们就来看看作为连接Apache服务和MySQL数据库的中转站----PHP服务,作为LAMP三种架构中的一种,Apache跟MySQL数据库的安装不分先后,但是PHP却只能在最后进行安装,那我们就来看看为什么只能最后再安装,看完这篇文章你就会知道了。一、PHP服务介绍PHP即“超文本预处理器”,是一种通用开源脚本语
2020-10-08 13:55:13
1123
原创 一看就懂的Apache服务安装与配置
一看就懂的Apache服务安装与配置文章目录前言一、了解Apache服务二、Apache服务安装前言通过学习Linux系统,我们一直会听到一个词LAMP架构,那么什么是LAMP架构呢?LAMP是 linux Apache MySQL PHP的简写,即把Apache MySQL PHP 安装在linux系统上,组成一个环境来运行PHP网站。这里的Apache是httpd服务。这些可以安装在一个机器上,也可以安装在多台机器上,但是httpd和PHP安装在一台机器上(php作为httpd的一个模块存在
2020-09-29 18:07:15
405
原创 一看就会的Nginx+Tomcat负载均衡、动静分离群集教学
Nginx+Tomcat负载均衡、动静分离群集本章目录前言一、Tomcat与Nginx1.1:Tomcat介绍1.2:Tomcat重要文件介绍1.3:Nginx应用二、Nginx负载均衡原理三、Nginx动静分离原理四、Nginx+Tomcat部署实验4.1:实验环境4.2:Tomcat安装及配置4.3:Nginx安装配置4.4:部署验证前言本文主要讲述的项目部署方面的一些基础知识,tomcat+nginx的环境。nginx是常用的web服务器,用于获取静态资源,类似的服务器
2020-09-28 18:51:49
198
原创 每天一个新姿势----Haproxy调度器
Haproxy调度器文章目录前言一、Haproxy调度算法1.1:RR(Round Robin)算法1.2:LC(Least Connections)算法1.3:SH(Source Hashing)算法二、使用Haproxy搭建Web群集2.1:环境准备2.2:存储服务器搭建2.3:Nginx服务器器搭建2.4:Haproxy服务器搭建2.5:实验验证三、Haproxy日志四、Haproxy可优化的参数详解前言通过几天的学习,我们发现有好多种方式去构建一个Web群集,我们前两
2020-09-24 22:38:53
383
1
原创 学会两手抓----KeepAlived架构原理
KeepAlived架构原理文章目录前言一、理解Keepalived实现原理1.1:案例分析1.2:工具介绍1.3:原理剖析二、掌握Keepalived的部署实验2.1:实验拓扑图2.2:实验环境2.3:实验步骤2.3.1:调度器配置2.3.2:NFS服务器配置2.3.3:WEB服务器配置2.4:实验验证前言KeepAlived的部署的前提是LVS-DR部署的前提,我前面的博客介绍了这方面的理论https://blog.csdn.net/weixin_48185204/a
2020-09-23 22:30:41
378
原创 LVS-DR群集架构详解
LVS-DR架构文章目录前言一、LVS-DR工作原理1.1:DR模式的原理1.2:数据包流向分析1.3:群集中的ARP问题1.4:解决问题的方法前言上回我们已经介绍了LVS-NAT群集的原理与架构,今天我们就来谈谈LVS-DR群集的原理一、LVS-DR工作原理1.1:DR模式的原理Direct Routing,简称DR模式采用半开放式的网络结构,与YUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络负载调度器与各节点服务器通过本地网络连接,不需要建立专
2020-09-22 23:53:24
907
原创 SQL语句之正则表达式
SQL语句之正则表达式文章目录前言一、正则表达式特殊的字符二、正则表达式的使用介绍2.1: 以特定字符串开头的记录2.2: 以特定字符串结尾的记录2.3: 包含指定字符串的记录2.4: 以“.”代替字符串中的任意一个字符的记录2.5: 匹配包含或者关系的记录2.6: “*”匹配前面字符的任意多次2.7: "+”匹配前面字符至少一次2.8: 匹配指定字符集中的任意一个前言MySQL 正则表达式通常是在检索数据库记录的时候,根据指定的匹配模式匹配记录中符合要求的特殊字符串。MySQ
2020-09-22 00:57:13
8188
1
原创 实战检验----超!详细的LVS-NAT模式部署攻略
实战检验----超!详细的LVS-NAT模式部署攻略文章目录前言一、LVS负载均衡原理二、实验过程2.1:实验环境2.2:实验架构2.3:实验目的2.4:实验步骤2.4.1:配置存储服务器2.4.2:配置WEB服务器群集池2.4.3:配置LVS调度器2.4.4:实验验证前言前面我们已经我们已经了解了负载均衡的相关知识,今天我们就来部署一下相关环境,更进一步的了解负载均衡的相关配置。一、LVS负载均衡原理可以参考我的博客,地址是https://blog.csdn.net/wei
2020-09-21 20:17:44
622
原创 论如何减负----LVS虚拟服务器详解
LVS负载均衡群集前言一、负载均衡群集原理1.1: 企业群集应用概述1.2: 企业群集分类1.2.1:负载均衡群集(Load Balance Cluster)1.2.2:高可用群集(High Availability Cluster)1.2.3:高性能运算群集 (High Performance Computer Cluster)1.3: 负载均衡群集工作模式分析1.3.1:NAT模式1.3.2:TUN模式1.3.3:DR模式1.3.4:三种工作模式的区别二、群集架构与虚拟服务器
2020-09-21 16:00:03
102
原创 SQL语言之NULL值的详解
SQL语言之NULL值的用法文章目录前言一、NULL值介绍二、NULL值的用法三、NULL值的总结前言在SQL语句使用过程中,经常会碰到NULL这几个字符。通常使用NULL来表示缺失的值,也就是在表中该字段是没有值的。一、NULL值介绍如果在创建表时,限制某些字段不为空,则可以使用NOT NULL关键字,不使用则默认可以为空。在向表内插入记录或者更新记录时,如果该字段没有NOT NULL并且没有值,这时候新记录的该字段将被保存为 NULL。需要注意的是,NULL 值与数字 0 或者空白
2020-09-21 01:36:49
3400
原创 让人头大的MySQL数据库高级查询(挠头)
MySQL数据库高级查询文章目录前言常用查询介绍1.1: 按关键字排序1.2: 对结果进行分组1.3: 限制结果条目1.4: 设置别名1.5: 通配符1.6: 子查询前言在对MySQL数据库的增、删、改、查操作有一定了解之后,就可以学习一些 SQL 语句的高级使用方法。SQL语句的熟练使用,在平时的运维工作中可以提供不小的帮助,尤其是在一些规模较小的公司,运维身兼数职,可能会有不少数据库的相关工作。本章将从不 同的方面出发介绍 SQL 语句的高级运用方法。常用查询介绍对My
2020-09-21 00:48:38
524
原创 读写分离----MySQL数据的高级运用
读写分离----MySQL数据的高级运用文章目录前言一、读写分离原理1.1: 为什么需要读写分离1.2: 如何进行读写分离二、读写分离的基础----主从分离三、读写分离试验3.1: 实验环境3.2: 试验拓扑图3.3: 实验目的3.4: 实验步骤3.4.1: 搭建MySQL数据库3.4.2: Amoebe服务安装3.4.3: 配置Amoebe服务3.4.4: 启动Amoebe服务3.5: 实验验证前言我们上次已经提出了MySQL数据库的主从分离,但是也提出了一个读写分离的
2020-09-17 00:44:15
77
原创 如何搭建Mysq服务器主从服务
如何搭建MySQL服务器主从服务文章目录前言一、为何要搭建主从服务1.1: 搭建的原因1.2: 如何解决1.3: 更可靠的解决方案1.4: 主从复制的类型1.5: 工作流程二、如何去搭建主从服务2.1: 部署环境2.2: 实验拓扑图2.3: 实验目的2.4: 实验过程2.4.1: 防火墙配置2.4.2: 建立时间同步2.4.3: 编译安装MySQL数据库2.4.4: 配置主服务器2.4.5: 配置从服务器2.5:实验验证前言在实际生产环境中,如果对数据库的读和写都在
2020-09-15 23:36:29
197
原创 进阶!MySQL数据库的备份与恢复
MySQL数据库的备份与恢复前言一、数据库备份的分类二、MySQL完全备份与恢复三、MySQL增量备份与恢复前言前几天我们已经讨论了 ,怎么对数据库进行基本的增删改查的操作,今天我们就来谈谈数据库的安全问题。一个很简单的问题,数据库在我们日常工作中,由于软硬件的问题,出现了丢失或者损坏怎么办?这个是个非常严重的问题。而造成数据丢失的问题有很多种:程序错误、人为操作事故(※这个占的比分比较大,多少人员自己的问题)、运算错误、磁盘故障、灾难(如火灾、地震等等外部不可抗力)还有盗窃(作为企业安保的重要
2020-09-14 22:03:04
128
原创 如何管理我们的MySQL数据库
如何管理我们的MySQL数据库前言一、查看数据库的信息1.1 查看库信息1.2 查看表信息1.3 查看表结构的详细信息二、SQL语言分类2.1 DDL:数据定义语言2.2 DML:数据操纵语言2.3 DQL:数据查询语言2.4 DCL:数据控制语言前言 昨天我们已经学会了如何配置我们的MySQL数据库,今天我们就来谈谈怎么具体的对我们的数据库进行增删改查。 ※重要说明:接下来的操作中,我们如果不做特殊说明,每次进行命令操作之后,需要用“;”进行结尾来操作
2020-09-11 16:03:45
645
原创 带你玩转MySQL数据库配置
MySQL数据库配置昨天我们聊了下数据库,以及怎么样编译安装MySQL数据库了,但是仍然需要我们进行正确的配置,接下来,就告诉你们怎么配置MySQL数据库。1、因为我们设置了MYSQL的系统账户,首先我们需要配置数据库的权限以及数据库配置文件的权限chown -R mysql:mysql /usr/local/mysql/chown mysql:mysql /etc/my.cnf2、接下来,我们配置数据库的配置文件vi /etc/my.cnf[client]port = 3306def
2020-09-10 14:30:51
119
原创 数据库初体验以及MySQL数据库的安装
数据库初体验以及MySQL数据库的安装前言一、数据库的基本概念二、数据库的发展三、主流的数据库介绍四、编译安装MySQL数据库前言: MySQL是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠性和易于使用的特性,称为服务器领域中最受欢迎的开源数据库系统。下面我们将具体介绍数据库的原理以及怎么编译安装MySQL数据库。 一、数据库的基本概念了解数据库之前,我们必须了解数据库的一些基本构成单位:数据(DATA)描述事物的符号记录包括:数字、文字
2020-09-09 20:20:16
368
原创 shell脚本三剑客之grep命令
shell脚本三剑客之grep命令Linux grep 命令用于查找文件里符合条件的字符串。grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。语法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<
2020-08-28 10:19:45
315
转载 Linux中devnull与2&1讲解
Linux中/dev/null与2>&1讲解首先先来看下几种标识的含义:/dev/null 表示空设备文件0 表示stdin标准输入1 表示stdout标准输出2 表示stderr标准错误先看/dev/nullcommand > /dev/null相当于执行了command 1 > /dev/null。执行command产生了标准输出stdout(用1表示),重定向到/dev/null的设备文件中/dev/null可以理解为/dev路径下的空文件;该命令将com
2020-08-28 10:05:51
405
原创 每天shell脚本练一练----------邮件通知内存警报
每天shell脚本练一练----------邮件通知内存警报本次要求:对linux运行环境进行监控,当内存超过80%时,邮件通知,并且用Crontab进行定时任务。实际生产中,我们并不会使用这样的脚本对内存实时监控,这边只是对shell脚本做加深理解用。首先我们需要配置sendEmail的配置文件sendEmail是一个轻量级、命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择。使用简单并且功能强大.这个被设计用在php、bash、perl和web站点使
2020-08-28 10:01:35
212
原创 每天shell脚本练一练-------一键部署samba服务
每天shell脚本练一练本次要求:创建一个脚本,对samba服务进行一键配置,要求脚本后面跟一个共享目录,且目录所有人只读。脚本代码为:#!/bin/bash#一键进行samba服务if [ "$#" -ne 1 ] ##第一步先判断输入的路径是不是有多个then echo "脚本运行路径为: $0 /dir/" ##要是多个路径就停止 exit 1 ##退出程序else if ! echo $1 |grep -q
2020-08-27 14:23:41
275
原创 教你如何用shell脚本输出菱形
教你如何用shell脚本输出菱形通过shell脚本,我们可以在脚本中,用不同的符号,来输出一个菱形图案。虽然图案看起来输出比较容易,但是真正写起来,还是要体研究起来,我们还是可以发现,其实还是有点小门道的,现在我我们就通过不同的符号来具体了解下输出原理:一、一个完整的菱形我们要一段一段的解读,先输出三角形,最后在拼成一个完整的菱形:[root@zhu opt]# vi 9lingxing.sh#!/bin/bashfor ((i=9; i>=1; i--))do for ((a=1; a
2020-08-25 19:51:57
2411
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人