自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 K8S------Pod详解(容器分类,镜像拉取策略,重启策略,资源限制)

目录一.Pod基础概念1.Pod的使用方式2.Pause容器共享的两种资源3.Pause容器为业务容器提供的功能4.Pod特殊结构的作用二.Pod的分类三.Pod容器的分类1.基础容器(infrastructure container)2.初始化容器(initcontainers)①Init的容器作用②使用Init容器的情况3.业务容器(Maincontainer)四.镜像拉取策略五.资源限制1.Pod和容器的资源请求和限制2.CPU 资源单位六.重启策略(restartPolicy)一.Pod基础概念

2021-08-19 23:21:24 2425

原创 K8S------YAML文件详解及示例

目录一.YAML概述二.YAML文件示例详解1.deployment.yaml文件详解2.Pod yaml文件详解3.Service yaml文件详解三.YAML文件相关操作一.YAML概述Kubernetes支持 YAML和JSON格式管理资源对象JSON格式:主要用于api接口之间消息的传递。YAML格式:用于配置和管理,YAM是一种简洁的非标记性语言,内容格式人性化,较易读。YAML语法格式:●大小写敏感●使用缩进表示层级关系●不支持Tab键制表符缩进,只使用空格缩进●缩进的空格数目

2021-08-18 21:55:47 1273

原创 K8S------Kubectl基本操作

目录一.陈述式资源管理方法1.Kubernetes2.Kubectl3.kubectl 的命令大全4.对资源的增,删,改,查4.基本信息增,删,改,查二.项目的生命周期1.创建kubectl run命令2.发布kubectl expose命令3.更新kubectl set更改现有应用资源一些信息4.回滚kubectl rollout●对资源进行回滚管理一.陈述式资源管理方法1.Kubernetes①kubernetes集群管理集群资源的唯一入口是通过相应的方法调用apiserver的接口2.Ku

2021-08-17 23:05:38 494

原创 K8S------Kubeadm部署Kubernetes集群+Dashboard+Harbor仓库

目录部署环境一.环境准备1.关闭防火墙,SELinux,Swap分区2.加载ip_vs模块3.修改主机名4.修改hosts文件5.调整内核参数二.所有节点安装docker三.所有节点安装kubeadm,kubelet和kubectl四.部署K8S集群1.上传压缩包2.复制镜像和脚本到node节点3.初始化kubeadm4.设定kubectl5.将node节点加入集群6.所有节点部署网络插件flannel5.测试部署环境节点主机名系统IP地址安装服务master(2C/4G,cp

2021-08-17 02:41:10 515

原创 K8S------Kubernetes双Master负载均衡集群搭建

目录前言环境准备一.Master02 节点部署1.在Master01节点上拷贝证书文件及服务管理文件2.修改Apiserver配置文件3.启动服务4.查看Node节点状态二.负载均衡部署1.安装Nginx服务2.修改Nginx配置文件,配置反向代理负载均衡3.启动Nginx服务4.部署Keepalived服务5.修改Keepalived配置文件7.创建Nginx状态检查脚本8.启动Keepalived服务9.修改两个Node节点上的配置文件10.测试三.部署 Dashboard UI1.Dashboard

2021-08-15 21:08:58 3458

原创 K8S------Kubernetes单Master集群二进制搭建

这里写目录标题前言Kubernetes单Master节点集群二进制部署一.Kubernetes单Master集群架构二.环境准备三.Etcd集群部署1.准备签发证书环境2.生成CA证书、etcd服务器证书以及私钥3.安装Etcd4.在Master01节点启动Etcd集群节点015.将证书,命令文件,服务启动脚本拷贝到另外两个etcd集群节点6.在其他节点修改etcd配置文件7.检查群集状态二.部署docker引擎三.Flannel网络配置1.添加flannel 网络配置信息2.安装并启动Flannel服务3

2021-08-13 01:51:52 533

原创 K8S------Kubernetes二进制搭建中的脚本文件集合

目录etcd-cert.shetcd.shflannel.shetcd-cert.sh#!/bin/bash#配置证书生成策略,让 CA 软件知道颁发有什么功能的证书,生成用来签发其他组件证书的根证书cat > ca-config.json <<EOF{ "signing": { "default": { "expiry": "87600h" }, "profiles": { "www": { "expiry"

2021-08-13 01:47:50 427

原创 K8S------Kubernetes概述

目录一.Kubernetes概述1.Kubernetes概念2.为什么要用Kubernetes3.Kubernetes解决的问题4.Kubernetes的特性二.Kubernetes 集群架构与组件1.核心组件①Master 组件Kube-apiserverKube-controller-managerKube-scheduler②配置存储中心etcd③Node 组件KubeletKube-Proxydocker 或rocket2.Kubernetes 核心概念PodPod控制器LabelLabel选择器(

2021-08-10 20:05:48 554

原创 Ansible------Ansible概述,搭建,常用模块介绍

目录一.Ansible概述二.Ansible环境安装部署三.Ansible命令行模块1. command 模块2. shell模块3. cron模块4. user 模块5. group模块6. copy模块一.Ansible概述Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到

2021-08-05 21:15:04 246

原创 Docker------Docker Consul集群部署

目录一.服务注册与发现概述二.Consul的概念三.Consul的部署环境准备1.建立Consul服务(192.168.121.22)①安装consul服务②查看集群信息③通过http api获取集群信息2.registrator服务器(192.168.121.33)①安装Gliderlabs/Registrator②创建web容器③浏览器访问http://192.168.121.22:85003.配置template模板(192.168.121.22)①.准备template nginx模板文件②编译安装

2021-08-04 10:20:50 322

原创 Docker------搭建本地私有仓库及Horbor私有仓库

目录一.搭建本地私有仓库一.搭建本地私有仓库#首先下载registry 镜像docker pull registry#在daemon.json文件中添加私有镜像仓库地址vim /etc/docker/daemon.json{"insecure-registries":["192.168.121.22:5000"], #添加,注意用逗号结尾"registry-mirrors":["https://6ijb8ubo.mirror.aliyuncs.com"]}systemctl

2021-08-02 22:21:31 840 1

原创 Docker------Docker Compose编排

目录前言一.Docker-compose 简介二.Compose 部署1. Docker Compose 环境安装2. YAML 文件格式及编写注意事项3. Docker Compose配置常用字段4. Docker Compose 常用命令5. Docker Compose 文件结构三.使用Compose编排创建Nginx容器1.准备依赖文件2.编写配置文件docker-compose.yml前言docker compose 给容器做单机编排的。docker swarm docker集群管理调度

2021-08-01 19:12:25 132

原创 Docker------Dockerfile镜像创建

目录一.SSH镜像二.Systemctl镜像三.nginx镜像四.tomcat 镜像五.mysql镜像一.SSH镜像mkdir /opt/sshdcd /opt/sshdvim Dockerfile#第一行必须指明基于的基础镜像FROM centos:7#作者信息MAINTAINER this is ssh image#镜像的操作指令RUN yum -y updateRUN yum -y install openssh* net-tools lsof telnet passwdRU

2021-07-31 16:45:23 206

原创 Docker------Docker数据管理与Dockerfile镜像创建

目录一.Docker 的数据管理1.数据卷2.数据卷容器二.容器互联(使用centos镜像)三.Docker 镜像的创建1.基于现有镜像创建2.基于本地模板创建3.基于Dockerfile 创建1.联合文件系统(UnionFS )一.Docker 的数据管理管理Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器( DataVolumes Containers)。1.数据卷数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操

2021-07-27 21:10:31 218

原创 Docker------Docker基本管理(镜像,容器,网络,资源控制)

目录一.Docker 概述1.Docker概述2.容器的优点3.Docker与虚拟机的区别4.Docker核心概念二.安装 Docker三.Docker 镜像操作1.搜索镜像2.获取镜像3.镜像下载加速4.查看镜像信息5.查看本地镜像6.获取镜像详细信息7.为本地镜像添加新标签8.删除镜像9.保存镜像到本地10.载入镜像11.上传镜像四.Docker 容器操作1.容器创建2.查看容器运行状态3.启动容器4.终止容器运行5.容器的进入6.容器的导出与导入7.删除容器一.Docker 概述1.Docker概

2021-07-24 15:54:34 601 1

原创 Zookeeper集群+Kafka集群+ELK

目录一.Zookeeper 概述1.Zookeeper定义2.Zookeeper工作机制3.Zookeeper特点4.Zookeeper数据结构5.Zookeeper应用场景6.Zookeeper选举机制二.部署Zookeeper集群1.环境准备2.安装准备2.安装Zookeeper3.启动 Zookeeper一.Zookeeper 概述1.Zookeeper定义Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。2.Zookeeper工作机制Zookeeper

2021-07-20 16:30:56 600

原创 ELK日志分析系统(企业级)

目录一.ELK 概述1.ELK简介2.使用ELK原因3.完整日志系统基本特征4.ELK 的工作原理二.ELK日志分析系统部署节点部署信息1.ELK Elasticsearch 集群部署(==在Node1、Node2节点上操作==)①环境准备②部署 Elasticsearch 软件③安装 Elasticsearch-head 插件2.ELK Logstash 部署(==在 Apache 节点上操作==)①更改主机名②安装Apahce服务(httpd)③安装Java环境④安装logstash⑤测试 Logsta

2021-07-19 20:02:07 171

原创 GFS分布式文件系统

目录一.GlusterFS概述1.GlusterFS简介2.GlusterFS特点3.GlusterFS术语4.模块化堆栈式架构5.GlusterFS的工作流程6.弹性HASH算法7.GlusterFs的卷类型二.部署GlusterFS群集1.准备环境( 所有node节点上操作)①添加硬盘,关闭防火墙,修改所有node节点主机名②磁盘分区,并挂载③配置/etc/hosts文件④将gfsrepo软件上传到/opt目录下,安装并启动2.添加节点到存储信任池中(在node1节点上操作)①只要在一台Node节点上添

2021-07-17 16:37:33 285 1

原创 缓存加速------Redis主从复制,哨兵模式,集群

目录前言一.Redis主从复制1.Redis主从复制概述2.Redis主从复制作用3.Redis主从复制流程4.搭建Redis主从复制①环境准备②安装Redis③修改Redis配置文件(Master节点操作)④修改Redis 配置文件(Slave节点操作)⑤验证主从效果⑥在Master节点上验证Slave节点二.Redis哨兵模式1.哨兵模式原理2.哨兵模式的作用3.哨兵模式的结构4.搭建Redis哨兵模式①环境准备②修改Redis 哨兵模式的配置文件(所有节点操作)③启动哨兵模式④故障模拟⑤验证结果三.R

2021-07-14 18:19:44 283

原创 Shell脚本------一键部署Redis

使用此脚本需要先配置好yum源,然后将安装包传输到/opt目录中,编写脚本,复制下面的脚本代码,source执行。安装包:redis-5.0.7.tar.gz提取码:1122#!/bin/bash#关闭防火墙systemctl stop firewalldsetenforce 0yum install -y gcc gcc-c++ makeyum -y install expectcd /opttar zxvf redis-5.0.7.tar.gz -C /opt/cd /opt/.

2021-07-14 14:39:19 251

原创 缓存加速------Redis的五种数据类型(String,List,Hash,Set,Sorted Set)

目录一.String数据类型1.set,get2.append3.incr,decr,incrby,decrby4.strlen5.setex6.getset7.setnx8.mset,mget,msetnx二.List数据类型1.lpush,lpushx,lrange2.lpop,llen3.lrem,lset,lindex,ltrim4.linsert5.rpush,rpushx6.rpop,rpoplpush三.Hash数据类型1.hset,hget,hdel,hexists,hlen,hsetnx2

2021-07-12 16:31:43 579

原创 缓存加速------NoSQL之Redis配置与优化

目录一.关系数据库与非关系型数据库1.关系型数据库2.非关系型数据库3.关系型数据库和非关系型数据库区别3.1数据存储方式不同3.2扩展方式不同3.3对事务性的支持不同4.非关系型数据库产生背景二.Redis简介1.Redis服务器程序是单进程模型2.Redis具有以下几个优点三.部署步骤1.Redis安装部署2.Redis命令工具3.redis-cli命令行工具(远程登陆)4.redis-benchmark 测试工具5.Redis数据库常用命令1.set/get数据存取2.keys取值3.exists判断

2021-07-08 13:34:54 155

原创 缓存加速------Squid代理服务器应用(传统代理,透明代理,反向代理,ACL访问控制,日志分析)

目录一.Squid代理服务器1.代理的工作机制2.代理的类型二.Squid代理服务器的安装1.编译安装Squid2.修改Squid的配置文件3.编写Squid服务脚本三.实验1.搭建传统代理2.透明代理3.反向代理四.ACL访问控制五.Squid 日志分析总结一.Squid代理服务器Squid主要提供缓存加速,应用层过滤控制的功能1.代理的工作机制代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。将获得网页数据(静态Web元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应

2021-07-08 08:51:25 289 1

原创 MySQL------MHA高可用配置及故障切换

目录一.MHA概述1.MHA的概念2.MHA的组成3.MHA的特点二.MySQL MHA的搭建1.实验思路2.实验准备3.搭建过程1.Master,Slave1,Slave2 节点上安装 mysql5.72.修改 Master、Slave1、Slave2 节点的主机名3.修改 Master,Slave1,Slave2 节点的 Mysql主配置文件/etc/my.cnf4.在 Master,Slave1,Slave2 节点上都创建两个软链接5.配置 mysql 一主两从6.安装 MHA 软件7.在所有服务器上

2021-07-03 12:54:09 228

原创 MySQL------MySQL主从复制,读写分离

目录前言:主从复制与读写分离一.MySQL主从复制1.主从复制的类型2.主从复制的工作过程3.主从复制延迟的原因及优化处理一.MySQL读写分离1.读写分离的概念2.读写分离的原因3.适合读写分离的数据库4.读写分离原理5.常见的两种读写分离5.1基于程序代码内部实现5.2基于中间代理层实现三.MySQL主从复制与读写分离实验环境需求1.搭建MySQL主从复制1.1 MySQL主从服务器时间同步1.2 主服务器的mysql配置1.3 从服务器的mysql配置1.4 验证主从复制效果2.搭建MySQL读写分离

2021-07-01 23:23:16 264

原创 MySQL------高阶SQL语句二

这里写目录标题一.连接查询二. CREATEVIEW(视图)三.连集,交集,非交集1.连集(UNION)2.交集值3. 无交集值四. CASE五. 数据排序1.算排名2.算中位数3.算累积总计4.算累积总合百分比一.连接查询![![在这里插入图片描述](https://img-blog.csdnimg.cn/20210629175436992.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM

2021-06-30 16:44:14 246

原创 MySQL------高阶SQL语句一

目录准备工作一.SQL高阶语句1. SELECT2. DISTINCT3. WHERE4. AND OR5. IN6. BETWEEN准备工作学习高阶语句前,需要先创建2个数据表,数据表内容如下:use kgc;create table Area(Region char(20),City_Name char(20)); #Aera:地区,City_name:城市名insert into Area values('North','Bijing');insert into Area value

2021-06-29 17:33:48 223 1

原创 MySQL------MySQL日志管理,备份与恢复

目录一.MySQL 日志管理二.数据库备份的重要性与分类1.数据备份的重要性2.备份的分类(物理和逻辑)3.备份的分类(数据库的备份策略角度)三.常见的备份方法1.物理冷备2.专用备份工具mydump或mysqlhotcopy3.启用二进制日志进行增量备份4.第三方工具备份四.MySQL完全备份五.数据库完全备份分类1.物理冷备份与恢复2.mysqldump备份与恢复六.MySQL增量备份七.MySQL数据库增量恢复1.一般恢复2.基于位置恢复3.基于时间点恢复八.MySQL 完全备份与恢复1.MySQL

2021-06-28 15:44:45 207

原创 MySQL------MySQL 索引、事务与存储引擎

目录1.索引的概念2.索引的作用与副作用3.创建索引的原则依据4.索引的分类和创建1.普通索引1.1 直接创建索引1.2 修改表方式创建1.3 创建表的时候指定索引2.唯一索引2.2 修改表方式创建2.3 创建表时指定3.主键索引3.1 创建表的时候指定3.2 修改表方式创建4.组合索引(单列索引与多列索引)1.索引的概念●索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。●使用索引后可以不用扫描全表来定位某行的数

2021-06-25 17:25:01 110 1

原创 MySQL------MySQL数据库管理(增删改查,图文详解)

目录一.MySQL常用的数据类型二.查看数据库结构1.查看当前服务器中的数据库2.查看数据库中包含的表3.查看表的结构(字段)三.SQL语句四.创建及删除数据库和表1.创建新的数据库2.创建新的表3.删除指定的数据表4.删除指定的数据库五.管理表中的数据记录1.向数据表中插入新的数据记录2.查询数据记录3.修改、更新数据表中的数据记录4.在数据表中删除指定的数据记录六.修改表名和表结构1.修改表名2.扩展表结构(增加字段)3.修改字段(列)名,添加唯一键4.删除字段七.数据表高级操作1.克隆表,将数据表的数

2021-06-23 16:07:44 1488

原创 MySql------MySql数据库基础

目录一.数据库的基本概念二.数据库系统的发展史三.当今主流数据库介绍四.关系数据库1.关系数据库概述2.关系数据库结构3.关系型数据库应用五.非关系数据库六.MySQL数据库1.MySQL数据库介绍2.MySQL商业版与社区版3.MySQL产品阵营七.编译安装MySQL一.数据库的基本概念数据(Data)描述事物的符号记录包括数字,文字,图形,图像,声音,档案记录等以“记录”形式按统一的格式进行存储表将不同的记录组织在一起用来存储具体数据数据库表的合集,是存储数据的仓库以一定

2021-06-21 16:25:40 121 2

原创 shell脚本------一键部署MySQL

一.数据库的基本概念将安装包传到opt目录中安装包地址:MySQL安装包编写脚本文件,将代码复制到脚本文件中,source执行脚本,等待安装即可#!/bin/bashCKGZ=`df -Th | grep -o "iso9660"`ZDGZ=`cat /etc/fstab | grep -o "iso9660"`#检查光盘是否挂载if [ "$CKGZ" == 'iso9660' ];then echo "您的挂盘已经挂载,无需重复操作!"else e

2021-06-21 16:23:24 450

原创 shell脚本------一键部署yum源仓库(本地yum源和在线yum源)

#!/bin/bash#一键挂载光盘,部署本地yum源或在线yum源CKGZ=`df -Th | grep -o "iso9660"`ZDGZ=`cat /etc/fstab | grep -o "iso9660"`#检查光盘是否挂载if [ "$CKGZ" == 'iso9660' ];then echo "您的挂盘已经挂载,无需重复操作!"else echo "正在为您挂载光盘……" mount /dev/sr0 /mnt &&

2021-06-21 16:22:36 312

原创 集群------LVS,Nginx,Haproxy优缺点

目录NginxLVSHAProxyNginxNginx的优点:●工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构。Nginx正则规则比HAProxy更为强大和灵活。●Nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,LVS对网络稳定性依赖比较大,稳定要求相对更高。●Nginx安装和配置、测试比较简单、方便,有清晰的日志用于排查和管理,LVS的配置、测试就要花比较长的时间了。●可以承担高负载压力且稳定,一般能支撑几万次的并发量,负载度比L

2021-06-18 15:41:40 172

原创 集群------HAproxy搭建Web群集

目录一.常见的Web集群调度器二.Haproxy应用分析三.Haproxy调度算法1.RR(Round Robin)2.LC(Least Connections)3.SH(Source Hashing)四.Haproxy的主要特性五.Haproxy搭建Web群集1.Haproxy服务器部署1.关闭防火墙,将安装Haproxy所需软件包传到/opt目录下2.编译安装 Haproxy3.Haproxy服务器配置4.添加haproxy 系统服务2.节点服务器部署(192.168.121.44,192.168.12

2021-06-18 15:31:09 166 2

原创 集群------LVS+Keepalived高可用负载均衡群集

目录一.Keepalived1.Keepalived工具2.Keepalived实现原理2.LVS+Keepalived高可用群集部署1.配置负载调度器2.配置节点服务器3.配置keeplived5.测试验证一.Keepalived1.Keepalived工具专为LVS和HA设计的一款健康检查工具支持故障自动切换(Failover)支持节点健康状态检查(Health Checking)●判断LVS负载均衡调度器,节点服务器的可用性,当master主机出现故障及时切换到backup节点保证业务正

2021-06-17 19:14:39 227 3

原创 集群------LVS-DR负载均衡群集(部署过程图文详解)

目录一.LVS-DR工作原理1.数据包流向分析2.DR模式的特点3.LVS-DR中的ARP问题二.LVS-DR负载均衡群集部署1.配置负载调度器(192.168.121.11)1.配置虚拟 IP 地址(VIP:192.168.121.100)2.调整 proc 响应参数3.配置负载分配策略2.部署共享存储(NFS服务器:192.168.121.55)3.配置节点服务器(192.168.121.33、192.168.121.44)1.配置虚拟 IP 地址(VIP:192.168.121.100)2.调整 pr

2021-06-17 15:46:06 359

原创 集群------LVS负载均衡集群(NAT模式 LVS负载均衡集群部署图文详解)

目录一.集群概述1.集群的含义2.集群的分类2.1 负载均衡群集(Load Balance Cluster)2.2 高可用集群(High Availability Cluster)2.3 高性能运算集群(High Performance Computer Cluster)二.负载均衡群集架构三.负载均衡群集工作模式1.NAT模式 (地址转换)2.TUN模式 (IP隧道)3.DR模式四.LVS虚拟服务器1.Linux Virtual Server2.LVS的负载调度算法五.ipvsadm工具的使用六.NAT模

2021-06-16 16:38:06 407

原创 Web服务------Nginx四层代理+Tomcat负载均衡,动静分离

一.Nginx负载均衡模式轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务 ,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响轮询权重值weigh的值越大分配到的权限概率越高,主要用于后端每台服务器性能不均匀情况,或者仅仅为在主从的情况下设置不同的权重值,达到合理利用主机资源源地址哈希ip_ hash每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在session共享问题fairHweight. ip hash更智

2021-06-15 20:24:38 191

原创 Web服务------Nginx七层代理+Tomcat双实例负载均衡,动静分离

目录一.Tomcat双实例部署1.关闭防火墙,将安装包传到opt目录中2.安装jdk3.设置JDK环境变量4.安装 tomcat5.配置 tomcat 环境变量6.修改 tomcat2中的主配置文件7.修改实例的启动脚本和停止脚本8.启动各 tomcat 中的 /bin/startup.sh9.浏览器访问测试二.Nginx+Tomcat负载均衡、动静分离群集1.Nginx应用2.Nginx负载均衡实现原理3.Nginx动静分离实现原理3.1 动静分离的原理3.2 Nginx静态处理优势4.Nginx+Tom

2021-06-15 10:13:22 260

空空如也

空空如也

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

TA关注的人

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