运维上海-Kubernetes与AI相结合架构落地解析_第1页
运维上海-Kubernetes与AI相结合架构落地解析_第2页
运维上海-Kubernetes与AI相结合架构落地解析_第3页
运维上海-Kubernetes与AI相结合架构落地解析_第4页
运维上海-Kubernetes与AI相结合架构落地解析_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

UTCon2◎17全球运维技术大会Kubernetes与AI相结合架构、落地解析(从0到1)技术总监(才云科技)主办方Geekbang>.InfoQ九折即将结束QCon全球软件开发大会团购还享更多优惠,折扣有效期至9月17日扫描右方二维码即可查看大会信息及购票10月17-19日上海·宝华万豪酒店如果在使用过程中遇到任何问题,可联系大会主办方,欢迎咨询!锁定席位on-0410011七折即将某省市2040元ArchSummit使用限时优惠码AS200,以目前最优惠价格报名ArchSummit全球架构师峰会2017仅限前20名用户,优惠码有效期至9月19日,扫描右方二维码即可使用锁定席位如果在使用过程中遇到任何问题,可联系大会主办方,欢迎咨询!12月8-9日北京·国际会议中心china66619极客邦科技极客搜索全站干货,一键触达,只为技术立即体验有没有一种搜索方式,能整合InfoQ中文站、极客邦科技旗下12大极客搜索,这款针对极客邦科技全站内容资源的轻量级搜索引擎,做到了!扫描上方二维码,极客搜索!这里只有技术领导者EGO会员第二季招募季正式开启报名时间:9月1日-9月15日扫描添加E小欧,邀您进入EGO会员预报名群立即报名TABLEOFCONTENTSKubernetes介绍Kubernetes使用Kubernetes部署与企业对接AI技术介绍AI云平台介绍及构成AI与Kubernetes融合与架构解析UTCon2◎17主办方Geekbang>.全球运维技术大会Kubernetes介绍•是一套集自动部署,弹性扩容,并且基于容器的集群管理工具。快速部署应用程序弹性负载均衡无缝升级应用硬件隔离UTCon2◎17Geekbang>.全球运维技术大会LXC(LinuxContainer)介绍在单一系统的内核层通过一套API在应用层提供硬件及软件环境隔离的Linux环境(containers)。在内核层,通过cgroup来提供硬件环境的隔离(例如CPU,Memory,BlockI/O,网络等等)和通过namespace来提供软件层面的隔离(例如processtree,网络,userIDs和挂载的文件系统)。UTCon2◎17Container框架通过在Kernel层面提供的API来达到上层可以容器化应用程序。BusinessAppBusinessAppBusinessAppBusiness/ContainerLayer

(Userspace)ContainerContainerContainerControlGroup

(Cpu,Memory,IO)Namespaces

(pid,net,ipc,mnt,uts)SCI(SystemCallInterface)(Kernel)CPUSystemRAMGPUDiskNetworkingInforstructureUTCon2017ContainerVSVM(Virtual

Machine)由于采用系统当前的内核,Container会启动加载更快,更轻量,某省市资源。App1App1App…App…libs/binslibs/binsOSOSVMVMApp1App1libs/binslibs/binsOSOSVMVMApp1App1libs/binslibs/binsOSOSVMVMContainerized

ApplicationsContainerized

ApplicationsContainerized

ApplicationsContainerized

ApplicationsHypervisorlibs/binsHypervisorOperatingSystemOperatingSystemCPUSystemRAMGPUDiskNetworkingUTCon2◎17ContainerImage用来将需要容器化的应用程序及其环境进行打包后存储的镜像。·通常会有一个Image管理仓库来存储Image。·同一个Image会有版本记录。ImageRepoImagePush只包含软件环境的配置ImagePull硬件配置需要运行时去指定ServerAServerBServer...ImageAImageAImageAImageBImageBImageBImageCImageCImageCImage...Image...Image...UTCon2◎17Geekbang>.InfoQ全球运维技术大会主办方UT)OCI(OpenContainerInitiative)·FromLinuxFoundation·旨在为Container格式和运行时创建开放行业标准。·该组织于2015年6月22日由Docker,CoreOS等Container行业的领导人推出。·OCI目前包含两个规范:·运行时规范(runtime-spec)·Image规范(image-spec)Container管理工具(UserSpace)Softwarerkt

docker

●Core○S

panydockerUTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会极客邦科技如何通过Docker启动Container并与硬件绑定$dockerrun-it--cpus=".5"ubuntu/bin/bash官方文档参考:docs.docker/engine/admin/resourceconstraints/Kubernetes架构KubernetesMasterControllerManagerSchedulerAPIServerNodeKubeletKubeProxyETCDClusterDocker/rktETCDflannelETCDETCDUT)UTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会极客邦科技Kubernetes基本概念-Node一个Node是一个Kubernetes众多集群中的一个工作节点,一个Node可以是一台物理服务器或者虚拟机。一个Node的作用是用来运行pods的环境,并且被Master组件所管理。一个Node包含如下组件:·Docker/rkt·kubelet·kube-proxyKubernetes基本概念-MasterMaster节点是Kubernetes环境中的管理节点,负责整个集群的资源管理/分配,容器编排。一个Master节点包含如下组件:·kube-controller-manager·kube-apiserver·kube-schedulerKubernetes与Container通信框架Kubernetes通过CRI(ContainerRuntimeInterface)层将Kuernetes与具体的Container管理工具隔离,并且可以进行Container的操作。UT)全球运维技术大会在Node上的层次关系K8s

MasterNodekubeletkube-proxyDocker/rktContainerContainerContainerContainerOS(cgroup/namespace)Hardware(CPU,Memory,GPU,Disk,Networking)UTCon2◎17主办方Geekbang>.InfoQ

UT)全球运维技术大会极客邦科技通过Label的方式将Node分类在企业环境中Node很有可能需要进行不同类别的区分,而每一类Node上的环境都有可能会不同。KubernetesMasterputing

NodesStorageNodesOtherNodesUTCon2◎17Geekbang>.InfoQ全球运维技术大会主办方UT)关键点回顾·Kubernetes是什么:容器编排工具•Container与VM比较的优势:更轻量化,更快,更·ContainerImage的管理·Container运行与Image的标准:OCI·Kubernetes的基本架构:Master与Node•Node上的软件架构:Kubernetes与container通信,Node

的分类UTCon2◎17全球运维技术大会TABLEOFCONTENTSKubernetes介绍Kubernetes使用Kubernetes部署与企业对接AI技术介绍AI云平台介绍及构成AI与Kubernetes融合与架构解析UTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会Kubernetes基本概念-PodConsumers·Pod是Kubernetes中最小的资源Content

Manager·一个Pod包含一个或多个ContainerFile

PullerWeb

Server·Pod内的Containers可以共享网络和存储VolumePodUTCon2◎17Geekbang>.InfoQ全球运维技术大会主办方UT)Kubernetes基本概念-Service·Service是一组Pod协同工作。·有时也被称为微服务。Client·可以给Service添加标签(label)来标识其业务属性。VirtualIP·通过kube-proxy可以得到固定的virtualIP和端口。UTCon2◎17Geekbang>.InfoQ全球运维技术大会主办方UT)Kubernetes基本概念-Controller·一个controller可以创建和管理多个pod·可以决定同时可以多少个相同的pod在同时运行·维护pod的状态Kubernetes基本概念–Storage(volume)·达到非储的方式KubernetesCluster·可以视作一个目录Pod1Pod…ContainersContainers·将存储挂在到Pod及其内部containers的一种方式。KubernetesVolumeMountDistributed

FileSystemUTCon2◎17Geekbang>.InfoQ全球运维技术大会主办方NUT)快速部署一个应用-kubectl·kubectI是一个命令行操作Kubernetes的工具,可以在Kubernetes平台上进行容器编排。//Createaserviceusingthedefinitioninexample-service.yaml.$kubectlcreate-fexample-service.yaml//Listallpodsinplain-textoutputformat.$kubectlgetpods//Displaythedetailsofthenodewithname<node-name>.$kubectldescribenodes<node-name>//Returnasnapshotofthelogsfrompod<pod-name>.$kubectllogs<pod-name>Geekbang>.InfoQ关键点回顾·Pod·Service●Controller·Volume·Kubectl全球运维技术大会TABLEOFCONTENTSKubernetes介绍Kubernetes使用Kubernetes部署与企业对接AI技术介绍AI云平台介绍及构成AI与Kubernetes融合与架构解析UTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会Kubernetes企业级架构在企业级架构中,Kubernetes更多是作为一个核心组件进行部署。在这个核心组件的外围,我们还有其他的功能需要提供。门户展示层PAASOpenAPI应用商店CI&CDApachePaaS服务NginxPaaS服务用户管理日志管理监控管理跟踪证书管理事件跟踪日志聚合基础资源监控主流中间件监控角色管理应用/容器日志查询告警流量监控资源管理容器管理镜像仓库应用管理集群部署负载均衡容器远程登录镜像上传应用创建应用删除配置管理网络管理容器文件上传镜像同步应用查看应用模版主机管理存储管理容器文件下载镜像删除标签管理应用编排加减节点一键升级容器在线导出镜像镜像安全扫描灰度部署应用更新Kubernetes容器编排引擎(高可用)资源管理任务调度网络分配服务发现分区管理扩容缩容资源层OpenStackXen物理资源UTCon2◎17全球运维技术大会主办方Geekbang>.InfoQUT)用户管理按资源组和层级用户的区分UTCon2◎17主办方Geekbang>.InfoQ用户访问权限管理根据用户功能组进行访问验证AuthBusiness

ponentsKubernetesClusterdexUTCon2◎17主办方Geekbang>.InfoQUT)全球运维技术大会极客邦科技用户操作日志·对用户的操作进行记录·对用户的资源使用状况进行统计·对多用户的资源使用状况进行统计全球运维技术大会InfoQ监控·实时的集群及Containers信息监控(包括CPU,Memory,BIO,Networking)·监控预警的阀值设置·收集监控日志WebUIPrometheusServerServerKubeletCAdvisorJobs/ExportersOSAppsUT)UTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会存储管理·对于所有KubernetesVolume

按照业务类型提供统一的管理·用户在进行Volume操作的时候根据业务进行中间层处理,包括但不限于访问权限,大小申请,读写操作等UserOperationsUserBusinessAppsVolumeManagementSystemDistributedSystemVolumeVolumeVolumeNUT)UTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会多集群管理•根据用户不同的角色进行集群不同的环境选择·在业务层面让用户感知为统一的环境User

GroupAUser

GroupBCustomersUnifiedBusinessLayerKubernetesCluster

(DevEnvironment)KubernetesCluster

(TestEnvironment)KubernetesCluster

(OnlineEnvironment)UTCon2◎17主办方Geekbang>.InfoQUT)全球运维技术大会极客邦科技云提供服务形式SeparationofResponsibilitiesOn-PremisesInfrastructure

(asaService)PlatformSoftware

(asaService)(asaService)ApplicationsApplicationsApplicationsApplicationsDataDataDataDataRuntimeRuntimeRuntimeRuntimeMiddlewareMiddlewareMiddlewareMiddlewareO/SO/SO/SO/SコロVirtualizationVirtualizationVirtualizationVirtualizationServersServersServersServersStorageStorageStorageStorageNetworkingNetworkingNetworkingNetworkingUTCon2◎17Geekbang>.InfoQ

全球运维技术大会主办方UT)关键点回顾企业级架构用户管理用户访问权限管理用户操作日志硬件监控存储管理多集群管理根据客户需求不同进行不同层次的封装TABLEOFCONTENTSKubernetes介绍Kubernetes使用Kubernetes部署与企业对接AI技术介绍AI云平台介绍及构成AI与Kubernetes融合与架构解析UTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会Al(ArtificialIntelligence)人工智能(英语:ArtificialIntelligence,Al)亦称机器智能,是指由人工制造出来的系统所表现出来的智能。通常人工智能是指通过普通电脑实现的智能。同时也指研究这样的智能系统是否能够实现,以及如何实现的科学领域。UTCon2◎17UT)全球运维技术大会主办方AI具体应用场景BLACKLISTVIPBOSCHVIPUT)UTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会极客邦科技机器学习vs深度学习·机器学习是指通过算法,对数据进行分析,最终得出判断。·深度学习是指通过人工神经网络,通过对数据进行分析学习,最终得出判断。•机器学习最难的地方在于特征的提取,而深度学习认为特征提取是可以通过人工神经网络学习而得出结论的。深度学习在非结构化数据方面有很大的优势。卷积神经网络N通过卷基层和池化层的网络结构进行不断的对图像的特征提取UTCon2◎17Geekbang>.UT)数组运算并行化﹣CUDAbyExample将数组a和数组b相加并将计算结果放入数组c中。voidadd(int*a,int*b,int*c){for(i=0;i<N;i++){c[i]=a[i]+b[i];}}数组运算并行化﹣CUDAbyExample当我们有多个core的时候CPUCORE1CPUCORE2voidadd(int*b,int*a,int*c){inttid=0;while(tid<N){c[tid]=a[tid]+b[tid];tid+=2;}}voidadd(int*b,int*a,int*c){inttid=0;while(tid<N){c[tid]=a[tid]+b[tid];tid+=2;}}全球运维技术大会深度学习对于并行化硬件的依赖﹣GPU·Core的多少往往决定真正并行化运算的数量TESLAM60FEATURESANDBENEFITS>Twohigh-endNVIDIAMaxwell"MGPUs>36H.2641080p30streams>Upto32usersperboard>ECCprotectionforincreasedreliability>4096NVIDIACUDA®cores〔2048perGPU〕>Serveroptimizationtodeliverthebestthroughputinthedata

center>16GBofGDDR5memory(8perGPU)UTCon2◎17全球运维技术大会主办方Geekbang>InfoQGPU硬件使用流程//allocatethememoryontheGPUMain

MemoryCPUHANDLEERROR(cudaMalloc((void**)&deva,N*sizeof(int)));1Copyprocessingdata//copythearrays'a'and'b'totheGPUInstructtheprocessingHANDLEERROR(cudaMemcpy(deva,a,N*sizeof(int),42cudaMemcpyHostToDevice));Copytheresultadd<<<N,1>>>(deva,devb,devc);Memory

forGPUGPUExecuteparallel

ineachcore//copythearray'c'backfromtheGPUtotheCPU

HANDLEERROR(cudaMemcpy(c,devc,N*sizeof(int),cudaMemcpyDeviceToHost));(GeForce8800)3ExampleofCUDA

processingflow1.复制存储器至GPUnVIDIA.CUDA®2.CPU指令驱动GPU3.GPU每一核心并行处理Processingflow

onCUDA4.GPU将结果传回主存UTCon2◎17主办方Geekbang>.InfoQNUT)全球运维技术大会极客邦科技AI模型AI模型会决定最终使用资源的多少AI模型的服务性能还与网络相关·并不是所有AI模型都适合通过GPU加速全球运维技术大会主办方TABLEOFCONTENTSKubernetes介绍Kubernetes使用Kubernetes部署与企业对接AI技术介绍AI云平台介绍及构成AI与Kubernetes融合与架构解析UTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会AI云平台的价值·为AI工程师提供一体化的研发工作环境·为AI对于硬件资源需求提供弹性伸缩·为AI模型在生产环境中部署及运行提供保障UTCon2◎17AI模型实现工具及其框架举例·不同的框架和工具都有其优点长处。dmlcBVLC/caffemxnetTensorFlowCognitiveToolkit全球运维技术大会AI工程师工作流程UTCon2◎17Geekbang>.InfoQ存储对接·存储通常都由云平台通过SaaS服务提供·在AI平台中对于存储进行统一的管理和操作AIPlatformAITools&FrameworksStorage

ManagementStorageAPIonCloud

EnvironmentMySQLHDFSOthersUT)UTCon2◎17主办方Geekbang>.InfoQ

全球运维技术大会数据预处理AI工程师的大部分工作都是在做数据预处理的部分,而可视化UI则可以大大减少AI工程师的工作量。可视化UITools(numpy,pandas,opencv...)OperatingSystem分布式存储结构化数据非结构化数据UT)UTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会极客邦科技AI工具及其研发框架的整合UI算法生成(通过UI

或代码编辑)算法运行算法运行算法参数配置环境监控管理AItools&Framework:XGBoost,TensorFlow,Caffe...OperatingSystemUT)UTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会极客邦科技模型训练资源池管理·AI模型训练会耗费巨大的资源并且长时间占用·多个用户在模型训练时需要通过队列的方式来解决资源短缺问题·需要对不同用户进行资源池划分UTCon2◎17全球运维技术大会模型管理与发布模型发布:模型服务的负载均衡硬件资源的规划模型管理:模型的版本模型的类型全球运维技术大会研发环境与生产环境隔离硬件资源互相隔离网络资源相互连通UTCon2◎17Geekbang>.InfoQ资源监控及分配策略·用户资源的限制●-创建训练任务的限制·-创建模型服务的限制·资源使用的负载均衡状况●-总体资源使用的状况●-单个用户的资源使用状况UTCon2◎17TABLEOFCONTENTSKubernetes介绍Kubernetes使用Kubernetes部署与企业对接AI技术介绍AI云平台介绍及构成AI与Kubernetes融合与架构解析UTCon2◎17主办方Geekbang>.AI云平台与Kubernetes融合WebUI•Kubernetes作为AI平台的一个核心调度和任务管理平台AuthAIplatformUser

management·AI业务层负责将具体的业务逻辑实现,并与Kubernetes层对接Data

PreprocessModel

GeneratorModel

OnlineSystem

MonitorStorage

Management•在底层硬件选型需要注意适合AI模型训练和在线服务的类型,例如10G及以上的networking和GPUKubernetesClusterManagementKubernetesClustersDistributed

FileSystemsHardware(CPU,Memory,GPU,Storage)UTCon2◎17主办方Geekbang>.InfoQNUT)全球运维技术大会TensorFlow介绍·TensorFlowTM是一个使用数据流图进行数值计算的开源软件库。图中的节点代表数学运算,而图中的边则代表在这些节点之间传递的多维数组()。这种灵活的架构可让您使用一个API将计算工作部署到桌面设备、服务器或者某著名企业设备中的一个或多个CPU或GPU。TensorFlow最初是由Google机器智能研究部门的GoogleBrain团队中的研究人员和工程师开发的,用于进行机器学习和深度神经网络研究,但它是一个非常基础的系统,因此也可以应用于众多其他领域。TensorFlowUTCon2◎17分布式TensorFlowsingleprocessclient

processmaster

processclientmastersession

runsession

runexecute

subgraphexecute

subgraphworker

process1worker

process2worker

process3workerGPU₀GPU₀GPU₀GPU₀GPU₁CPU₀GPU₁CPU₀GPU₁CPU₀GPU₁CPU₀UT)UTCon2◎17主办方Geekbang>.InfoQ

全球运维技术大会极客邦科技存储对接通过Kubernetes的Volume

机制将分布式存储的具体地址mount到TensorFlowPS和Worker的Container,使Container可以得到需要处理的数据KubeletPod0Containerized

PSHDFSMySQLKubeletPod1Containerized

WorkersOthersNUT)UTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会极客邦科技资源队列TrainingTaskSchedulerHDFSQueue1Queue2Queue...TrainingTask…TrainingTask...TrainingTask…TrainingTask3TrainingTask3TrainingTask3MySQLTrainingTask2TrainingTask2TrainingTask2TrainingTask1TrainingTask1TrainingTask1OthersKubernetesClustersUTCon2◎17NUT)全球运维技术大会主办方Geekbang>.极客邦科技InfoQ资源队列在不同的集群分布·针对不同的用户设置不同的资源池·资源池存在硬件分配原则的差异,例如资源的多少,类型。模型发布ModelImagesRepoCustomersKubernetesCluster(devenv)KubernetesCluster(relenv)Training

QueueModel

pre-releaseModel

releasePublic

networking

serviceEngineersUTCon2◎17主办方Geekbang>.InfoQUT)全球运维技术大会极客邦科技AlPlatform本身的运行1.容器化·2.对接KubernetesAPI,实现资源的分配与调度·3.进行多KubernetesCluster的配置(需要进行跨集群的操作)UTCon2◎17全球运维技术大会CaicloudTaaS云平台TensorFlowasaService(TaaS)平台专注于将Google级AI模型生成及服务工具TensorFlow打造成一个成熟的商业级人工智能平台为个人和企业解决计算资源短缺、环境配置复杂、资源管理缺失等问题.●集群资源弹性管理●用户/硬件资源管理●用户/硬件资源监控●模型/服务部署●商业级的模型服务平台caicloudUTCon2◎17主办方Geekbang>.InfoQ全球运维技术大会极客邦科技TaaS主要功能列表功能类别功能类别功能功能企业级功能企业级功能用户权限管理用户权限管理存储管理存储管理资源管理资源管理个人研发功能个人研发功能模型训练模型训练模型上线服务模型上线服务原生态TensorBoard支持原生态TensorBoard支持训练项目管理训练项目管理代码编辑代码编辑GPU支持GPU支持远程命令行支持远程命令行支持UTCon2◎17主办方TaaS运行原理storagenetworkTrainingJob2Status:waitingWaitingNo:1QueueNo:1Model1containerPScontainerworkercontainer0workercontainer1workercontainer...nModel2containerTrainingJob2Status:waitingWaitingNo:1QueueNo:0Model3containerPScontainerworkercontainer0workercontainer1workercontainer...nModel4containerTrainingJob0Status:runningQueueNo:1PScontainerworkercontainer0workercontainer1workercontainer...nHDFSModel5containerTrainingJob0Status:runningQueueNo:0Model6containerPScontainerworkercontainer0workercontainer1workercontainer...nTaaS

StorageModel…ncontainerUTCon2◎17主办方Geekbang>.InfoQUT)全球运维技术大会极客邦科技TaaS主要功能-数据存储Caicloud数据存储使用指南taasdemo首页新增文件夹上传终端图类型:disk总容量:2GB账户消费明细消费明细订单记录订单记录名称↑名称↑修改时间账户充值账户充值.trashcan.trashcan2017-07-0815:46:04人工智能人工智能mnist-demomnist-demo2017-07-0917:42:18数据存储数据存储mnist-logsmnist-logs2017-07-0816:20:21TensorFlow模型训练TensorFlow模型托管TensorFlow模型训练TensorFlow模型托管mnist1-logsmnist1-logs2017-07-0917:54:08AI算法库AI算法库sedmodelsedmodel2017-07-0917:28:08NeetoCaiCloudShell!root@fileserver--0zttl:/caicloud/taasdemo#UTCon2◎17主办方TaaS主要功能–项目管理CaicloudTensorFlow模型训练使用指南taasdemomnistTensorFlow训练状态Z0◯020创建时间2017-07-0816:15:43项目列表mnistmnist1UTCon2◎17全球运维技术大会模型任务列表项目总览+TensorFlow模型训练快速部署#27#27训练成功训练成功#26#26✔✔训练成功训练成功#22#22✔✔训练成功训练成功#21#21✔✔训练成功训练成功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论