手把手搭建k8s集群

导读:本篇文章讲解 手把手搭建k8s集群,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

 

集群机器配置

1 安装Docker

1.1 安装persistent-data 和 lvm2

1.2 修改docker安装源以及安装docker

1.3 启动docker

1.4 切换docker镜像源

2 安装k8s

2.1 安装vim,wget,ntpdate

2.2 关闭防火墙规则以及swap分区

2.3 ntpdate 统一时间

3 安装 Kubernetes 组件

3.1 master节点的安装

3.1.1 配置 Kubernetes 初始化文件

3.1.2 初始化 Kubernetes

3.1.3 安装 Flannel

3.2 node节点安装

3.2.1 拷贝 Master 节点配置文件

3.2.2 加入 Master 节点

遇到的坑:

1 提示错误信息:

2 提示错误信息

3 节点处于不同内网问题

一些常用到的指令


集群机器配置

主:2核4g Centos7

从:2核4g Centos7

1 安装Docker

我们将使用 Docker 将应用打包成一个镜像,交给 Kubernetes 去部署在目标服务集群,所以第一步操作先安装docker

1.1 安装persistent-data 和 lvm2

device-mapper-persistent-data 是 Linux 下的一个存储驱动, Linux 上的高级存储技术。 Lvm 的作用则是创建逻辑磁盘分区。这里我们使用 CentOS 的 Yum 包管理器安装两个依赖:

yum install -y yum-utils device-mapper-persistent-data lvm2

1.2 修改docker安装源以及安装docker

依赖安装完毕后,我们将阿里云的 Docker 镜像源添加进去。可以加速 Docker 的安装。记住安装的是docker-ce而不是docker这里是个坑.

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y

1.3 启动docker

安装完毕,我们就可以使用 systemctl 启动来启动 Docker 了。systemctl 是 Linux 的进程管理服务命令,他可以帮助我们启动 docker .

systemctl start docker
systemctl enable docker

1.4 切换docker镜像源

一般来说拉取的镜像源是国外的dockerhub,太慢了。所以这边需要切换镜像源,可以默认阿里云的镜像地址即可当然也可以选择腾讯云清华等等自行选择。

# vi /etc/docker/daemon.json
 
{
 
"registry-mirrors": ["http://hub-mirror.c.163.com"]
 
}
 
systemctl restart docker.service

国内加速地址有:

Docker中国区官方镜像
https://registry.docker-cn.com

网易
http://hub-mirror.c.163.com

ustc 
https://docker.mirrors.ustc.edu.cn

中国科技大学
https://docker.mirrors.ustc.edu.cn

阿里云容器
https://cr.console.aliyun.com/

2 安装k8s

在 Kubernetes 中,可以使用集群来组织服务器的。集群中会存在一个 Master 节点,该节点是 Kubernetes 集群的控制节点,负责调度集群中其他服务器的资源。其他节点被称为 Node , Node 可以是物理机也可以是虚拟机。

2.1 安装vim,wget,ntpdate

第一步我们安装些必备组件。vim 是 Linux 下的一个文件编辑器; wget 可以用作文件下载使用; ntpdate 则是可以用来同步时区:

yum install vim wget ntpdate -y

2.2 关闭防火墙规则以及swap分区

接着我们关闭防火墙。因为 kubernetes 会创建防火墙规则,导致防火墙规则重复。所以这里我们要将防火墙关闭:

systemctl stop firewalld & systemctl disable firewalld

这一步需要我们关闭 Swap 分区。 Swap 是 Linux 的交换分区,在系统资源不足时,Swap 分区会启用。这操作会拖慢我们的应用性能。

应该让新创建的服务自动调度到集群的其他 Node 节点中去,而不是使用 Swap 分区。这里我们将它关闭掉:

#临时关闭
swapoff -a
# 永久关闭
vi /etc/fstab

临时可忽略)如果选择永久关闭,则需要找到 /etc/fstab 文件,注释掉下面这一行:

/dev/mapper/centos-swap swap ...

继续关闭 Selinux。这是为了支持容器可以访问宿主机文件系统所做的,后续也许会优化掉:

# 暂时关闭 selinux
setenforce 0

# 永久关闭
vi /etc/sysconfig/selinux
# 修改以下参数,设置为disable
SELINUX=disabled

2.3 ntpdate 统一时间

接着使用 ntpdate 来统一我们的系统时间和时区,服务器时间与阿里云服务器对齐。

# 统一时区,为上海时区
ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
bash -c "echo 'Asia/Shanghai' > /etc/timezone"

# 统一使用阿里服务器进行时间更新
ntpdate ntp1.aliyun.com

3 安装 Kubernetes 组件

从这里我们开始安装 Kubernetes 的相关组件,首先先将安装源更换为为国内的阿里云源:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
        http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

接着直接使用 yum 命令安装 kubelet、 kubeadm、kubectl 即可,安装完毕后启用 kubelet 即可。

yum install -y kubelet kubeadm kubectl
# 启动kubelet
systemctl enable kubelet && systemctl start kubelet

kubelet 是 Kubernetes 中的核心组件。它会运行在集群的所有节点上,并负责创建启动服务容器 kubectl 则是Kubernetes的命令行工具。可以用来管理,删除,创建资源 kubeadm 则是用来初始化集群,子节点加入的工具。

3.1 master节点的安装

Master 节点是集群内的调度和主要节点,以下内容只针对于master节点,我的master节点机器为2c4g的3m腾讯云服务器。

首先,我们使用 hostnamectl 来修改主机名称为 master 。hostnamectl 是 Centos7 出的新命令,可以用来修改主机名称:

hostnamectl set-hostname  master

接着使用 ip addr 命令(注意区分内网ip以及外网ip),获取本机IP,将其添加到 /etc/hosts 内:(xxx.xxx.xxx.xxx为你本机地址)

# xxx.xxx.xxx.xxx master
vim /etc/hosts

注意的是IP地址得选择正确此处的IP地址并不是内网或者公网的ip地址:

[root@VM-16-12-centos k8s]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 52:54:00:ca:43:c5 brd ff:ff:ff:ff:ff:ff
    必须选择此处的IP地址 如果没有的话请百度查找解决办法
    inet xxx.xx.xx/20 brd xxx scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:feca:43c5/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:26:05:60:0f brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global docker0
       valid_lft forever preferred_lft forever

3.1.1 配置 Kubernetes 初始化文件

接着我们使用 kubeadm config print init-defaults 输出一份默认初始化配置文件,使用 > 操作符即可导出为一份文件,方便我们进行修改。

kubeadm config print init-defaults > init-kubeadm.conf
vim init-kubeadm.conf

修改默认配置(注意master的IP地址为公网或者是内网):

# imageRepository: k8s.gcr.io 更换k8s镜像仓库
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
# localAPIEndpointc,advertiseAddress为master-ip ,port默认不修改
localAPIEndpoint:
  advertiseAddress: xxx.xxx.xxx.xxx  # 此处为master的IP
  bindPort: 6443
# 配置子网络
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.96.0.0/12
  podSubnet: 10.244.0.0/16    # 添加这句
  1. 更换 Kubernetes 镜像仓库为阿里云镜像仓库,加速组件拉取
  2. 替换 ip 为自己主机 ip
  3. 配置 pod 网络为 flannel 网段

在修改完配置文件后,我们需要使用 kubeadm 拉取我们的默认组件镜像。直接使用 kubeadm config images pull 命令即可

3.1.2 初始化 Kubernetes

在镜像拉取后,我们就可以使用刚才编辑好的配置文件去初始化 Kubernetes 集群了。这里直接使用 kubeadm init 命令去初始化即可。

kubeadm init --config init-kubeadm.conf

在静等运行一会后,终端会给出以下提示:

手把手搭建k8s集群

其中,红框命令为在 Master 节点需要执行的初始化命令,其作用为将默认的 Kubernetes 认证文件拷贝进 .kube 文件夹内,才能默认使用该配置文件。

蓝框为需要在 node 节点执行的命令。作用是可以快速将 Node 节点加入到 Master 集群内。

3.1.3 安装 Flannel

前面我们在配置文件中,有提到过配置Pod子网络,**Flannel 主要的作用就是如此。它的主要作用是通过创建一个虚拟网络,让不同节点下的服务有着全局唯一的IP地址,且服务之前可以互相访问和连接**。

那么 Flannel 作为 Kubernetes 的一个组件,则使用 Kubernetes 部署服务的方式进行安装。首先下载配置文件:

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

如果下载不了,手动访问当前文件直接通过linux命令创建复制也可以

使用 kubectl apply 命令加载下服务。

kubectl apply -f kube-flannel.yml

在大约稍后1分钟左右,我们可以使用 kubectl get nodes 命令查看节点的运行状态。如果 STATUS = ready,则代表启动成功。

3.2 node节点安装

在安装 Node 节点前,我们仍然需要操作一遍上面的k8s以及docker的安装。 Node 节点的地位则是负责运行服务容器,负责接收调度的。

首先第一步,还是需要先设置一下 hostname 为 node1 。在 node 机器上执行:

hostnamectl set-hostname node1

3.2.1 拷贝 Master 节点配置文件

接着将 master 节点的配置文件拷贝 k8s 到 node 节点。回到在 master 节点,使用 scp 命令通过 SSH传送文件:

# xxx.xxx.xxx.xxx 为node的ip
scp $HOME/.kube/config root@xxx.xxx.xxx.xxx:~/

随后在 node 节点执行以下命令,归档配置文件:

mkdir -p $HOME/.kube
sudo mv $HOME/config $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

我是直接复制文件直接拷贝到.kube/config目录下的,省事。

3.2.2 加入 Master 节点

我们直接使用刚才在 master 生成的节点加入命令,在 node 机器上执行。让 Node 节点加入到 master 集群内:

这是一条是示例命令!!!!!!

kubeadm join 172.16.81.164:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:b4a059eeffa2e52f2eea7a5d592be10c994c7715c17bda57bbc3757d4f13903d

如果刚才的命令丢了,可以在 master 机器上使用 kubeadm token create 重新生成一条命令:

kubeadm token create --print-join-command

遇到的坑:

1 提示错误信息:

[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1

解决办法:

echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables   #/pro的配置文件根据实际环境来

2 提示错误信息

[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp 127.0.0.1:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp 127.0.0.1:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get http://localhost:10248/healthz: dial tcp 127.0.0.1:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.

然后看了一下kubelet的状态,一直都是auto-restart的状态。其实上面打印的所有日志都是不准确的,正确的日志应该执行journalctl -xefu kubelet,复制出来直接搜索fail

Jan 25 15:12:27 node1 kubelet[15008]: I0125 15:12:27.637534   15008 docker_service.go:260] Docker Info: &{ID:LYCG:AI4B:H5ZM:PEKY:3G6T:SAIE:FDZZ:LWVJ:CL7L:2QP2:MI6T:QI65 Containers:23 ContainersRunning:21 ContainersPaused:0 ContainersStopped:2 Images:43 Driver:overlay2 DriverStatus:[[Backing Filesystem extfs] [Supports d_type true] [Native Overlay Diff true]] SystemStatus:[] Plugins:{Volume:[local] Network:[bridge host ipvlan macvlan null overlay] Authorization:[] Log:[awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog]} MemoryLimit:true SwapLimit:true KernelMemory:true KernelMemoryTCP:true CPUCfsPeriod:true CPUCfsQuota:true CPUShares:true CPUSet:true PidsLimit:true IPv4Forwarding:true BridgeNfIptables:true BridgeNfIP6tables:true Debug:false NFd:195 OomKillDisable:true NGoroutines:178 SystemTime:2021-01-25T15:12:27.630677304+08:00 LoggingDriver:json-file CgroupDriver:systemd NEventsListener:1 KernelVersion:3.10.0-1127.13.1.el7.x86_64 OperatingSystem:CentOS Linux 7 (Core) OSType:linux Architecture:x86_64 IndexServerAddress:https://index.docker.io/v1/ RegistryConfig:0xc0009500e0 NCPU:2 MemTotal:3973308416 GenericResources:[] DockerRootDir:/var/lib/docker HTTPProxy: HTTPSProxy: NoProxy: Name:node1 Labels:[] ExperimentalBuild:false ServerVersion:19.03.12 ClusterStore: ClusterAdvertise: Runtimes:map[runc:{Path:runc Args:[]}] DefaultRuntime:runc Swarm:{NodeID: NodeAddr: LocalNodeState:inactive ControlAvailable:false Error: RemoteManagers:[] Nodes:0 Managers:0 Cluster:<nil> Warnings:[]} LiveRestoreEnabled:false Isolation: InitBinary:docker-init ContainerdCommit:{ID:7ad184331fa3e55e52b890ea95e65ba581ae3429 Expected:7ad184331fa3e55e52b890ea95e65ba581ae3429} RuncCommit:{ID:dc9208a3303feef5b3839f4323d9beb36df0a9dd Expected:dc9208a3303feef5b3839f4323d9beb36df0a9dd} InitCommit:{ID:fec3683 Expected:fec3683} SecurityOptions:[name=seccomp,profile=default] ProductLicense: Warnings:[]}
Jan 25 15:12:27 node1 kubelet[15008]: F0125 15:12:27.637637   15008 server.go:269] failed to run Kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"

终于发现了真正的错误:failed to run Kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"。说的是k8s的 cgroup driver 跟docker的设置不匹配。

查找一系列谷歌之后发现以前抄dokcer配置的时候抄出问题了:

{
   # 这一步设置了systememd
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ],
  "data-root": "/data/docker"
}

然后网上各种这个设置那个设置,后面我学乖了直接删剩registry-mirrors就可以了

{
  "registry-mirrors": [
    "https://n70lvc70.mirror.aliyuncs.com",
    "https://dockerhub.azk8s.cn",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

3 节点处于不同内网问题

节点不处于同一个内网环境下 因为我的一台机器是阿里云的服务器,master节点是腾讯云的机器。并不处于同一个内网环境中。这时候需要做映射。 如果node节点跟master节点不处于同一个内网环境下,也就是说node节点ping不通master节点的内网ip。那么在加入master节点的时候会报一下错误:

[WARNING Hostname]: hostname "node2" could not be reached
[WARNING Hostname]: hostname "node2": lookup node2 on 100.100.2.138:53: no such host

解决方案:在node服务器上执行如下语句:

iptables -t nat -A OUTPUT -d [master节点内网ip,也就是kubeadm join xxx对应的ip] -j DNAT --to-destination [master节点外网ip]

一些常用到的指令

kubectl get [pod namespace pvc pv] -n 【name-space】/ --all-namespaces
获取一些常用的pod namespace等等列表

journalctl -xefu kubelet
用于获取调试的日志,一般启动的错误提示不清晰建议直接使用这个

kubectl apply -f / kubectl delete -f 启动或者停止相关的k8s配置

kubectl logs [pod] -n xxx 查看pod启动日志

https://ssr.carrotwu.com/post?id=41

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/71373.html

(0)
小半的头像小半
0 0

相关推荐

  • 关于Windows的 “睡眠“ 和 “休眠“ 技术随笔

    关于Windows的 “睡眠“ 和 “休眠“

    0 091
    飞熊的头像 飞熊
    2023年4月19日
  • 鼠标参数以及选购DPI和报告率 技术随笔

    鼠标参数以及选购DPI和报告率

    0 0386
    飞熊的头像 飞熊
    2023年4月19日
  • vue技术栈–》从vue2.0到vue3.0 ## 篇二 语法与数据绑定 技术随笔

    vue技术栈–》从vue2.0到vue3.0 ## 篇二 语法与数据绑定

    0 0179
    飞熊的头像 飞熊
    2023年4月25日
  • zabbix支持钉钉报警 技术随笔

    zabbix支持钉钉报警

    0 0153
    飞熊的头像 飞熊
    2023年8月4日
  • 【JavaScript】动画函数 技术随笔

    【JavaScript】动画函数

    0 0213
    飞熊的头像 飞熊
    2023年4月25日
  • 【java基础】类型擦除、桥方法、泛型代码和虚拟机 技术随笔

    【java基础】类型擦除、桥方法、泛型代码和虚拟机

    0 0134
    飞熊的头像 飞熊
    2023年5月29日
  • Linux基本命令操作—cd命令以及history命令的方法 技术随笔

    Linux基本命令操作—cd命令以及history命令的方法

    0 0102
    小半的头像 小半
    2023年2月10日
  • ubuntu azkaban4.0.0链接mysql(5.1/8.0)数据库配置 技术随笔

    ubuntu azkaban4.0.0链接mysql(5.1/8.0)数据库配置

    0 0269
    飞熊的头像 飞熊
    2023年8月4日
  • 双端对列(Python) 技术随笔

    双端对列(Python)

    0 0100
    小半的头像 小半
    2023年1月16日
  • 90后用HTTP写了一篇恋爱日记 技术随笔

    90后用HTTP写了一篇恋爱日记

    0 0112
    飞熊的头像 飞熊
    2023年4月11日
  • 不知道 MySQL 咋学?刷完牛客这 50 道题就够了(第十篇) 技术随笔

    不知道 MySQL 咋学?刷完牛客这 50 道题就够了(第十篇)

    0 0120
    Java光头强的头像 Java光头强
    2023年2月21日
  • C 语言 基础 for 循环 技术随笔

    C 语言 基础 for 循环

    0 075
    小半的头像 小半
    2023年1月16日

站长精选

  • 公司来了个新同事,把 DDD 运用得炉火纯青!

    公司来了个新同事,把 DDD 运用得炉火纯青!

    2024年2月28日

  • SpringBoot 集成 EasyExcel 3.x 优雅实现 Excel 导入导出

    SpringBoot 集成 EasyExcel 3.x 优雅实现 Excel 导入导出

    2023年6月29日

  • 一时兴起,聊聊当今 IT 行业的乱象

    一时兴起,聊聊当今 IT 行业的乱象

    2024年5月1日

  • SpringCloud Alibaba 之 Nacos 集群部署+高可用保证

    SpringCloud Alibaba 之 Nacos 集群部署+高可用保证

    2023年5月27日

  • 一站式解决方案:基于 Arthas 实现服务发现和权限控制

    一站式解决方案:基于 Arthas 实现服务发现和权限控制

    2024年3月10日

  • 我在代码里面故意留个漏洞,违法吗?

    我在代码里面故意留个漏洞,违法吗?

    2022年11月28日

  • 性能为王,微服务架构中的多级缓存设计

    性能为王,微服务架构中的多级缓存设计

    2024年4月17日

  • 根据代码生成整个工程的流程图,这款 IDEA 插件堪称神器!

    根据代码生成整个工程的流程图,这款 IDEA 插件堪称神器!

    2023年7月12日

  • 5款程序员必备的免费在线画图工具,超级好用!

    5款程序员必备的免费在线画图工具,超级好用!

    2022年11月15日

  • 为什么 List 原生排序比 stream() 流效率更高?

    为什么 List 原生排序比 stream() 流效率更高?

    2023年8月14日

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!

PHP网站源码雅安百搜标王公司迁安网站排名优化仙桃模板推广果洛阿里店铺托管徐州网站设计报价衡阳网站优化按天计费推荐南山营销网站报价铜仁百度标王西宁百度seo公司徐州网站设计内江网站搭建推荐坑梓建网站哪家好昆明网站推广铁岭关键词按天扣费公司广州seo池州seo排名推荐襄樊seo网站优化和田百度竞价茂名企业网站建设价格延安外贸网站建设临夏百度爱采购哪家好无锡网站推广工具多少钱宣城阿里店铺托管报价揭阳如何制作网站推荐绍兴模板推广价格郴州网站排名优化推荐思茅百度关键词包年推广公司周口百度seo价格德阳网站优化按天收费推荐惠州网站改版多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化