网站建设博采佘山网站建设

张小明 2025/12/29 17:41:38
网站建设博采,佘山网站建设,网站建设技术团队有多重要,网站备案法律法规Kubernetes (K8s) 网络解决方案是指在 Kubernetes 集群中实现容器网络通信的各种技术和工具。这些解决方案的设计目的是为了满足 Kubernetes 网络模型的要求#xff0c;即#xff1a;所有 Pod 都必须能够无需 NAT 就能互相通信。所有节点必须能够无需 NAT 就能与所有 Pod 通信…Kubernetes (K8s) 网络解决方案是指在 Kubernetes 集群中实现容器网络通信的各种技术和工具。这些解决方案的设计目的是为了满足 Kubernetes 网络模型的要求即所有 Pod 都必须能够无需 NAT 就能互相通信。所有节点必须能够无需 NAT 就能与所有 Pod 通信。Pod 在重新调度时保持相同的 IP 地址。这些网络解决方案遵循 CNIContainer Network Interface规范提供插件以集成不同的网络技术。下面是一些主要的 Kubernetes 网络解决方案及其底层原理、优缺点Calico原理Calico 使用纯三层网络来提供 Pod 间通信通过使用 IP 路由而不是覆盖网络以减少网络复杂性和性能开销。它使用 BGP边界网关协议来广播和学习路由支持网络策略来控制 Pod 间的流量。优点高性能支持大规模集群丰富的网络策略直接使用物理网络不需要封包解包的开销。缺点配置和管理相对复杂对网络知识要求较高在某些环境下如较老的数据中心对 BGP 的支持可能受限。Flannel原理Flannel 是一个简单的覆盖网络解决方案为每个 Pod 提供一个唯一的 IP。它使用 etcd 存储网络配置信息支持多种后端如 VXLAN、IPsec 和 AWS VPC。优点部署和配置简单适合小型到中型集群对新手友好。缺点性能不如基于路由的解决方案覆盖网络可能会增加一些网络延迟。Weave Net原理Weave Net 创建一个虚拟网络连接不同 Docker 容器。它自动发现和管理集群中的容器无需额外配置支持网络策略并提供服务发现机制。优点安装配置简单自动处理网络分区和故障恢复不依赖于集群底层的网络基础设施。缺点相较于其他解决方案性能可能较低在大规模集群中可能面临管理挑战。Cilium原理Cilium 基于最新的 Linux 内核技术 BPFBerkeley Packet Filter提供网络安全、可观测性和负载均衡。它能够理解应用层Layer 7的协议并在此基础上实施安全策略。优点提供应用层的网络策略和安全支持多种网络模式包括透明的服务网格高性能和可扩展性丰富的可观测性和监控功能。缺点较新的项目社区相对较小需要较新的 Linux 内核支持 BPF。选择网络解决方案选择合适的 Kubernetes 网络解决方案时需要考虑以下因素集群规模大型集群可能更适合使用 Calico 或 Cilium 这样的基于路由的解决方案。性能需求对于对网络性能有高要求的应用基于路由的解决方案通常比覆盖网络性能更好。网络策略如果需要丰富的网络策略支持Calico 和 Cilium 是较好的选择。环境兼容性需要考虑解决方案是否支持当前的基础设施和云环境。易用性和管理对于小型或测试环境Flannel 或 Weave Net 可能因其简单性而更受青睐。综合考虑这些因素后你可以根据具体需求和偏好选择最合适的 Kubernetes 网络解决方案。覆盖网络覆盖网络Overlay Network是一种网络虚拟化技术它在现有的网络基础设施之上创建了一个虚拟的网络层。这个虚拟网络使得网络上的设备如服务器、容器或虚拟机能够彼此通信就像它们连接在同一个物理网络一样即使实际上它们可能分布在不同的物理网络中。工作原理数据封装覆盖网络通过封装原始数据包来工作。当数据从一个设备发送到另一个设备时原始数据包会被封装在另一个数据包中。这个外层的数据包有自己的头部信息指定了虚拟网络内的源地址和目的地址。隧道技术封装后的数据包通过隧道在物理网络中传输。这些隧道可以跨越不同的网络和互联网允许分布在不同位置的设备安全地进行通信。数据解封装当封装的数据包到达目的地后外层的数据包会被去除解封装恢复原始数据包然后将其传递给接收设备。常用技术VXLAN (Virtual Extensible LAN)一种广泛使用的覆盖网络技术可以支持大规模的虚拟网络。NVGRE (Network Virtualization using Generic Routing Encapsulation)另一种覆盖网络技术使用 GRE 封装来虚拟化网络层。STT (Stateless Transport Tunneling)专为虚拟化环境设计的覆盖网络协议优化了数据中心内的通信。优点灵活性覆盖网络允许你在不改变底层物理网络基础设施的情况下创建复杂的网络拓扑。可扩展性可以轻松跨越不同的物理网络和数据中心创建虚拟网络支持大规模部署。安全性封装技术和隧道技术提供了数据传输的隔离和安全保护。缺点性能开销数据封装和解封装过程增加了额外的计算开销可能会影响网络性能。复杂性管理覆盖网络的复杂性随着网络规模和使用的技术而增加。应用场景覆盖网络在多种环境和用例中非常有用尤其是在需要高度灵活性和跨网络通信能力的场景例如云计算和数据中心在不同物理位置的虚拟机或容器之间提供灵活的网络通信。多租户环境在共享的物理网络基础设施上创建隔离的网络环境为每个租户提供独立的网络空间。容器编排在 Kubernetes 等容器编排系统中覆盖网络使得跨主机的容器可以无缝通信。覆盖网络通过提供额外的虚拟化网络层解决了现代数据中心和云环境中网络通信和隔离的挑战使得网络设计和管理更加灵活和动态。VXLAN技术详解好的我们来详细解析一下 VXLANVirtual Extensible Local Area Network。这是一个非常重要的网络 overlay 技术尤其在云计算和大型数据中心领域。一、什么是 VXLAN为什么需要它VXLAN是一种网络虚拟化技术它通过在三层网络IP上叠加一个二层网络来构建大型的、多租户的虚拟数据中心网络。它主要为了解决传统数据中心网络面临的几个核心问题VLAN ID 数量限制 (4096个)传统 VLAN 使用 12-bit 的 VLAN ID最多只能划分 4094 个网络0 和 4095 保留。对于大型云服务商或多租户环境这个数量远远不够。物理网络架构的局限性传统二层网络依赖 STP生成树协议来防止环路但这会导致大量的链路被阻塞无法有效利用带宽。网络规模受限于 MAC 地址表大小容易产生 MAC 地址表溢出。虚拟机迁移范围受限虚拟机迁移通常需要在同一个二层域内进行。传统数据中心的三层边界成为了虚拟机动态迁移的“壁垒”无法实现跨机房、跨数据中心的灵活迁移。二、VXLAN 的核心原理VXLAN 的解决思路是“在 UDP 中封装以太网帧”从而将一个二层数据帧在一个三层网络基础上进行扩展。1. 核心组件VTEP (VXLAN Tunnel End Point)VXLAN 的起点和终点是进行封装和解封装的实体。通常存在于虚拟化主机的 Hypervisor如 ESXi, KVM或支持 VXLAN 的物理交换机如 Nexus 9000, Arista上。每个 VTEP 都有一个唯一的 IP地址用于在底层 IP 网络中标识自己。VNI (VXLAN Network Identifier)这是 VXLAN 的核心用于隔离租户/网络。它是一个24-bit的字段理论上可以支持1600 万2^24个隔离的网络段彻底解决了 VLAN ID 数量不足的问题。每个 VNI 代表一个独立的二层广播域类似于一个 VLAN。VXLAN 隧道在两个 VTEP 之间建立的逻辑通道。底层网络Underlay Network负责转发 VTEP 之间的封装后的 UDP 数据包而对封装在内的原始以太网帧一无所知。2. 报文封装与解封装这是 VXLAN 的工作机制核心。我们通过一个例子来看同一 VNI 下的两台虚拟机 VM1 和 VM2 在不同物理服务器上如何进行通信。发送过程 (封装 - Encapsulation)原始帧VM1 发送一个以太网帧目标 MAC 是 VM2。到达源 VTEP帧到达其所在的源主机Host1的 VTEP。学习与封装源 VTEP 根据目标 MAC 地址和 VNI查询它的转发表找到目的 VTEP 的 IP 地址即 Host2 的 VTEP IP。VTEP 将原始的二层以太网帧作为一个数据载荷加上一个VXLAN 头部包含 VNI。再将 VXLAN 头部和原始帧一起封装到一个UDP 数据包中。这个 UDP 数据包的外层再被封装上新的 IP 头部源 IP 是 Host1 的 VTEP IP目标 IP 是 Host2 的 VTEP IP和新的 MAC 头部。在底层网络传输这个新的 IP 包 often called the “Underlay Packet”通过底层的三层 IP 网络进行路由和转发。底层网络设备路由器、交换机只关心外层的 IP 和 MAC 地址完全不知道内部封装了什么。接收过程 (解封装 - Decapsulation)到达目的 VTEP底层网络将数据包顺利路由到 Host2 的 VTEP。拆除外层头Host2 的 VTEP 拆除外层的 IP、UDP 和 VXLAN 头部。交付原始帧取出内部的原始以太网帧并根据其 VNI 信息将其转发给正确的目标虚拟机 VM2。三、关键特性与优势巨大的规模支持24-bit 的 VNI 提供了海量的逻辑网络数量完美支持多租户。突破物理网络限制虚拟机可以在任何被 IP 网络连通的位置之间迁移因为 VXLAN 隧道可以跨越三层网络。这实现了大二层网络的扩展。更好地利用网络带宽底层网络是 IP 路由网络可以使用ECMP等价多路径路由等协议让流量在多条路径上传输充分利用所有可用链路避免了 STP 的带宽浪费问题。与现有网络兼容底层Underlay网络可以是任何 IP 网络无需对现有网络架构做大的改动。 overlay 网络和 underlay 网络是解耦的。四、VXLAN 的控制平面如何学习 MAC 地址VXLAN 是二层技术所以也需要像传统交换机一样学习 MAC 地址。主要有两种方式** flood-and-learn (数据平面学习)**对于未知的单播、广播或组播流量VTEP 会将其在 VNI 内进行泛洪复制一份并发送给该 VNI 的所有其他 VTEP。目标主机收到后会回复源 VTEP 从回复报文中就能学习到(MAC地址, VTEP IP)的映射关系并存入自己的转发表。这是最传统的方式但泛洪流量可能较大。使用控制平面如 BGP EVPN这是现代数据中心更主流、更高效的方式。使用BGP EVPNEthernet VPN协议作为控制平面。VTEP 之间通过 BGP 协议来交换和同步(MAC地址, IP地址, VNI, VTEP IP)的映射信息。优点避免了泛洪VTEP 预先通过 BGP 就知道了所有 MAC 地址的位置无需泛洪学习。集成IP路由EVPN 不仅可以通告 MAC 地址还可以通告 IP 路由实现了 integrated bridge and route功能。高可靠性支持多活网关提供更快的故障收敛。五、总结Overlay vs. Underlay理解 VXLAN 的关键是理解这两个概念Underlay Network底层网络指的是物理网络由物理路由器、交换机和链路组成。它负责使用传统的路由协议如 OSPF, IS-IS, BGP来转发VXLAN 的封装包即外层IP/UDP包。它的目标是高效、可靠、低延迟。Overlay Network叠加网络指的是逻辑网络由 VTEP 和 VXLAN 隧道构成。它运行在 Underlay 网络之上负责传输虚拟机的原始数据帧。它对 Underlay 网络的具体细节一无所知只要求 IP 可达性。VXLAN 通过清晰地分离 Overlay 和 Underlay实现了网络的极大灵活性和可扩展性是现代软件定义网络SDN和云计算基础架构的基石技术之一。FlannelFlannel 是一个简单的 Kubernetes 网络解决方案用于为集群中的 Pod 提供一个覆盖网络。它让 Pod 能够无视底层网络基础设施相互之间进行通信就好像它们在同一个以太网交换机上一样。Flannel 是由 CoreOS 开发的现在是 CNCF云原生计算基金会的一部分。工作原理Flannel 在 Kubernetes 集群的每个节点上运行一个代理进程这些代理负责维护 Pod 网络的配置和状态。Flannel 使用一种中央数据存储如 etcd来保持集群的网络配置信息。网络分配当 Flannel 启动时它会从中央数据存储中获取一个全局网络配置包括整个 Pod 网络的 CIDR。然后Flannel 为每个加入集群的节点分配一个子网确保节点间的子网不会重叠。数据封装Flannel 使用数据包封装技术如 VXLAN在物理网络之上创建一个虚拟网络层。每当 Pod 间通信时它的数据包会被封装在一个外部数据包中然后通过物理网络路由到目的地节点最后被解封装并传递给目标 Pod。路由配置Flannel 会配置节点的路由表以便封装后的数据包可以通过物理网络正确路由到目标节点。每个节点知道如何将封装的数据包路由到集群中的任何其他节点。核心组件flanneldFlannel 的主要代理运行在 Kubernetes 集群的每个节点上。它负责分配子网、封装和解封装数据包以及更新路由表。etcd用作 Flannel 的中央数据存储存储网络配置和每个节点的子网分配信息。特点简单性Flannel 旨在提供简单而又可靠的覆盖网络易于安装和配置。灵活性支持多种后端包括 VXLAN默认、IPSec、Direct routing 等允许用户根据需要选择最适合他们环境的数据封装技术。可扩展性虽然 Flannel 更适合小到中等规模的集群但它也可以通过适当的调整和优化支持较大的部署。使用场景Flannel 适用于需要简单、易于设置的 Kubernetes 网络解决方案的场景。它特别适用于小到中等规模的 Kubernetes 部署。开发和测试环境其中网络性能和高级网络特性不是首要考虑因素。对网络解决方案的定制要求不高的环境。总的来说Flannel 提供了一种简单且有效的方式来实现 Kubernetes Pod 网络使得 Pod 能够跨越不同节点进行通信而无需考虑底层的网络基础设施细节。CalicoCalico 是一个广泛使用的、开源的网络和网络安全解决方案专为容器、虚拟机和原生主机环境设计非常适用于大规模 Kubernetes 集群。它提供了高性能的网络通信以及高级的网络策略管理使得它成为构建和维护大型、复杂 Kubernetes 集群网络的流行选择。工作原理Calico 的核心原理包括纯三层网络Calico 使用标准的 IP 路由而不是覆盖网络如 VXLAN来处理 Pod 间的通信这意味着每个 Pod 都分配有一个唯一的 IP 地址。这种方法简化了路由过程减少了封装和解封装的开销提高了网络性能。BGP边界网关协议Calico 使用 BGP 来分发路由信息。在一个 Calico 网络中每个节点都可以作为一个 BGP 对等体它会向集群中的其他节点宣告自己所负责的 Pod IP 范围。这使得集群内的每个节点都能了解如何将流量路由到任何特定的 Pod无论这个 Pod 位于哪个节点上。网络策略Calico 提供了强大的网络策略管理功能允许细粒度控制 Pod 间的通信。这些策略可以基于多种标准进行定义包括命名空间、Pod 标签和选择器等。策略可以实施白名单或黑名单规则以确保网络的安全性和合规性。IPAMIP 地址管理Calico 提供了灵活的 IPAM 解决方案支持静态和动态 IP 分配。Calico 可以与 Kubernetes 的 CNI 插件集成自动为每个 Pod 分配 IP 地址并确保这些地址在集群中的唯一性。IPIP 封装可选尽管 Calico 通常使用无封装的纯三层路由但它也支持 IPIP 封装以允许在不支持直接路由的环境中跨越不同子网的 Pod 通信。特点高性能和可扩展性Calico 提供了接近原生网络性能的通信能力非常适合需要高吞吐量和低延迟的应用且能够轻松扩展到数千个节点。细粒度的网络安全策略Calico 允许你定义详细的网络安全规则控制 Pod 之间的流量流动从而增强集群的安全性。跨平台兼容性Calico 不仅支持 Kubernetes还可以用于其他容器编排工具如 Docker Swarm和传统的 VM 或裸机环境使其成为多环境中的理想选择。使用场景大规模 Kubernetes 集群Calico 特别适合于大型或高密度的 Kubernetes 集群需要高性能网络通信和复杂的网络策略管理。多云和混合云环境Calico 的灵活性使其适用于多云和混合云环境能够跨越不同云平台和数据中心实现网络通信和策略一致性。需要高级网络策略管理的应用对于需要细粒度网络控制和安全隔离的应用Calico 提供了强大的工具集。总的来说Calico 以其高性能、可扩展性和强大的网络策略功能在 Kubernetes 环境中提供了一种高效的网络解决方案。好的我们来详细探讨一下在 Calico 网络中为 Pod 配置静态 IP 地址的实现方式。在 Kubernetes 的默认设定中Pod 的 IP 地址是由 CNI 插件如 Calico动态分配的生命周期与 Pod 绑定极不固定。但在某些特定场景下如传统授权、基于IP的安全策略、外部服务依赖等我们需要为特定的 Pod 分配一个固定不变的静态 IP。Calico 提供了几种不同粒度和方法来实现静态 IP 分配其核心原理是使用 Calico 的 IPAMIP Address Management并通过 Kubernetes 的注解Annotation来指定期望的 IP。方法一为单个 Pod 指定静态 IP最常用这是最直接的方法通过 Pod 的annotations字段向 Calico 的 IPAM 申请特定的 IP 地址。实现步骤确认 IP 在 Calico IP 池中 首先你想要的静态 IP 必须位于 Calico 配置的 IP 地址池IPPool范围内。否则Calico 无法将其分配出去。 你可以使用calicoctl get ippool -o wide查看已配置的 IP 池。确保 IP 未被占用 静态 IP 不能与已分配的 IP 冲突。你需要管理一个静态 IP 的分配列表或者使用 Calico 的 API 来查询 IP 可用性。在 Pod 定义中添加注解 在 Pod 的metadata.annotations中添加以下两个注解cni.projectcalico.org/ipAddrs: 请求一个指定的 IPv4 地址。cni.projectcalico.org/ipAddrsv6: 请求一个指定的 IPv6 地址如果适用。示例 YAMLapiVersion: v1kind: Podmetadata:name: static-ip-podannotations:# 核心注解指定一个包含单个 IPv4 地址的 JSON 数组cni.projectcalico.org/ipAddrs: [\192.168.0.100\]spec:containers:- name: myapp-containerimage: nginxports:- containerPort: 80# 注意如果你使用 Deployment需要将 annotation 写在 PodTemplate 的 metadata 中。# 但请注意使用静态IP和 Deployment 的动态扩缩容理念相悖通常用于 StatefulSet 或单 Pod。重要注意事项Deployment 与静态 IP通常不推荐为 Deployment 中的 Pod 指定静态 IP。因为 Deployment 管理的 Pod 是可销毁和重建的而新 Pod 会尝试申请相同的静态 IP如果原 Pod 还未完全清理IP 未释放会导致冲突。静态 IP 更适合由StatefulSet或单例 Pod 使用。IP 管理你需要自行管理静态 IP 的分配避免冲突。Calico 不会像 DHCP 服务器一样为你保留和管理这些 IP。IP 池变更如果你后续修改了 Calico 的 IP 池已分配的静态 IP 如果不在新池范围内可能会导致网络问题。方法二为整个命名空间或特定 Pod 选择 IP 池如果你不是指定单个精确的 IP而是希望 Pod 从某个特定的 IP 地址池中获取 IP可以是动态的但池子是固定的可以使用以下注解cni.projectcalico.org/ipv4pools: 指定 Pod 从哪个 IPv4 池中获取地址。cni.projectcalico.org/ipv6pools: 指定 Pod 从哪个 IPv6 池中获取地址。值的格式是包含 IP 池名称的 JSON 数组。示例apiVersion: v1kind: Podmetadata:name: pool-podannotations:# 让 Calico 从名为 my-static-ip-pool 的池中分配IPcni.projectcalico.org/ipv4pools: [\my-static-ip-pool\]spec:containers:- name: myapp-containerimage: nginx这种方法通常用于实现多租户网络隔离或不同业务使用不同网段而不是严格意义上的“静态IP”但它提供了另一种IP分配的控制维度。方法三使用 Calico 网络策略固定 WorkloadEndpoint IP这是一种更底层、更手动的方法一般不推荐但有助于理解 Calico 的工作原理。Calico 会为每个 Pod 创建一个对应的WorkloadEndpoint资源。你可以手动创建或修改这个资源直接为其指定 IP 地址。禁用 Pod 的自动 IP 分配在 Pod 注解中添加cni.projectcalico.org/ipAddrs: []或使用特定配置。手动创建 WorkloadEndpoint使用calicoctl创建一个WorkloadEndpoint资源并显式设置spec.ipNetworks字段为你想要的 IP。这种方法非常繁琐容易出错且需要与 Pod 的生命周期紧密同步因此仅在极端特殊场景下使用。方法四基于 StatefulSet 与 拓扑感知路由现代、推荐用于有状态应用从 Kubernetes v1.23 开始特性TopologyAwareHints和相关的服务机制不断成熟。虽然它主要服务于 Service 路由但其理念是为有状态应用提供稳定的网络标识。对于StatefulSetPod 的主机名和 DNS 记录是稳定的pod-name.svc-name.namespace.svc.cluster.local。结合Headless Service应用程序可以通过 DNS 名称可靠地发现对端而不需要关心其底层 IP 是否变化。这是 Kubernetes 原生推崇的方式通过 Service 名称和服务发现来解耦对静态 IP 的依赖。静态 IP 应被视为最后的手段。总结与推荐方法适用场景优点缺点Pod 注解 (方法一)为少数特定 Pod如网络网关、硬件模拟器分配固定 IP。配置简单直接明了。需自行管理 IP与 Deployment 不兼容有冲突风险。指定 IP 池 (方法二)让一组 Pod 使用特定的 IP 段如不同租户、不同环境。实现网络逻辑隔离。不是真正的静态 IPIP 仍会变。StatefulSet 服务发现大多数有状态应用数据库、中间件等。云原生K8s 原生支持通过 DNS 提供稳定标识。IP 本身可能还是会变但对应用透明。最佳实践建议优先使用 Service绝大多数场景下应使用 Kubernetes Service 来为 Pod 提供稳定的网络端点而不是追求 Pod 本身的静态 IP。如必须使用静态 IP优先选择方法一Pod 注解并将其用于由StatefulSet或单例 Pod 管理的 Pod并建立严格的 IP 地址管理流程以避免冲突。避免与 Deployment 混用切勿轻易为 Deployment 配置静态 IP这会破坏其自动修复和扩缩容的能力。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站设计的摘要个人简历自我介绍200字

深入理解Shell的字符串输入输出操作 在Shell编程中,字符串的输入输出操作是非常基础且重要的部分。本文将详细介绍 print 和 read 这两个命令,它们赋予了Shell类似于传统编程语言的输入输出能力。 1. print 命令 print 命令用于将其参数打印到标准输出。相较于 ec…

张小明 2025/12/25 3:21:39 网站建设

游戏网站怎么建设青建集团股份有限公司

Qt 实现 SQLite 连接池(线程安全版) SQLite 本身支持多线程,但单个连接不能被多线程同时使用,因此连接池的核心是:管理一组独立的数据库连接,为每个线程分配 / 复用连接,保证线程安全&#xff…

张小明 2025/12/27 23:03:10 网站建设

佛山seo西安seo推广公司

欢迎大家加入[开源鸿蒙跨平台开发者社区](https://openharmonycrossplatform.csdn.net),一起共建开源鸿蒙跨平台生态。Flutter应用嵌入鸿蒙智慧座舱数字孪生界面的实现Flutter作为跨平台开发框架,结合鸿蒙系统的分布式能力,可以在智慧座舱场景…

张小明 2025/12/25 5:38:00 网站建设

网站定制公司哪家最权威有了域名和主机怎么做网站

数字墨迹革命:Joplin手写输入解锁思维自由 【免费下载链接】joplin Joplin 是一款安全笔记记录与待办事项应用,具备跨平台同步功能,支持 Windows、macOS、Linux、Android 和 iOS 平台。 项目地址: https://gitcode.com/GitHub_Trending/jo/…

张小明 2025/12/27 19:34:53 网站建设

php 企业网站模板 想1石家庄市市政建设工程公司网站

AI视频生成能力发展与突破一、AI视频生成的核心挑战二、AI视频生成能力现状:进展与不足1. 突破性进展:已具备专业级潜力2. 现存短板:距离完美仍有差距三、AI视频生成能力的评估体系1. 核心评估方法:定量与定性结合2. 主流评估工具…

张小明 2025/12/27 22:47:50 网站建设

如何建设一个门户网站给个免费的网址

解锁Windows 11界面个性化新境界:ExplorerPatcher深度解析 【免费下载链接】ExplorerPatcher 项目地址: https://gitcode.com/gh_mirrors/exp/ExplorerPatcher 还在为Windows 11的界面设计感到困惑吗?ExplorerPatcher正是您需要的解决方案&#…

张小明 2025/12/25 5:22:25 网站建设