k8s 网络组件详细 介绍

news2025/1/18 10:45:29

目录

一   k8s 有哪些网络组件

二   k8s 网络概念

1, k8s 三种网络

2,K8S 中 Pod 网络通信

2.1 Pod 内容器与容器之间的通信

2.2 同一个 Node 内 Pod 之间的通信

2.3 不同 Node 上 Pod 之间的通信

三   Flannel 网络组件

1,Flannel 是什么

2,Overlay Network 是什么

3,VXLAN与 VLAN

3.1 VXLAN 是什么

3.2 vlan vxlan 区别

4,Flannel UDP 模式

4.1 Flannel UDP 模式的工作原理

4.2  Flannel UDP 模式 数据流向

4.3   ETCD 之 Flannel 提供说明

5, Flannel VXLAN 模式

5.1 VXLAN 模式 是什么

5.2 Flannel VXLAN 模式跨主机的工作原理

5.3  VXLAN 模式 数据流向

5.4   vxlan 模式中 cni 和 flannel 分别是干什么的

6,  host-gw 模式

7,fannel中 vxlan 和 UDP 模式的区别

四    Calico 网络组件

1, Calico 是什么

2, Calico 组成

3, Calico 工作原理

4,bgp 是什么

5, fannel 和calico 区别 及应用场景


一   k8s 有哪些网络组件

  1. Flannel:Flannel是一个简单且高效的网络解决方案,用于为Kubernetes集群中的容器提供网络连接,它通过为每个节点创建一个子网,然后使用VXLAN隧道将节点之间的流量路由到正确的容器。

  2. Calico:Calico是一个开源的网络解决方案,它基于BGP协议构建了一个高度可扩展的容器网络。Calico可以提供网络策略功能,允许管理员定义流量控制规则。

  3. Weave Net:Weave Net是一个具有网络拓扑感知能力的软件定义网络(SDN)解决方案,它能够自动发现和管理Kubernetes集群中的网络连接。

  4. Cilium:Cilium是一个用于Kubernetes集群的网络和安全解决方案,它结合了BPF(Berkeley Packet Filter)和XDP(eXpress Data Path)技术,提供高性能的网络层和安全功能。

以上列举的网络组件是Kubernetes中常见的选择,每个组件都有其特定的特点和适用场景。

本章仅对生产环境中最常用   Flannel  Calico   模式做具体分析介绍

二   k8s 网络概念

1, k8s 三种网络

‘’

2,K8S 中 Pod 网络通信

2.1 Pod 内容器与容器之间的通信

同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享同一个网络命名空间,相当于它们在同一台机器上一样,可以用 localhost 地址访问彼此的端口
 

2.2 同一个 Node 内 Pod 之间的通信

每个 Pod 都有一个真实的全局 IP 地址,同一个 Node 内的不同 Pod 之间可以直接采用对方 Pod 的 IP 地址进行通信,Pod1 与 Pod2 都是通过 Veth 连接到同一个 docker0/cni0 网桥,网段相同所以它们之间可以直接通信

2.3 不同 Node 上 Pod 之间的通信

Pod 地址与 docker0 在同一网段,docker0 网段与宿主机网卡是两个不同的网段,且不同 Node 之间的通信只能通过宿主机的物理网卡进行
要想实现不同 Node 上 Pod 之间的通信,就必须想办法通过主机的物理网卡 IP 地址进行寻址和通信。因此要满足两个条件:Pod 的 IP 不能冲突;将 Pod 的 IP 和所在的 Node 的 IP 关联起来,通过这个关联让不同 Node 上 Pod 之间直接通过内网 IP 地址通信。
 

三   Flannel 网络组件

1,Flannel 是什么

Flannel 的功能是让集群中的不同节点主机创建的 Docker 容器都具有全集群唯一的虚拟 IP 地址。
Flannel 是 Overlay 网络的一种,也是将 TCP 源数据包封装在另一种网络包里面进行路由转发和通信,目前支持 UDP、VXLAN、Host-gw 3种数据转发方式

英文翻译:法兰绒

2,Overlay Network 是什么

虚拟隧道技术

叠加网络,在二层或者三层基础网络上叠加的一种虚拟网络技术模式,该网络中的主机通过虚拟链路隧道连接起来。
通过Overlay技术(可以理解成隧道技术),在原始报文外再包一层四层协议(UDP协议),通过主机网络进行路由转发。这种方式性能有一定损耗,主要体现在对原始报文的修改。目前Overlay主要采用VXLAN
 

3,VXLAN与 VLAN

3.1 VXLAN 是什么

将源数据包封装到UDP中,并使用基础网络的IP/MAC作为外层报文头进行封装,然后在以太网上传输,到达目的地后由隧道端点解封装并将数据发送给目标地址

3.2 vlan vxlan 区别

VLAN (Virtual Local Area Network) 和 VXLAN (Virtual eXtensible Local Area Network) 都是网络虚拟化技术,旨在提高网络资源的灵活性和利用率,但它们之间存在一些关键区别:

  1. 网络规模

    • VLAN 使用 12 位标识符来定义 VLAN ID,因此理论上最多可以创建 4094 个不同的 VLAN。这限制了其在网络规模上的应用,尤其是在大规模数据中心环境中。
    • VXLAN 使用 24 位的 VNI (VXLAN Network Identifier),允许创建多达 2^24(约1600万个)个独立的虚拟网络,极大地扩展了网络规模,适合云和大数据中心环境。
  2. 网络路径利用效率

    • VLAN 依赖于 Spanning Tree Protocol (STP) 或 Rapid Spanning Tree Protocol (RSTP) 来防止网络中的广播风暴和环路,但这通常会导致部分网络路径被阻塞,降低了网络带宽的利用率。
    • VXLAN 则通过将二层数据包封装在 UDP 报文中,利用 IP 网络进行传输,绕过了 STP 的限制,所有路径都可以被利用,提高了网络的效率和弹性。
  3. MAC 地址表的管理

    • 在 VLAN 中,每个交换机都需要维护一个 MAC 地址表,随着网络规模的扩大,MAC 表可能达到其容量极限,导致性能问题。
    • VXLAN 使用隧道技术,源和目的主机之间的二层通信可以在三层网络上透明传输,MAC 地址信息不需要在每一跳上都进行学习和维护,减轻了底层物理交换机的负担,防止了 MAC 表耗尽的问题。
  4. 应用场景

    • VLAN 通常用于较小规模的网络分段,适合企业内部的网络管理,便于隔离广播域,控制网络流量。
    • VXLAN 主要针对大规模的云服务提供商和数据中心环境,特别是那些需要跨多个物理网络或地理位置扩展二层网络的场景,以支持虚拟机的大规模迁移和多租户环境。

综上所述,VLAN 是一种较为传统且广泛应用的技术,适用于基本的网络分段需求,而 VXLAN 是一种更高级的网络虚拟化技术,设计用来应对现代数据中心的大规模、高动态性的网络架构挑战。

4,Flannel UDP 模式

4.1 Flannel UDP 模式的工作原理

数据从主机 A 上 Pod 的源容器中发出后,经由所在主机的 docker0/cni0 网络接口转发到 flannel0 接口,flanneld 服务监听在 flannel0 虚拟网卡的另外一端。
Flannel 通过 Etcd 服务维护了一张节点间的路由表。源主机 A 的 flanneld 服务将原本的数据内容封装到 UDP 报文中, 根据自己的路由表通过物理网卡投递给目的节点主机 B 的 flanneld 服务,数据到达以后被解包,然后直接进入目的节点的 flannel0 接口, 之后被转发到目的主机的 docker0/cni0 网桥,最后就像本机容器通信一样由 docker0/cni0 转发到目标容器。

4.2  Flannel UDP 模式 数据流向

pode1 到pode4的数据流向过程;

首先每个node 节点上,Flannel会在每个节点上设置一个UDP socket监听特定端口(默认是8285)    

docker0 是网关

源pod ip 到 目的 pod ip    先经过CNI(一个标准化的接口,使得Kubernetes等平台能够与Flannel这样的网络插件无缝集成 )

再经过Flannel 服务

flanneld 服务 调用etcd 路由表(里面存储了真机的ip)进行数据封装到UDP报文路由转发

数据封装如下:

源真机ip 到 目的真机ip

源pod ip 到 目的 pod ip

根据路由表(etcd)  借助物理网卡

然后 数据到达node2    数据解封     找到pode4

4.3   ETCD 之 Flannel 提供说明

存储管理Flannel可分配的IP地址段资源
监控 ETCD 中每个 Pod 的实际地址,并在内存中建立维护 Pod 节点路由表

5, Flannel VXLAN 模式

5.1 VXLAN 模式 是什么

VXLAN 模式使用比较简单,flannel 会在各节点生成一个 flannel.1 的 VXLAN 网卡(VTEP设备,负责 VXLAN 封装和解封装)。
VXLAN 模式下作是由内核进行的。flannel 不转发数据,仅动态设置 ARP 表和 MAC 表项。
UDP 模式的 flannel0 网卡是三层转发,使用 flannel0 时在物理网络之上构建三层网络,属于 ip in udp ;VXLAN封包与解包的工 模式是二层实现,overlay 是数据帧,属于 mac in udp 。
 

5.2 Flannel VXLAN 模式跨主机的工作原理

1、数据帧从主机 A 上 Pod 的源容器中发出后,经由所在主机的 docker0/cni0 网络接口转发到 flannel.1 接口
2、flannel.1 收到数据帧后添加 VXLAN 头部,封装在 UDP 报文中
3、主机 A 通过物理网卡发送封包到主机 B 的物理网卡中
4、主机 B 的物理网卡再通过 VXLAN 默认端口 4789 转发到 flannel.1 接口进行解封装
5、解封装以后,内核将数据帧发送到 cni0,最后由 cni0 发送到桥接到此接口的容器 B 中。
 

5.3  VXLAN 模式 数据流向

VXLAN(Virtual eXtensible Local Area Network)模式下的数据流向可以概括为以下几个步骤:

  1. 源虚拟机发送数据:当一台虚拟机(VM)需要向另一台处于不同子网但属于同一VXLAN网络的VM发送数据时,数据帧首先从源VM的虚拟网卡(vNIC)发出。

  2. 进入VTEP(VXLAN Tunnel End Point):数据帧到达源VM所在的主机上的VXLAN隧道端点(VTEP)。VTEP是实现VXLAN封装的关键组件,它负责将二层的数据帧封装成三层的UDP报文。在这个过程中,VTEP会添加一个VXLAN头部,其中包含VNI(VXLAN Network Identifier),用以区分不同的VXLAN网络段。此外,源和目标VTEP的IP地址也会被用作UDP报文的源和目的地址。

  3. VXLAN数据包穿越IP网络:封装后的UDP报文作为一个普通的三层数据包在网络中路由,可以穿越三层网络,不受传统二层网络的限制,从而实现了二层网络在三层网络上的延伸。

  4. 到达目标VTEP:封装的VXLAN数据包最终到达目标VM所在主机的VTEP。VTEP根据UDP报文中的VNI解封装数据包,恢复出原始的二层数据帧。

  5. 交付给目标虚拟机:解封装后的二层数据帧被送到目标VM的虚拟网卡上,完成了从源VM到目标VM的数据传输。

简而言之,VXLAN通过在原有的二层数据帧外封装一层UDP/IP头,使原本受限于二层网络范围的通信能够跨越三层网络,同时保持了二层网络的隔离特性,实现了大规模数据中心内的虚拟网络扩展。

5.4   vxlan 模式中 cni 和 flannel 分别是干什么的

CNI (Container Network Interface)

CNI是一个开放的标准,定义了一套接口规范,使得网络插件能够与容器运行时(如Docker、rkt或CRI-O)集成,为容器提供网络连接能力。CNI关注的是容器网络的创建、删除和查询等生命周期管理操作。它让容器编排系统(如Kubernetes)能够动态地插入不同的网络实现,以满足不同的网络需求。简而言之,CNI是一个框架,它使得网络配置和管理变得更加灵活和模块化。

Flannel

Flannel是实现CNI标准的一个具体网络插件,它主要解决Kubernetes集群中跨节点容器之间的网络通信问题。Flannel为每个节点分配一个子网,并确保集群内的所有节点都能够访问这些子网。通过创建覆盖网络(overlay network),Flannel使得不同节点上的容器仿佛处于同一局域网内,可以相互通信。

在VXLAN模式下,Flannel的工作流程如下:

  1. 子网分配:Flannel为集群中的每个节点分配一个唯一的子网,保证网络地址空间的隔离和利用。

  2. VXLAN封装:当容器间需要通信时,Flannel利用VXLAN协议将二层以太网帧封装在UDP报文中。这样,即便容器位于不同的物理节点,也能够通过三层网络(IP网络)进行通信。

  3. 内核态处理:VXLAN的数据包在宿主机的内核中进行封装和解封装,提高了数据转发的效率。

  4. 路由和转发:Flannel确保正确的路由规则被设置,使数据包能够从源容器顺利到达目的容器。

总结来说,CNI提供了一个标准化的接口,使得Kubernetes等平台能够与Flannel这样的网络插件无缝集成;而Flannel作为具体的网络实现,通过VXLAN等技术解决了容器跨节点通信的问题,为容器提供了一个统一的虚拟网络环境

6,  host-gw 模式

host-gw   二层网络配置, 它不支持云环境,
通过在主机的路由表 中直接创建路由信息(subnet路由条目)  到达目标 性能好 配置麻烦

7,fannel中 vxlan 和 UDP 模式的区别

Flannel 是一种为 Kubernetes 集群提供网络覆盖(overlay network)的工具,它允许跨多个主机的容器之间相互通信,好像它们在同一局域网一样。Flannel 支持多种后端传输模式,其中 UDP 和 VXLAN 是两种常用的模式。下面是这两种模式的详细对比:

UDP 模式

  1. 工作原理

    • 在 UDP 模式下,每个 Flannel 节点运行一个 flanneld 守护进程,该进程监听一个 UDP 端口(默认 8285)。
    • 数据包通过 UDP 封装从一个节点发送到另一个节点,然后解封装并交付给目标容器。
    • flanneld 还需要与 ETCD 或其他配置存储交互,以获取网络配置和子网分配信息,并根据这些信息更新本机路由表。
  2. 优点

    • 实现相对简单,不需要特殊的内核支持。
    • 对于小规模集群或测试环境可能更易于设置。
  3. 缺点

    • 性能上可能不如 VXLAN,因为数据包需要在用户空间和内核空间之间多次上下文切换,这会引入额外的延迟。
    • 需要手动维护或自动化更新路由表,这可能导致管理上的复杂性。
    • 不如 VXLAN 扩展性好,尤其是在大规模部署时。

VXLAN 模式

  1. 工作原理

    • VXLAN 是一种标准的网络虚拟化技术,它使用 L2 over L4(即 MAC-in-UDP)封装,允许在三层网络上扩展二层网络。
    • 在 Flannel 中,VXLAN 通过内核模块直接处理封装和解封装,减少了用户空间到内核空间的切换次数。
    • VXLAN 使用 24 位的 VNI (VXLAN Network Identifier),理论上可以支持多达 16 百万个独立的二层网络,非常适合大规模部署。
  2. 优点

    • 性能较高,因为大部分工作在内核态完成,减少了上下文切换的开销。
    • 自动管理和更新路由,减少手动配置需求。
    • 高度可扩展,支持大规模的分布式网络部署。
    • 提供更好的隔离性和安全性,适合多租户环境。
  3. 缺点

    • 需要内核支持 VXLAN 协议,较老的系统可能需要升级内核或安装额外的软件。
    • 相比 UDP 模式,配置和理解可能更为复杂,特别是对于初学者。

总结

选择 UDP 还是 VXLAN 主要取决于具体的部署需求、性能要求、现有基础设施的支持情况以及运维团队的经验。对于追求高性能和大规模部署的场景,VXLAN 通常是更优的选择。而对于快速测试或对性能要求不那么严格的环境,UDP 模式可能因其简单性而成为合适的选择。

四    Calico 网络组件

1, Calico 是什么

英文翻译   厚棉布

#k8s 组网方案对比:
●flannel方案
需要在每个节点上把发向容器的数据包进行封装后,再用隧道将封装后的数据包发送到运行着目标Pod的node节点上。目标node节点再负责去掉封装,将去除封装的数据包发送到目标Pod上。数据通信性能则大受影响。

●calico方案
Calico不使用隧道或NAT来实现转发而是把Host当作Internet中的路由器,使用BGP同步路由,并使用iptables来做安全访问策略,完成跨Host转发
采用直接路由的方式,这种方式性能损耗最低,不需要修改报文数据,但是如果网络比较复杂场景下,路由表会很复杂,对运维同事提出了较高的要求。

2, Calico 组成

Calico CNI插件:主要负责与kubernetes对接,供kubelet调用使用。
Felix:负责维护宿主机上的路由规则、FIB转发信息库等。
BIRD:负责分发路由规则,类似路由器。
Confd:配置管理组件。
 

3, Calico 工作原理

Calico 是通过路由表来维护每个 pod 的通信。Calico 的 CNI 插件会为每个容器设置一个 veth pair 设备, 然后把另一端接入到宿主机网络空间,由于没有网桥,CNI 插件还需要在宿主机上为每个容器的 veth pair 设备配置一条路由规则, 用于接收传入的 IP 包。
有了这样的 veth pair 设备以后,容器发出的 IP 包就会通过 veth pair 设备到达宿主机,然后宿主机根据路由规则的下一跳地址, 发送给正确的网关,然后到达目标宿主机,再到达目标容器。
这些路由规则都是 Felix 维护配置的,而路由信息则是 Calico BIRD 组件基于 BGP 分发而来。
calico 实际上是将集群里所有的节点都当做边界路由器来处理,他们一起组成了一个全互联的网络,彼此之间通过 BGP 交换路由, 这些节点我们叫做 BGP Peer。
 

4,bgp 是什么

BGP(Border Gateway Protocol,边界网关协议)是一种用于互联网上的自治系统(Autonomous Systems, AS)之间的路由选择协议。它是Internet工程任务组(IETF)制定的,用以在不同的网络运营商或者大型网络之间交换路由和可达性信息。BGP的主要职责和特性包括:

  1. 自治系统间路由:BGP主要用于连接Internet上的独立系统(即AS),使得一个AS可以了解如何到达另一个AS中的网络。

  2. 路径传播与选择:BGP设备(通常称为BGP发言人或边界路由器)通过交换路由信息来了解整个网络的拓扑结构,并基于一系列复杂的策略(如路径长度、AS路径属性、本地优先级等)来决定到达特定目的地的最佳路径。

  3. 增强的可扩展性和策略控制:BGP支持丰富的路由策略,允许网络管理员对路由信息进行精细的过滤和操控,以满足特定的业务需求或策略目标,比如流量工程、负载均衡和网络安全策略实施。

  4. 可靠性与稳定性:BGP运行在TCP协议之上(端口号179),利用TCP的确认、重传和连接管理机制来确保路由信息的可靠传输。它采用增量更新和触发更新机制,仅在路由发生变化时发送更新,有助于减少带宽消耗和预防路由振荡。

  5. 路由聚合与CIDR支持:BGP支持无类域间路由(Classless Inter-Domain Routing, CIDR),允许进行路由聚合,减少路由表的大小,提高网络效率。

  6. 多协议支持:现代的BGP版本,如BGP-4,不仅支持IPv4,还扩展支持IPv6,以及其他网络层协议,显示其高度的灵活性和适应性。

综上所述,BGP是确保全球互联网稳定运行的关键协议,通过它实现了大规模网络间的高效、可控的互联互通。

5, fannel 和calico 区别 及应用场景

Flannel和Calico都是为Kubernetes和其他容器编排系统设计的网络插件,用于实现容器间的网络通信,但它们在设计原理、实现方式和适用场景上存在一些差异。

Flannel

原理与实现:

  • Flannel主要通过创建覆盖网络来提供容器间通信能力,最常用的是VXLAN模式。它为集群中的每个节点分配一个子网,并使用各种后端(如VXLAN、UDP、host-gw等)来实现跨节点的数据包转发。

  • 在VXLAN模式下,Flannel使用内核中的VXLAN模块封装数据包,通过隧道传输到目标节点,然后解封装并交付给目标容器。

应用场景:

  • Flannel因其简单易用和快速部署的特点,更适合小型到中型规模的集群,或者对网络配置要求不那么复杂的应用场景。

  • 当网络需求侧重于快速部署和基本的容器间隔离时,Flannel是一个不错的选择。

Calico

原理与实现:

  • Calico采用了不同于Flannel的思路,它使用BGP(Border Gateway Protocol)作为路由协议,在每个节点上运行一个agent来管理和控制网络策略。Calico直接在IP层进行路由,而非使用隧道封装,从而提供更高的网络性能。

  • Calico支持IP-in-IP和BGP两种模式,其中BGP模式特别强调利用现有的路由基础设施,通过宣告容器的IP地址到BGP网络,实现全局的路由可达性。

应用场景:

  • Calico因其强大的网络策略控制能力和高性能,更适合需要细粒度网络策略管理、高级网络功能(如网络策略、安全组)以及大规模部署的场景。

  • 在需要严格网络隔离、安全策略或需要直接在IP层进行路由的复杂网络架构中,Calico是更优的选择。

总结

  • 性能与扩展性:Calico通常提供更好的网络性能,因为它避免了封包和解包的开销,且在大规模部署下更为稳定和可扩展。

  • 网络策略:Calico提供更精细的网络策略和安全控制,适合需要严格安全策略和网络分段的环境。

  • 简易性与配置:Flannel部署和配置相对简单,对于快速搭建测试环境或简单网络需求非常友好。

选择Flannel还是Calico,取决于具体的应用场景、性能需求、网络复杂度以及对网络策略控制的要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1674527.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode.所有可能的路径(python)

找到从节点0到n-1的所有路径,肯定是用dfs算法,不过有两种思考方式: 一种是:从后往前考虑。如果这条路能到n-1节点,那么dfs返回一个rec列表,里面存路径。 class Solution:def allPathsSourceTarget(self, …

C语言数据结构(超详细讲解)| 栈和队列的实现

栈和队列的实现 引言 在计算机科学的世界里,数据结构是我们构建各种复杂算法和解决问题的基石。其中,栈(Stack)和队列(Queue)作为两种经典的数据结构,在解决实际问题时发挥着不可或缺的作用。…

【回溯 代数系统】679. 24 点游戏

本文涉及知识点 回溯 代数系统 LeetCode679. 24 点游戏 给定一个长度为4的整数数组 cards 。你有 4 张卡片,每张卡片上都包含一个范围在 [1,9] 的数字。您应该使用运算符 [‘’, ‘-’, ‘*’, ‘/’] 和括号 ‘(’ 和 ‘)’ 将这些卡片上的数字排列成数学表达式…

【C#】WPF加载浏览器

结果展示 下载SDK 前端代码 红色框住的为添加代码 <Window x:Class"WPFwebview.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://…

TCP四次挥手——断开连接 滑动窗口-流量控制

四次挥手 在TCP的四次挥手中&#xff0c;其重要作用就是释放客户端和服务器的连接。 这里的一些参数非常重要&#xff0c;因为这些参数的作用是为了表达TCP四次挥手断开连接的过程。 其中的参数如下 1.FIN&#xff1a;FIN (Finish) 是TCP协议中的一个标志位&#xff0c;用于…

推荐网站(9)pixabay免费可商用的图片、视频、插画、矢量图、音乐

今天推荐一款可以免费可商用的图片、视频、插画、矢量图、音乐的资源网站&#xff0c;这里面的所以东西都是免费的&#xff0c;并且可以商用。对那些做视频剪辑的人来说帮助非常大。它里面的资源非常的丰富&#xff0c;质量也高。 比如搜索下雨 链接直达&#xff1a;https://pi…

解决webstorm没有vue语法提示;webstorm没有代码提示

解决webstorm没有vue语法提示&#xff1b;webstorm没有代码提示 使用webstorm 2023.x 开发vue项目。发现死活没有vue语法提示&#xff0c;即便是npm install、清理缓存。对比其他vue项目却有语法提示&#xff0c;最后发现依赖库被忽略了&#xff1a; 删除掉node_modules 的忽略…

huggingface:利用git克隆目标资源

前言 因为有很多模型资源都被放在了huggingface上&#xff0c;为了下载它们&#xff0c;着实让一个不懂git的人犯了难&#xff0c;绕了很多远路&#xff0c;甚至将不需要解决的问题也都拿上了台面&#xff0c;因此我将在本篇博客中记载一些关于【huggingface】中利用git克隆目标…

apisix3.9.1 和 dashboard 离线安装

服务器配置 centos7 linux x86 64 前置 需要将离线安装包上传到服务器上 {上传目录 /root/apisix-soft/ } 【建议:优先上传etcd-*.jar \ apisix-*.rpm \ cyrus-*.rpm \ openldap-*.rpm 等安装好apisix后再上传apisix-dashboard-*.rpm】 可以自行网上寻找&#xff0c;或找一台可…

Python接口自动化测试之动态数据处理

在前面的知识基础上介绍了在接口自动化测试中&#xff0c;如何把数据分离出来&#xff0c;并且找到它的共同点&#xff0c;然后依据这个共同点来找到解决复杂问题的思想。我一直认为&#xff0c;程序是人设计的&#xff0c;它得符合人性&#xff0c;那么自动化测试的&#xff0…

使用命令查看电脑最大支持物理内存容量

一、Windows 系统 以管理员身份运行 cmd C:\WINDOWS\system32>wmic memphysical get maxcapacity /format:value将返回值除以1024&#xff0c;再除以1024&#xff0c;即本机最大支持的内存容量 或一行命令直接获取返回值 for /f "tokens2 delims" %I in (wmic…

怎么给视频加水印?2招轻松搞定

在数字媒体时代&#xff0c;视频水印作为一种有效的版权保护手段&#xff0c;被广泛应用于各种场景。给视频添加水印不仅可以防止内容被恶意盗用&#xff0c;还能增加视频的辨识度&#xff0c;提升品牌形象。本文将为您介绍2种简单易行的方法&#xff0c;教您怎么给视频加水印&…

保研机试之【动态规划】

本文为博客&#xff1a;动态规划解题套路框架 | labuladong 的算法笔记 的笔记 前言 动态规划问题的一般形式就是求最值&#xff0c;求解动态规划的核心问题是穷举。动态规划三要素为&#xff1a;最优子结构、重叠子问题、状态转移方程。首先要判断&#xff0c;该问题是否具有…

模电·场效应管放大电路的动态分析_039

场效应管放大电路的动态分析 一、场效应管的低频小信号等效模型二、基本共源放大电路的动态分析三、基本共漏放大电路的动态分析 一、场效应管的低频小信号等效模型 与分析晶体管的 h h h参数等效模型相同&#xff0c;将场效应管也看成一个两端口网络&#xff0c;栅极与源极之间…

MobileNet 网络详解

一、了解 网络亮点&#xff1a; 1、DW网络&#xff0c;大大减少运算量和参数数量 2、增加超参数&#xff1a;控制卷积层卷积核个数的超参数 &#xff0c;控制图像输入大小的超参数 &#xff0c;这两个超参数是人为设定的&#xff0c;不是机器学习到的。 二、DW卷积&#xff…

怎么防止源代码防泄密

随着数字化时代的到来&#xff0c;源代码作为企业和个人的重要资产之一&#xff0c;承载着无价的知识和创新。然而&#xff0c;源代码泄露已成为当今信息安全领域的重要挑战之一&#xff0c;给企业带来了严重的经济损失和声誉风险。面对这一挑战&#xff0c;我们有责任加强对源…

亿级流量系统架构设计与实战

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

【火热征稿~~】2024年心理、哲学与历史国际会议(ICPPH 2024)

2024年心理、哲学与历史国际会议&#xff08;ICPPH 2024&#xff09; 2024 International Conference on Psychology, Philosophy, and History 【会议简介】 2024年心理、哲学与历史国际会议将于历史文化名城武汉召开。此次盛会集结了来自世界各地的心理学家、哲学家和历史学…

01软件下载安装和P解

凯哥英语视频 软件下载安装和P解 凯哥英语视频1.官网直接下&#xff0c;专业版安装不会有人不会吧实在下载不到就去我这百度云吧结语 1.官网直接下&#xff0c;专业版 点击前往逛网下载https://www.jetbrains.com/pycharm/ 下载专业版&#xff0c;奶茶外卖都能点&#xff0c;只…

【爬虫】爬取股票数据写入数据库并显示(四)

本文所涉及代码已全部打包上传&#xff0c;需要可以到文章末尾查看获取方式&#xff0c;免费&#xff0c;仅做学习交流&#xff01;&#xff01;&#xff01; 股票客户端软件 2024/05&#xff0c;本文主要内容如下&#xff1a; 使用python requests爬取东方财富官网数据。将爬…