一种集群系统的IP修改方法、装置及相关设备与流程

文档序号:29252143发布日期:2022-03-16 10:03阅读:92来源:国知局
一种集群系统的IP修改方法、装置及相关设备与流程
一种集群系统的ip修改方法、装置及相关设备
技术领域
1.本技术涉及集群系统技术领域,特别涉及一种集群系统的ip修改方法,还涉及一种集群系统的ip修改装置、设备及计算机可读存储介质。


背景技术:

2.k8s(kubernetes,一种容器编排调度引擎)发布以来,因其强大的功能与独特的设计魅力,得到了越来越广泛的使用。随着k8s应用的越来越多,与此同时出现了此类场景:因为机房服务器搬迁、数据服务迁移、网络规划变化等情况,系统ip需要修改。然而,由于k8s集群包含大量与ip相关的信息,如集群配置、集群证书等,导致修改ip后k8s集群无法自适应调整从而导致无法使用。此时软件工程师往往会对k8s集群或服务器系统进行卸载并重新安装,显然,该种实现方式费时费力,且难度较大,极易出现问题。此外,卸载重装也会导致原有的k8s数据或作业等被清理而无法找回。
3.因此,如何在有效保留集群系统原有数据的同时,对其实现快速高效的ip修改是本领域技术人员亟待解决的问题。


技术实现要素:

4.本技术的目的是提供一种集群系统的ip修改方法,该集群系统的ip修改方法可以在有效保留集群系统原有数据的同时,对其实现快速高效的ip修改;本技术的另一目的是提供一种集群系统的ip修改装置、设备及计算机可读存储介质,均具有上述有益效果。
5.第一方面,本技术提供了一种集群系统的ip修改方法,包括:对集群系统内的集群组件进行遍历,生成原始全局配置文件;利用预设ip修改清单对所述原始全局配置文件进行修改,获得新的全局配置文件;根据所述新的全局配置文件重新生成各所述集群组件,并重启各集群组件服务。
6.优选的,所述利用预设ip修改清单对所述原始全局配置文件进行修改,获得新的全局配置文件之前,还包括:判断所述预设ip修改清单中是否存在集群节点修改信息;若是,则根据所述集群节点修改信息确定待修改集群节点,并将所述待修改集群节点的当前ip修改为指定ip。
7.优选的,所述将所述待修改集群节点的当前ip修改为指定ip之前,还包括:判断所述指定ip是否满足预设格式规范;若否,则输出错误提示;若是,则执行所述将所述待修改集群节点的当前ip修改为指定ip的步骤。
8.优选的,所述将所述待修改集群节点的当前ip修改为指定ip之后,还包括:重启所述集群系统的网络服务,并通过执行ping命令判断所述网络服务是否处于正常运行状态;
若否,则输出错误提示;若是,则执行所述利用预设ip修改清单对所述原始全局配置文件进行修改的步骤。
9.优选的,所述根据所述新的全局配置文件重新生成各所述集群组件,包括:根据所述新的全局配置文件重新生成etcd证书、组件证书、conf配置文件以及引导令牌。
10.优选的,所述对集群系统内的集群组件进行遍历,生成原始全局配置文件,包括:利用kubeadm config view工具对所述集群系统内的集群组件进行遍历,生成所述原始全局配置文件。
11.优选的,所述利用预设ip修改清单对所述原始全局配置文件进行修改,获得新的全局配置文件,包括:利用ansible工具执行所述预设ip修改清单,将所述原始全局配置文件修改为所述新的全局配置文件。
12.第二方面,本技术还公开了一种集群系统的ip修改装置,包括:集群组件遍历模块,用于对集群系统内的集群组件进行遍历,生成原始全局配置文件;配置文件修改模块,用于利用预设ip修改清单对所述原始全局配置文件进行修改,获得新的全局配置文件;集群组件重生模块,用于根据所述新的全局配置文件重新生成各所述集群组件,并重启各集群组件服务。
13.第三方面,本技术还公开了一种集群系统的ip修改设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述的任一种集群系统的ip修改方法的步骤。
14.第四方面,本技术还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任一种集群系统的ip修改方法的步骤。
15.本技术所提供的一种集群系统的ip修改方法,包括对集群系统内的集群组件进行遍历,生成原始全局配置文件;利用预设ip修改清单对所述原始全局配置文件进行修改,获得新的全局配置文件;根据所述新的全局配置文件重新生成各所述集群组件,并重启各集群组件服务。
16.应用本技术所提供的技术方案,预先针对集群系统创建ip修改清单,即根据实际需求设定需要进行ip修改的集群组件的相关信息,由此,在通过集群组件遍历得到集群系统初始的全局配置文件(即上述原始全局配置文件)之后,即可直接利用预设ip修改清单对该原始全局配置文件进行修改,从而生成新的全局配置文件,由此,即可利用该新的全局配置文件进行集群组件的重新生成,并通过重启使得集群组件实现自适应调整并恢复至正常的工作状态,从而实现集群系统的ip修改。显然,该种实现方式无需对集群系统进行卸载重装,亦可保留集群系统内原有的数据和作业,有效地提高了集群系统内的ip修改效率,且可以完美适应用户机房搬迁、服务器搬迁、数据服务迁移、网络规划变化等实际应用场景,为
企业带来了巨大的经济价值。此外,由于不仅仅只进行原始全局配置文件的修改,还可以基于修改后的新的全局配置文件进行集群组件的重新生成和重启,即使面对结构更为复杂的集群系统,该种实现方式仍然可以实现快速高效的ip修改,且能够有效保证修改后的集群系统的稳定运行。
17.本技术所提供的一种集群系统的ip修改装置、设备及计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
18.为了更清楚地说明现有技术和本技术实施例中的技术方案,下面将对现有技术和本技术实施例描述中需要使用的附图作简要的介绍。当然,下面有关本技术实施例的附图描述的仅仅是本技术中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本技术的保护范围。
19.图1为本技术所提供的一种集群系统的ip修改方法的流程示意图;图2为本技术所提供的一种集群系统的ip修改装置的结构示意图;图3为本技术所提供的一种集群系统的ip修改设备的结构示意图。
具体实施方式
20.本技术的核心是提供一种集群系统的ip修改方法,该集群系统的ip修改方法可以在有效保留集群系统原有数据的同时,对其实现快速高效的ip修改;本技术的另一核心是提供一种集群系统的ip修改装置、设备及计算机可读存储介质,也具有上述有益效果。
21.为了对本技术实施例中的技术方案进行更加清楚、完整地描述,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
22.本技术实施例提供了一种集群系统的ip修改方法。
23.请参考图1,图1为本技术所提供的一种集群系统的ip修改方法的流程示意图,该集群系统的ip修改方法可包括:s101:对集群系统内的集群组件进行遍历,生成原始全局配置文件;本步骤旨在实现原始全局配置文件的获取,该原始全局配置文件即为未修改ip信息之前的集群系统内各集群组件的全局配置文件,由此,后续即可通过修改全局配置文件中的ip信息实现集群系统的ip修改。具体而言,可以先对当前集群系统内的各集群组件进行遍历,并基于遍历结果生成相应的原始全局配置文件。进一步,还可以将其保存至相应的文件中,以便后续使用。
24.可以理解的是,集群系统的类型并不影响本技术方案的实施,例如,可以为k8s集群、数据库集群、文件管理集群等,本技术对此不做限定。另外,集群组件则是指集群系统内的各类组件,如各类证书、各类服务器组件等,具体的集群组件类型可由集群系统自身结构所决定。
25.s102:利用预设ip修改清单对原始全局配置文件进行修改,获得新的全局配置文
件;本步骤旨在实现原始全局配置文件的修改,即通过修改原始全局配置文件中的ip信息,获得新的全局配置文件。具体而言,可以预先创建ip修改清单,得到上述预设ip修改清单,然后利用该预设ip修改请求确定原始全局配置文件中需要修改的具体内容,并对其进行修改,由此,即可得到新的修改后的新的全局配置文件。
26.其中,预设ip修改清单是由技术人员根据实际需求进行创建的,其中设置了集群系统内需要修改的各类集群组件的相关信息,如集群组件的名称、类型、原始ip等,以及各集群组件修改后的ip信息,以便实现ip修改。例如,以k8s集群系统为例,其对应的一种预设ip修改清单可以包括:设定修改k8s全局配置文件、集群/etc/hosts信息、/etc/etcd.env信息、/root/.kube/下的文件信息、/etc/kubernetes下的文件信息。
27.s103:根据新的全局配置文件重新生成各集群组件,并重启各集群组件服务。
28.本步骤旨在实现集群系统内集群组件的重新生成与重启。具体而言,在获得新的全局配置文件之后,由于该新的全局配置文件为修改ip信息之后的全局配置文件,由此,即可基于该新的全局配置文件进行相应集群组件的重新生成,显然,该重新生成的集群组件即为修改ip信息之后的、具有新的ip信息的集群组件;进一步,对集群系统内的各集群组件进行重启,使得各集群组件实现自适应调整并恢复至正常的工作状态,由此,完成集群系统的ip修改。
29.可见,本技术所提供的集群系统的ip修改方法,预先针对集群系统创建ip修改清单,即根据实际需求设定需要进行ip修改的集群组件的相关信息,由此,在通过集群组件遍历得到集群系统初始的全局配置文件(即上述原始全局配置文件)之后,即可直接利用预设ip修改清单对该原始全局配置文件进行修改,从而生成新的全局配置文件,由此,即可利用该新的全局配置文件进行集群组件的重新生成,并通过重启使得集群组件实现自适应调整并恢复至正常的工作状态,从而实现集群系统的ip修改。显然,该种实现方式无需对集群系统进行卸载重装,亦可保留集群系统内原有的数据和作业,有效地提高了集群系统内的ip修改效率,且可以完美适应用户机房搬迁、服务器搬迁、数据服务迁移、网络规划变化等实际应用场景,为企业带来了巨大的经济价值。此外,由于不仅仅只进行原始全局配置文件的修改,还可以基于修改后的新的全局配置文件进行集群组件的重新生成和重启,即使面对结构更为复杂的集群系统,该种实现方式仍然可以实现快速高效的ip修改,且能够有效保证修改后的集群系统的稳定运行。
30.在本技术的一个实施例中,上述利用预设ip修改清单对原始全局配置文件进行修改,获得新的全局配置文件之前,还可以包括:判断预设ip修改清单中是否存在集群节点修改信息;若是,则根据集群节点修改信息确定待修改集群节点,并将待修改集群节点的当前ip修改为指定ip。
31.本技术实施例所提供的集群系统的ip修改方法,还可以进一步实现集群节点的ip修改,修改集群节点的ip信息同样可基于预设ip修改清单实现。具体而言,在集群系统修改ip信息的过程中,除对集群系统内各集群组件的ip进行修改之外,还可以根据实际需求对集群节点的ip信息进行修改,其中,集群节点可以包括工作节点(node)和管理节点(master)等。有基于此,同样可以将需要修改的集群节点的节点信息、原始ip信息以及修改后的ip信息等记录至预设ip修改清单中。由此,在获得预设ip修改清单之后,基于预设ip修
改清单对原始全局配置文件进行修改之前,可以先判断预设ip修改清单中是否存在针对集群节点的修改信息,若存在,则可以先根据集群节点修改信息确定集群系统内的待修改集群节点,然后将其当前ip(即原始ip)修改为指定ip(即修改后的ip)。当然,如若预设ip修改清单中不存在集群节点修改信息,则可以直接执行上述利用预设ip修改清单对原始全局配置文件进行修改,获得新的全局配置文件的步骤。
32.具体的,可以设置master_both_node_is_change(是否修改即为master又为node的节点)、master_only_is_change(是否修改纯master节点)、node_only_is_change(是否修改纯node节点)、keepalived_vip_is_change(是否修改虚拟ip,该ip为k8s集群的虚拟ip,可通过访问该ip来访问k8s服务)等来决定是否修改;设置master_only_change(修改纯master节点清单)、master_both_node_change(修改即为master又为node的节点清单)、node_only_change(修改纯node节点清单)、keepalived_vip_change(修改虚拟ip)来区分要修改节点的类型,以便不同类型节点进行不同的操作;设置节点名+before/after来确定具体修改内容。如此设计结构清晰且考虑到了所有可能情况。
33.在本技术的一个实施例中,上述将待修改集群节点的当前ip修改为指定ip之前,还可以包括:判断指定ip是否满足预设格式规范;若否,则输出错误提示;若是,则执行将待修改集群节点的当前ip修改为指定ip的步骤。
34.为进一步提高ip修改效率,还可以为ip信息设定统一的格式规范,以便于将集群组件的ip修改为预设格式规范的ip。具体的,在将待修改集群节点的当前ip修改为指定ip之前,可以先判定预设ip修改清单中的指定ip是否满足预设格式规范,如果不满足,则可以直接输出错误提示,不再继续进行ip修改,并中断退出,如若满足,则可以进入将待修改集群节点的当前ip修改为指定ip的步骤。
35.其中,预设格式规范的具体类型并不影响本技术方案的实施,例如,在本技术中,可以将其设定为yaml格式,本技术对此不做限定。以yaml格式为例,在判断指定ip是否为yaml格式时,可以利用grep文本搜索工具匹配判断指定ip的格式是否为4个0-255的数字与点构成,若是,则可以确定指定ip满足yaml格式。
36.在本技术的一个实施例中,上述将待修改集群节点的当前ip修改为指定ip之后,还可以包括:重启集群系统的网络服务,并通过执行ping命令判断网络服务是否处于正常运行状态;若否,则输出错误提示;若是,则执行利用预设ip修改清单对原始全局配置文件进行修改的步骤。
37.为有效保证集群节点在进行ip修改后可以正常运行,可以在修改ip之后进行一次网络服务重启,保证集群系统的网络服务可以进入正常运行状态。具体的,在重启集群系统的网络服务之后,可以通过执行ping命令来判断重启后的网络服务是否处于正常运行状态,具体可以根据ping命令返回值验证网络服务器的运行状态;进一步,在确定重启后的网络服务处于正常运行状态时,则可以继续进行原始全局配置文件的修改,反之,如若启后的网络服务处于非正常运行状态,则可以输出错误提示,不再继续进行ip修改,并中断退出。
38.在本技术的一个实施例中,上述根据新的全局配置文件重新生成各集群组件,可以包括:根据新的全局配置文件重新生成etcd证书、组件证书、conf配置文件以及引导令牌。
39.本技术实施例提供了具体类型的集群组件,即上述etcd证书、组件证书、conf配置
文件以及引导令牌等。当然,集群组件的具体类型及数量并不仅限于此,可以根据集群系统结构的不同、类型的不同,进行不同的集群组件的ip信息修改,如上所述,具体的集群组件类型由集群系统自身结构所决定,本技术对此不做限定。
40.以k8s集群系统为例,对其集群组件进行ip修改的实现流程可以包括:(1)删除旧的证书文件与conf配置文件,默认为/etc/kubernetes/pki与/etc/kubernetes/*.conf;(2)重新生成etcd证书:可以使用openssl或其他方式重新生成etcd证书,并重启etcd服务;(3)重新生成k8s的conf配置文件:可以使用kubeadm init phase kubeconfig命令传输修改后的ip信息;(4)重新生成k8s组件相关证书:可以使用kubeadm init phase certs命令传输修改后的ip信息;(5)重新生成bootstrap-token使得集群能够正常扩缩容;(6)将新的证书信息同步至k8s配置中心:可以使用kubeadm init phase upload-certs同步证书;(7)重启k8s组件服务使其新的配置生效;(8)编辑修改configmap(服务配置)、daemonset(守护服务)、deployment(无状态服务)中的ip信息,使得k8s上的作业重新运行起来。
41.在本技术的一个实施例中,上述对集群系统内的集群组件进行遍历,生成原始全局配置文件,可以包括:利用kubeadm config view工具对集群系统内的集群组件进行遍历,生成原始全局配置文件。
42.本技术实施例提供了一种原始全局配置文件的生成方法,即基于kubeadm config view工具实现,该kubeadm config view工具是kubernetes的一种运维工具,其可以用于实现k8s集群系统的全局配置文件的生成,以便实现k8s集群系统ip修改,且该工具支持上述yaml格式。
43.在本技术的一个实施例中,上述利用预设ip修改清单对原始全局配置文件进行修改,获得新的全局配置文件,可以包括:利用ansible工具执行预设ip修改清单,将原始全局配置文件修改为新的全局配置文件。
44.本技术实施例提供了一种将原始全局配置文件修改为新的全局配置文件的实现方法,即可以基于ansible工具实现ip信息的自动化修改,具体的,可以使用ansible工具的lineinfile模块或sed命令进行ip修改。其中,ansible工具是一种自动化运维工具,用于发布、管理和编排计算机系统,可以基于资源清单与剧本任务实现远程控制节点的批量处理。并且,ansible工具同样可完美支持上述yaml格式,还可以实现集群系统网络服务的重启。
45.本技术还提供了一种集群系统的ip修改装置,请参考图2,图2为本技术所提供的一种集群系统的ip修改装置的结构示意图,该集群系统的ip修改装置可包括:集群组件遍历模块1,用于对集群系统内的集群组件进行遍历,生成原始全局配置文件;配置文件修改模块2,用于利用预设ip修改清单对原始全局配置文件进行修改,获得新的全局配置文件;
集群组件重生模块3,用于根据新的全局配置文件重新生成各集群组件,并重启各集群组件服务。
46.可见,本技术实施例所提供的集群系统的ip修改装置,预先针对集群系统创建ip修改清单,即根据实际需求设定需要进行ip修改的集群组件的相关信息,由此,在通过集群组件遍历得到集群系统初始的全局配置文件(即上述原始全局配置文件)之后,即可直接利用预设ip修改清单对该原始全局配置文件进行修改,从而生成新的全局配置文件,由此,即可利用该新的全局配置文件进行集群组件的重新生成,并通过重启使得集群组件实现自适应调整并恢复至正常的工作状态,从而实现集群系统的ip修改。显然,该种实现方式无需对集群系统进行卸载重装,亦可保留集群系统内原有的数据和作业,有效地提高了集群系统内的ip修改效率,且可以完美适应用户机房搬迁、服务器搬迁、数据服务迁移、网络规划变化等实际应用场景,为企业带来了巨大的经济价值。此外,由于不仅仅只进行原始全局配置文件的修改,还可以基于修改后的新的全局配置文件进行集群组件的重新生成和重启,即使面对结构更为复杂的集群系统,该种实现方式仍然可以实现快速高效的ip修改,且能够有效保证修改后的集群系统的稳定运行。
47.在本技术的一个实施例中,该集群系统的ip修改装置还可以包括节点ip修改模块,用于在上述利用预设ip修改清单对原始全局配置文件进行修改,获得新的全局配置文件之前,判断预设ip修改清单中是否存在集群节点修改信息;若是,则根据集群节点修改信息确定待修改集群节点,并将待修改集群节点的当前ip修改为指定ip。
48.在本技术的一个实施例中,上述节点ip修改模块还可用于在上述将待修改集群节点的当前ip修改为指定ip之前,判断指定ip是否满足预设格式规范;若否,则输出错误提示;若是,则执行将待修改集群节点的当前ip修改为指定ip的步骤。
49.在本技术的一个实施例中,该集群系统的ip修改装置还可以包括网络服务检查模块,用于在上述将待修改集群节点的当前ip修改为指定ip之后,重启集群系统的网络服务,并通过执行ping命令判断网络服务是否处于正常运行状态;若否,则输出错误提示;若是,则执行利用预设ip修改清单对原始全局配置文件进行修改的步骤。
50.在本技术的一个实施例中,上述集群组件重生模块3可具体用于根据新的全局配置文件重新生成etcd证书、组件证书、conf配置文件以及引导令牌。
51.在本技术的一个实施例中,上述集群组件遍历模块1可具体用于利用kubeadm config view工具对集群系统内的集群组件进行遍历,生成原始全局配置文件。
52.在本技术的一个实施例中,上述配置文件修改模块2可具体用于利用ansible工具执行预设ip修改清单,将原始全局配置文件修改为新的全局配置文件。
53.对于本技术提供的装置的介绍请参照上述方法实施例,本技术在此不做赘述。
54.本技术还提供了一种集群系统的ip修改设备,请参考图3,图3为本技术所提供的一种集群系统的ip修改设备的结构示意图,该集群系统的ip修改设备可包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时可实现如上述任意一种集群系统的ip修改方法的步骤。
55.如图3所示,为集群系统的ip修改设备的组成结构示意图,集群系统的ip修改设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口
12均通过通信总线13完成相互间的通信。
56.在本技术实施例中,处理器10可以为中央处理器(central processing unit,cpu)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
57.处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行集群系统的ip修改方法的实施例中的操作。
58.存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本技术实施例中,存储器11中至少存储有用于实现以下功能的程序:对集群系统内的集群组件进行遍历,生成原始全局配置文件;利用预设ip修改清单对原始全局配置文件进行修改,获得新的全局配置文件;根据新的全局配置文件重新生成各集群组件,并重启各集群组件服务。
59.在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
60.此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
61.通信接口12可以为通信模块的接口,用于与其他设备或者系统连接。
62.当然,需要说明的是,图3所示的结构并不构成对本技术实施例中集群系统的ip修改设备的限定,在实际应用中集群系统的ip修改设备可以包括比图3所示的更多或更少的部件,或者组合某些部件。
63.本技术还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上述任意一种集群系统的ip修改方法的步骤。
64.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
65.对于本技术提供的计算机可读存储介质的介绍请参照上述方法实施例,本技术在此不做赘述。
66.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
67.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
68.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom或技术领域内所公知的任意其它形式的存储介质中。
69.以上对本技术所提供的技术方案进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1