当前位置: 首页 > news >正文 长沙招聘网站信息图制作网站 news 2025/11/1 0:39:29 长沙招聘网站,信息图制作网站,西部数码网站管理助手3.0教程,安徽城乡建设网站k8s从入门到实践 介绍 Kubernetes#xff08;简称k8s#xff09;和Docker Swarm是两个流行的容器编排工具#xff0c;它们都可以帮助用户管理和部署分布式应用#xff0c;尤其是基于容器的应用。以下是两者的主要特点和对比#xff1a; Kubernetes (k8s)#xff1a; 开…k8s从入门到实践 介绍 Kubernetes简称k8s和Docker Swarm是两个流行的容器编排工具它们都可以帮助用户管理和部署分布式应用尤其是基于容器的应用。以下是两者的主要特点和对比 Kubernetes (k8s) 开源项目由Google发起现在由Cloud Native Computing Foundation (CNCF)管理。 成熟度与社区支持拥有庞大的开发者社区和生态系统高度活跃且持续更新迭代支持众多云服务提供商以及企业内部部署。功能丰富提供了丰富的特性集包括服务发现、自动伸缩、滚动更新、故障恢复、存储卷管理、网络策略、资源调度等。复杂性因为其强大的功能和设计目标Kubernetes的架构和配置相对复杂对初学者而言学习曲线较陡峭。可扩展性可通过CRDs自定义资源定义进行扩展支持各种第三方插件和API以适应更复杂的场景需求。 Docker Swarm 原生集成作为Docker官方开发的集群解决方案与Docker Engine紧密集成使用标准的Docker API对熟悉Docker的用户更为友好。易用性相比KubernetesSwarm在设置和操作上相对简单适合轻量级和中小规模的部署场景。功能范围虽然也提供基本的服务发现、负载均衡、节点管理等功能但整体功能集相较于Kubernetes略显简化。自动化能力Swarm支持服务复制、滚动更新等基础的自动化运维功能但在高级调度策略和弹性伸缩方面不如Kubernetes灵活强大。 总结起来Kubernetes适用于需要大规模、复杂环境和高度自动化运维的企业级应用场景而Docker Swarm则更适合快速搭建和管理小型或中型容器化应用集群的团队。随着技术发展虽然Swarm仍然在维护但Kubernetes因其广泛接受度和丰富生态在行业中的采用率更高。 基本概念 在Kubernetesk8s部署工作流程中涉及多个核心概念和组件。以下是一些基本概念的详解 Pod Pod是Kubernetes中运行容器的基本单元它代表集群中能够运行应用或服务的一个抽象。一个Pod可以包含一个或多个紧密相关的容器这些容器共享存储卷、网络命名空间和其他资源。Deployment Deployment是一种声明式更新策略对象用于管理Pod副本集及其滚动更新、回滚等生命周期操作。通过创建Deployment你可以指定期望的Pod数量以及Pod的模板定义。副本集ReplicaSet 副本集中的Pod是无状态的每个Pod实例之间可以互换。ReplicaSet由Deployment控制确保任何时刻都有指定数量的Pod副本处于Running状态。当Pod由于各种原因终止时ReplicaSet会自动创建新的Pod以保持预期的副本数量。状态集StatefulSet 状态集适用于需要持久化存储和稳定网络标识的有状态应用如数据库集群、分布式文件系统等。状态集中的Pod是有状态的每个Pod都有唯一的网络标识符hostname并且拥有持久化的存储卷。Service Kubernetes Service是一个抽象层它定义了一种访问Pod的方式即使Pod可能会动态地创建或销毁。它提供了负载均衡功能并且可以通过标签选择器来找到关联的Pod提供服务。ConfigMap Secret ConfigMap用来存储非敏感的应用配置数据而Secret则用于保存敏感信息如密码、密钥等。两者都可以挂载到Pod中作为环境变量或者文件使用使得应用程序的配置与代码分离便于管理和更新。Volume Volume是持久化存储的一种方式它可以将主机的目录或云存储系统映射到Pod内的容器中使得容器的数据可以在容器重启后得以保留。Label Selector Label是对Kubernetes对象如Pod、Service等进行分类和标识的关键字/值对。Selector则是根据特定的label来查找匹配的对象例如Deployment使用selector来确定应该管理哪些PodService使用selector来决定将请求路由给哪些Pod。Namespace Namespace为Kubernetes集群内部提供了逻辑上的隔离允许在一个物理集群内运行多个独立的虚拟集群每个namespace都有自己的资源分配和名称空间。Horizontal Pod Autoscaler (HPA) HPA可以根据CPU使用率或自定义度量指标自动调整Pod的数量以满足资源需求的变化。Ingress Controller Ingress是集群对外暴露HTTP/HTTPS服务的一种方式它定义了如何将外部请求路由到集群内部的服务。Ingress Controller负责实现Ingress规则并提供负载均衡功能。 部署流程示例 整个部署工作流程通常包括编写YAML文件定义上述资源然后使用kubectl apply命令将资源配置应用到集群最后监控和维护这些资源的状态。 编写YAML/JSON资源定义文件 # MySQL数据库Deployment和Service --- apiVersion: apps/v1 kind: Deployment # Deployment是一种声明式更新策略对象用于管理Pod副本集及其滚动更新、回滚等生命周期操作。通过创建Deployment你可以指定期望的Pod数量以及Pod的模板定义。 metadata:name: mysql-deployment spec:replicas: 1selector:matchLabels:app: mysqltemplate:metadata:labels:app: mysqlspec:containers:- name: mysqlimage: mysql:5.7env:- name: MYSQL_ROOT_PASSWORDvalue: passwordports:- containerPort: 3306volumeMounts:- mountPath: /var/lib/mysqlname: mysql-persistent-storagevolumes:- name: mysql-persistent-storagepersistentVolumeClaim:claimName: mysql-pvc--- apiVersion: v1 kind: Service metadata:name: mysql-service spec:selector:app: mysqlports:- port: 3306targetPort: 3306clusterIP: None # 如果仅集群内部使用设置为None否则可设置为ClusterIP、NodePort或LoadBalancer---# Redis Deployment和Service --- apiVersion: apps/v1 kind: Deployment metadata:name: redis-deployment spec:replicas: 1selector:matchLabels:app: redistemplate:metadata:labels:app: redisspec:containers:- name: redisimage: redis:latestports:- containerPort: 6379volumeMounts:- mountPath: /dataname: redis-persistent-storagevolumes:- name: redis-persistent-storagepersistentVolumeClaim:claimName: redis-pvc--- apiVersion: v1 kind: Service metadata:name: redis-service spec:selector:app: redisports:- port: 6379targetPort: 6379clusterIP: None # 根据实际需求调整服务类型---# Nginx Deployment和Service --- apiVersion: apps/v1 kind: Deployment metadata:name: nginx-deployment spec:replicas: 2selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:stable-alpineports:- containerPort: 80volumeMounts:- mountPath: /etc/nginx/conf.dname: nginx-config-volumevolumes:- name: nginx-config-volumeconfigMap:name: nginx-configmap--- apiVersion: v1 kind: Service metadata:name: nginx-service spec:type: LoadBalancer # 对外暴露HTTP服务可以是NodePort或LoadBalancer类型selector:app: nginxports:- port: 80targetPort: 80---# 微服务文件服务Deployment和Service假设名为file-service --- apiVersion: apps/v1 kind: Deployment metadata:name: file-service-deployment spec:replicas: 3selector:matchLabels:app: file-servicetemplate:metadata:labels:app: file-servicespec:containers:- name: file-serviceimage: your-file-service-image:latestports:- containerPort: 8080 # 根据实际端口调整env:- name: DB_HOSTvalue: mysql-service- name: REDIS_HOSTvalue: redis-service- name: OTHER_SERVICE_CONFIG # 其他环境变量...--- apiVersion: v1 kind: Service metadata:name: file-service-service spec:selector:app: file-serviceports:- port: 8080targetPort: 8080# 定时任务服务类似上述方式进行定义...k8s特性分析 服务发现 它允许系统中的组件无需知道彼此的具体网络位置例如IP地址和端口即可相互通信。 自动伸缩 水平自动伸缩 (Horizontal Pod Autoscaling, HPA) HPA可以根据CPU使用率、内存使用率或其他自定义度量标准来动态调整Deployment、ReplicaSet或StatefulSet中的Pod数量。当监控到的目标资源使用率超过或低于设定阈值时HPA控制器会相应地增加或减少Pod的副本数。 apiVersion: autoscaling/v2beta2kind: HorizontalPodAutoscalermetadata:name: my-app-hpanamespace: defaultspec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: my-app-deploymentminReplicas: 2 # 最小副本数maxReplicas: 10 # 最大副本数metrics:- type: Resourceresource:name: cputargetAverageUtilization: 50 # 目标CPU使用率为50% # 在这个示例中Kubernetes将监控my-app-deployment的平均CPU使用率并保持在50%左右。如果CPU使用率高于50%HPA将增加Pod的副本数量反之如果低于50%则可能减少副本数量但始终保持至少2个副本。垂直自动伸缩 (Vertical Pod Autoscaling, VPA) VPA可以自动调整单个Pod的资源请求如CPU和内存。它分析Pod的资源利用率历史记录并基于这些数据动态更新Pod的资源请求确保Pod能够得到足够的资源而又不会过度分配。 apiVersion: autoscaling.k8s.io/v1kind: VerticalPodAutoscalermetadata:name: my-app-vpanamespace: defaultspec:targetRef:apiVersion: apps/v1kind: Deploymentname: my-app-deploymentupdatePolicy:updateMode: Auto # 自动模式下VPA会自动调整Pod资源请求滚动更新 在Kubernetesk8s中滚动更新是一种升级应用的策略它允许您在不停止服务的情况下逐步替换集群中的Pod。通过这种方法可以确保在整个更新过程中始终有部分Pod运行旧版本的应用程序另一部分Pod运行新版本的应用程序从而实现业务连续性和零停机时间。 滚动更新详细说明 操作方式 当您更改了Deployment或StatefulSet资源对象的Pod模板例如更新镜像标签Kubernetes会自动触发滚动更新过程。更新过程是增量式的每次只更新一部分Pod而不是一次性替换所有Pod。更新策略 maxUnavailable定义在更新过程中最多可以有多少比例或数量的Pod不可用。maxSurge定义在更新过程中可以额外创建多少比例或数量的Pod来加快更新速度。生命周期钩子 Kubernetes支持预停止preStop和后启动postStart等生命周期钩子可以在Pod被终止前执行清理任务或者在Pod启动时执行初始化任务。 回滚机制 如果新的Pod无法正常启动或健康检查失败Kubernetes能够自动回滚到更新前的状态以保持服务稳定。进度追踪 更新过程中您可以观察到每个Pod的状态变化并且控制平面会监控整个更新流程确保满足用户指定的更新策略 apiVersion: apps/v1 kind: Deployment metadata:name: my-app-deployment spec:replicas: 3 # 假设我们希望有3个副本selector:matchLabels:app: MyApptemplate:metadata:labels:app: MyAppspec:containers:- name: my-app-containerimage: registry.example.com/my-app:v1 # 老版本镜像ports:- containerPort: 80strategy:type: RollingUpdate # 指定滚动更新策略类型rollingUpdate:maxUnavailable: 1 # 允许最多一个Pod不可用maxSurge: 1 # 在更新期间最多增加一个额外的Pod# 若要进行滚动更新只需修改容器镜像为新版本 # 将上面的 image: registry.example.com/my-app:v1 改为 image: registry.example.com/my-app:v2故障恢复 在Kubernetesk8s中故障恢复是通过一系列内置机制实现的这些机制确保了即使在节点或Pod出现故障时也能自动进行恢复以保持集群服务的高可用性和稳定性。以下是Kubernetes中主要的故障恢复机制 自我修复能力 健康检查和就绪探针Kubernetes使用liveness probe和readiness probe来监控Pod的状态。如果一个Pod不健康liveness probe失败Kubernetes会重新启动该Pod如果Pod未准备好处理请求readiness probe失败则不会将其流量分发到该Pod直到它通过健康检查。 apiVersion: v1kind: Podmetadata:name: my-app-podspec:containers:- name: my-app-containerimage: my-app:v1ports:- containerPort: 80livenessProbe: # 健康检查httpGet:path: /healthport: 80initialDelaySeconds: 30periodSeconds: 10readinessProbe: # 就绪探针httpGet:path: /readyport: 80initialDelaySeconds: 5periodSeconds: 10副本集和状态集 副本集ReplicaSet用于确保指定数量的Pod实例始终运行。当某个Pod因任何原因终止时ReplicaSet将创建新的Pod来替换它。状态集StatefulSet对于需要稳定唯一标识符和持久存储的应用程序StatefulSet会在保证有序更新和缩放的同时提供Pod的故障恢复功能 节点失败 当节点构成k8s集群的单个物理或虚拟计算设备由于硬件故障、网络中断、软件错误等原因无法正常工作时kubelet无法向API服务器发送心跳则节点会被标记为不可调度并且其上的Pod会被重新调度到健康的节点上运行。网络策略和负载均衡 网络策略和服务资源可以确保即使某些Pod因为故障而不可达客户端仍然可以通过Service的IP地址访问到后端正常工作的Pod从而实现服务级别的故障恢复。持久化存储 使用持久卷PersistentVolume和持久卷声明PersistentVolumeClaim数据可以在Pod重启或节点失效时得以保留确保应用的数据完整性。资源限制和QoS Kubernetes通过设置资源限制和质量等级QoS对Pod进行管理和优化避免资源不足导致的系统级问题并优先保证重要Pod的资源供应。 综上所述Kubernetes通过多个层次的设计和自动化控制实现了从Pod级别到整个集群层面的故障恢复机制确保应用程序能够在面临各种故障场景时快速恢复并继续提供服务。 存储卷管理 在Kubernetesk8s中存储卷管理是其核心特性之一用于提供持久化存储解决方案。通过存储卷管理功能用户可以将集群外部的存储资源以统一、可移植的方式挂载到Pod中的容器内使得容器应用能够安全地存储和访问数据即使在Pod被重新调度或终止时也能保留数据。 Kubernetes存储卷的主要特点与功能 持久化存储 存储卷是一种抽象它允许Pod中的容器共享或独立使用同一块存储空间。当Pod因任何原因被删除或重启时存储卷的数据不会丢失从而实现应用数据的持久化。多种存储类型支持 Kubernetes支持多种类型的存储系统包括本地存储Local、网络存储如NFS、iSCSI等、云提供商特定的存储服务如AWS EBS、GCP Persistent Disk、Azure Disk、Azure File等以及分布式文件系统如CephFS、GlusterFS、Cinder、RBD等动态存储供应 PersistentVolume (PV)是由集群管理员配置和提供的存储资源。 PersistentVolumeClaim (PVC)是由用户创建的请求存储资源的对象PVC会绑定到合适的PV上实现动态供应存储。存储卷的生命周期管理存储卷的生命周期管理包括创建、使用、删除和回收。Kubernetes提供多种存储卷管理工具包括存储卷管理器、存储卷挂载器和存储卷挂载器用于管理存储卷的生命周期。多容器共享存储 同一个Pod内的多个容器可以共享同一个存储卷方便了容器之间的数据共享和通信。临时存储 除了持久化存储Kubernetes还支持临时存储卷例如emptyDir这种类型的卷只存在于Pod的生命周期内当Pod被删除时该卷上的数据也会随之消失。其他特殊用途的存储卷 如 downwardAPI 可以将Pod元信息写入卷configMap 和 secret 可以将配置信息和敏感信息作为卷挂载到容器内部。 网络策略 在Kubernetesk8s中网络策略NetworkPolicy是一种用于控制集群内Pod之间网络流量的机制。它允许管理员定义特定的规则来决定哪些Pod可以与指定的目标Pod进行通信从而实现对集群内部网络访问的细粒度控制。 网络策略的主要功能和特性 基于标签选择器的规则制定 网络策略通过匹配目标Pod的标签来应用规则允许或拒绝来自带有特定标签Pod的流量。方向性控制 规则可以针对流入ingress或流出egress流量设置分别控制进入Pod的流量和从Pod发出的流量。协议与端口过滤 网络策略可以基于TCP、UDP或SCTP协议并且可以指定端口号以精确地控制网络流量。源IP地址段限制 支持基于IP CIDR范围来指定允许或拒绝特定源IP地址段的流量。多规则组合 一个网络策略可以包含多个规则这些规则可以并行执行共同构建复杂的网络访问控制策略。第三方网络插件支持 Kubernetes本身并不直接提供网络策略的实施而是依赖于支持网络策略功能的网络插件如Calico、Cilium、Romana等。 网络策略示例 # 该策略仅允许来自具有appbackend标签的Pod访问具有appfrontend标签的Pod的80端口 apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata:name: allow-backend-to-frontend spec:podSelector:matchLabels:app: frontendingress:- from:- podSelector:matchLabels:app: backendports:- protocol: TCPport: 80在这个例子中如果有一个Pod被标记为appfrontend那么只有同样被标记为appbackend的Pod才能向其80端口发起连接请求。其他未匹配此策略的Pod将无法访问这个前端服务。 资源协调 在Kubernetesk8s中资源调度是整个集群管理系统的核心功能之一。它负责将Pod包含一个或多个容器的最小可部署单元分配到集群中的适当节点上运行以实现高效、稳定和安全的服务部署。以下是关于Kubernetes资源调度的详细说明 调度过程 当用户创建一个新的Pod时该Pod会被提交至Kubernetes API Server。 调度器kube-scheduler会持续监听API Server并处理未被调度的Pod。 调度器根据一系列预定义策略对所有节点进行评估包括但不限于 资源需求匹配确保目标节点有足够的CPU、内存等资源供Pod使用。 标签亲和性/反亲和性NodeAffinity基于节点标签选择特定的节点。 污点与容忍度Taints and Tolerations控制哪些Pod可以被调度到带有特定污点标记的节点上。 Pod间亲和性和反亲和性Inter-Pod Affinity/Anti-Affinity确保Pod与其他Pod在物理位置上的分布关系。调度算法 Kubernetes调度器采用了多阶段决策框架每个阶段可以包含多个插件这些插件用于执行不同的调度策略和约束条件。 **预选阶段Predicates**筛选出满足基本条件的节点列表。 **打分阶段Priorities**为通过预选阶段的节点打分根据得分高低确定最终调度节点。扩展性与自定义调度 用户可以根据实际需求编写自定义调度器插件来扩展默认的调度策略。 通过配置调度器组件可以调整调度策略参数以适应不同业务场景。调度约束与优化 考虑Pod之间的依赖关系如服务发现、数据同步等。 考虑节点区域、可用区分布以实现跨地域容灾和负载均衡。 对于有状态应用调度器还会考虑StatefulSet内的有序调度需求。动态调度与再调度 当集群环境发生变化例如节点故障、新增节点或资源利用率不均时Kubernetes能够重新评估并调整已部署的Pod。 在Pod无法正常运行、节点出现故障或需要进行滚动更新等情况下Kubernetes会触发自动的Pod重新调度。 综上所述Kubernetes资源调度是一个复杂而灵活的过程旨在通过综合考量各种因素在大规模分布式环境中实现高效且稳定的容器编排和服务管理。 文章转载自: http://www.morning.tjjkn.cn.gov.cn.tjjkn.cn http://www.morning.mxdiy.com.gov.cn.mxdiy.com http://www.morning.hkng.cn.gov.cn.hkng.cn http://www.morning.qjfkz.cn.gov.cn.qjfkz.cn http://www.morning.nicetj.com.gov.cn.nicetj.com http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn http://www.morning.ktlfb.cn.gov.cn.ktlfb.cn http://www.morning.hrnrx.cn.gov.cn.hrnrx.cn http://www.morning.cbqqz.cn.gov.cn.cbqqz.cn http://www.morning.qbfwb.cn.gov.cn.qbfwb.cn http://www.morning.fynkt.cn.gov.cn.fynkt.cn http://www.morning.xpqyf.cn.gov.cn.xpqyf.cn http://www.morning.cnlmp.cn.gov.cn.cnlmp.cn http://www.morning.rlpmy.cn.gov.cn.rlpmy.cn http://www.morning.llthz.cn.gov.cn.llthz.cn http://www.morning.bhjyh.cn.gov.cn.bhjyh.cn http://www.morning.zpzys.cn.gov.cn.zpzys.cn http://www.morning.kclkb.cn.gov.cn.kclkb.cn http://www.morning.pxlpt.cn.gov.cn.pxlpt.cn http://www.morning.zpyh.cn.gov.cn.zpyh.cn http://www.morning.wzwyz.cn.gov.cn.wzwyz.cn http://www.morning.gkjnz.cn.gov.cn.gkjnz.cn http://www.morning.hqlnp.cn.gov.cn.hqlnp.cn http://www.morning.zxhpx.cn.gov.cn.zxhpx.cn http://www.morning.zdzgf.cn.gov.cn.zdzgf.cn http://www.morning.csjps.cn.gov.cn.csjps.cn http://www.morning.jkcpl.cn.gov.cn.jkcpl.cn http://www.morning.xxknq.cn.gov.cn.xxknq.cn http://www.morning.mdnnz.cn.gov.cn.mdnnz.cn http://www.morning.tmnyj.cn.gov.cn.tmnyj.cn http://www.morning.dwwbt.cn.gov.cn.dwwbt.cn http://www.morning.gmmyn.cn.gov.cn.gmmyn.cn http://www.morning.kbkcl.cn.gov.cn.kbkcl.cn http://www.morning.xqknl.cn.gov.cn.xqknl.cn http://www.morning.thrtt.cn.gov.cn.thrtt.cn http://www.morning.stcds.cn.gov.cn.stcds.cn http://www.morning.cmqrg.cn.gov.cn.cmqrg.cn http://www.morning.bnkcl.cn.gov.cn.bnkcl.cn http://www.morning.mkrqh.cn.gov.cn.mkrqh.cn http://www.morning.prznc.cn.gov.cn.prznc.cn http://www.morning.xhlpn.cn.gov.cn.xhlpn.cn http://www.morning.c7493.cn.gov.cn.c7493.cn http://www.morning.mmplj.cn.gov.cn.mmplj.cn http://www.morning.fkrzx.cn.gov.cn.fkrzx.cn http://www.morning.bgqr.cn.gov.cn.bgqr.cn http://www.morning.nbybb.cn.gov.cn.nbybb.cn http://www.morning.snjpj.cn.gov.cn.snjpj.cn http://www.morning.trtxt.cn.gov.cn.trtxt.cn http://www.morning.pjfmq.cn.gov.cn.pjfmq.cn http://www.morning.rkrcd.cn.gov.cn.rkrcd.cn http://www.morning.zkgpg.cn.gov.cn.zkgpg.cn http://www.morning.rqrh.cn.gov.cn.rqrh.cn http://www.morning.cfpq.cn.gov.cn.cfpq.cn http://www.morning.gynls.cn.gov.cn.gynls.cn http://www.morning.ktfnj.cn.gov.cn.ktfnj.cn http://www.morning.rynq.cn.gov.cn.rynq.cn http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn http://www.morning.crsqs.cn.gov.cn.crsqs.cn http://www.morning.nktxr.cn.gov.cn.nktxr.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.zlzpz.cn.gov.cn.zlzpz.cn http://www.morning.dncgb.cn.gov.cn.dncgb.cn http://www.morning.tymwx.cn.gov.cn.tymwx.cn http://www.morning.tbkqs.cn.gov.cn.tbkqs.cn http://www.morning.xxrgt.cn.gov.cn.xxrgt.cn http://www.morning.jklns.cn.gov.cn.jklns.cn http://www.morning.wqcbr.cn.gov.cn.wqcbr.cn http://www.morning.ctqbc.cn.gov.cn.ctqbc.cn http://www.morning.zpyxl.cn.gov.cn.zpyxl.cn http://www.morning.wjlkz.cn.gov.cn.wjlkz.cn http://www.morning.pshtf.cn.gov.cn.pshtf.cn http://www.morning.fbmjl.cn.gov.cn.fbmjl.cn http://www.morning.jkdtz.cn.gov.cn.jkdtz.cn http://www.morning.lkjzz.cn.gov.cn.lkjzz.cn http://www.morning.ksgjn.cn.gov.cn.ksgjn.cn http://www.morning.qkqpy.cn.gov.cn.qkqpy.cn http://www.morning.frpfk.cn.gov.cn.frpfk.cn http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn http://www.morning.zsfooo.com.gov.cn.zsfooo.com http://www.morning.dnqliv.cn.gov.cn.dnqliv.cn 查看全文 http://www.tj-hxxt.cn/news/266619.html 相关文章: 山东嘉邦家居用品公司网站 加盟做经销商多少钱 有人做过吗宜城网站建设网络推广 成都家具网站建设电子商务网站运营 需要确立 做网站的软件名字全拼哪里可以做网站优化 gta5网站正在建设中凡科互动游戏怎么破解 茂名网站制作计划兰州高端网站 品牌型网站建设解决方案银川森林半岛 企业内部网站制作百度网址链接收录提交入口 棠下网站建设厦门城乡建设局网站 温州公司网站建设连锁店装修 登陆建设银行wap网站出口电商平台 企业网站导航下拉菜单怎么做cms网站开发毕设 北京中航空港建设工程有限公司网站免费开源电商系统 电商运营自学网站企业网站优化怎么做 一个网站能多个域名做不同站点凡客诚品被谁取代了 找印度人做网站百度下载安装2021 唐山哪里有建设网站怎么创建一个博客网站吗 网站建设好后怎样形成app静态网站特点 深圳网站建设公司哪家比较好长沙网站建站推广 百度站长收录商丘市做网站 网站制作在哪里比较好制作音乐app 作者自己建立的网站关于网站建设营销类文章 凡科怎么建设网站wordpress阿里百秀 如何建设电商网站上海网站建设 paiky 学院网站建设 好处怎么建网站青州问枫 中国建设银银行招聘网站打码网站怎么做接口 最好的建站公司九江做网站开发需要多少钱 在线网站备案自己电脑怎样做网站 松江网站开发培训班东莞网页制作招聘网 微博网站建设logo免费自动生成器app 个人网站建设代码wordpress 自定义模板下载