当前位置: 首页 > news >正文

kubevirt网络

六、KubeVirt网络

KubeVirt网络相关组件

用户在KubeVirt平台创建虚拟机只需创建一个vmi(Virtual Machine Instance)对象,之后virt-controller会根据vmi对象中的信息创建一个Pod,这里把这个Pod叫做vmi pod。Vmi pod中有kubevirt组件virt-launcher,以及虚拟化相关组件libvirtd和qemu。kubevirt虚拟机网络主要与virt-launcher以及daemonset部署的virt-handler有关:

源码分析

假设当前有vmi.yaml示例:

apiVersion: kubevirt.io/v1alpha3

kind: VirtualMachineInstance

metadata:

  annotations:

    name: test

spec:

  domain:

    devices:

      interfaces:

      - masquerade: {}

        name: default

      # ...

  networks:

  - name: default

    pod: {}

  # ...

vmi对象中与网络关系密切的参数主要有两个:

Spec.domain.devices.interfaces:定义连接guest接口的方法,支持bridge、slirp、masquerade、sriov和macvtap

Spec.networks:定义连接vm虚拟机网络的源,支持Pod和multus两种类型

注:上述两个参数的name字段需要匹配上

基于上述yaml,我们再分别从virt-handler和virt-launcher两个组件源码层面,看看KubeVirt网络的实现

Virt-handler

当创建一个vmi对象后,virt-hanler初始化网络的入口函数在vmUpdateHelperDefault:

KubeVirt 主要支持以下几种网络模式:

Pod 网络(默认模式)

使用 Kubernetes 集群默认的 Pod 网络。

在这种模式下,每个虚拟机(VM)作为一个 Pod 运行,并与 Kubernetes Pod 网络共享 IP 地址。

默认使用 bridge 插入方式,将 VM 接口桥接到 Pod 的虚拟以太网接口上,使其具备 Pod 网络的 IP,且能够与其他 Pod 通信。

多网络模式(Multus CNI 插件)

使用 Multus CNI 插件,可以为每个 VM 配置多个网络接口。

允许 VM 连接到多个网络,实现隔离或独立的网络拓扑。

常用于复杂的网络拓扑设计,比如电信级应用或 NFV(网络功能虚拟化)场景。

SR-IOV 网络

使用 SR-IOV(单根 I/O 虚拟化)直接将物理网卡的虚拟功能分配给 VM,从而实现高性能网络。

适用于对网络性能要求高的场景,如高性能计算、数据密集型应用等。

SR-IOV 需要集群节点和网卡支持 SR-IOV 功能,并使用 SR-IOV CNI 插件。

MACVLAN 网络

MACVLAN 允许多个接口共享一个物理网络接口,但每个接口拥有独立的 MAC 地址和 IP 地址。

在使用 Multus CNI 时,MACVLAN 可以用于将虚拟机直接连接到物理网络。

6.1KubeVirt插入方式

KubeVirt 支持不同的网络接口插入方式,用于将 VM 的网络接口与 Pod 网络接口连接。主要的插入方式包括:

Bridge(桥接)

将 VM 的网络接口桥接到 Pod 的 veth(虚拟以太网)接口上。

适用于默认的 Pod 网络模式,VM 获得 Pod 的 IP 地址,并通过该 IP 与其他资源通信。

Masquerade(伪装)

使用网络地址转换(NAT)将 VM 的私有 IP 地址隐藏在 Pod 的 IP 地址后。

适合需要隔离 VM 网络的场景,通常用于虚拟机作为客户端访问外部服务,而不需要直接被访问的场景。

SR-IOV

直接将 SR-IOV 网卡功能分配给 VM,提供接近物理网络的性能。

6.2KubeVirt卷的类型

cloudInitConfigDrive:在通过给VM挂载一个文件系统,给cloud-init提供meta-data和user-data

cloudInitNoCloud:在通过给VM挂载一个文件系统,给cloud-init提供meta-data和user-data,生成的文件格式与ConfigDrive不同

containerDisk:指定一个包含qcow2或raw格式的Docker镜像,重启VM数据会丢失

dataVolume:动态创建一个PVC,并用指定的磁盘映像填充该PVC,重启vm数据不会丢失。

emptyDisk:从宿主机上分配固定容量的空间,映射到VM中的一块磁盘,与emptyDir一样,emptyDisk的生命周期与VM等同,重启VM数据会丢失。

ephemeral:在VM启动时创建一个临时卷,VM关闭后自动销毁,临时卷在不需要磁盘持久性的任何情况下都很有用。

hostDisk:在宿主机上创建一个img镜像文件给VM使用。重启VM数据不会丢失。

persistentVolumeClaim:指定一个PVC创建一个块设备。重启VM数据不会丢失。

secret:使用Kubernetes的secret来存储和管理一些敏感数据,比如密码,token,密钥等敏感信息,并把这些信息注入给VM,可以动态更新到Pod,但是不能修改Pod中生成的iso文件,更不能更新到VM。要想更新到VM,需重启VM。

configMap:功能类似于secret,把configMap里的信息写入到iso磁盘中,挂给VM。

serviceAccount:功能类似为secret,把serviceAccount里的信息写入到iso磁盘中,挂给VM。

sysprep:以secret或configMap的形式,往VM写入sysprep

示例:创建虚拟机并配置网络

创建一个虚拟机配置文件 vmi.yaml

apiVersion: kubevirt.io/v1

kind: VirtualMachine

metadata:

  name: test-vm

spec:

  running: false

  template:

    spec:

      domain:

        resources:

          requests:

            memory: 1024M

        devices:

          disks:

          - name: containerdisk

            disk:

              bus: virtio

          interfaces:

          - name: default

            masquerade: {}

      networks:

      - name: default

        pod: {}

      volumes:

      - name: containerdisk

        containerDisk:

          image: kubevirt/cirros-container-disk-demo:latest

创建虚拟机

[root@k8s-master ~]# kubectl apply -f vmi-yaml

启动虚拟机

[root@k8s-master ~]# virtctl start testvm

[root@k8s-master ~]# kubectl get vmi test-vm

验证网络配置

[root@k8s-master~]# kubectl

get vmi test-vm -o jsonpath='{.status.interfaces[0].ipAddress}'

进入虚拟机控制台,验证网络连接

[root@k8s-master ~]# virtctl console test-vm

$ ping -c 3 8.8.8.8

配置多网络接口

安装Multus CNI

[root@k8s-master~]#kubectl apply -f https://raw.githubusercontent.com/k8snetworkplumbingwg/multus-cni/master/deployments/multus-daemonset.yml

[root@k8s-master~]# kubectl get pods -n kube-system | grep multus

创建一个额外的网络配置文件

[root@k8s-master ~]# cat additional-network.yaml

apiVersion: "k8s.cni.cncf.io/v1"

kind: NetworkAttachmentDefinition

metadata:

  name: additional-network

spec:

  config: '{

    "cniVersion": "0.3.1",

    "type": "bridge",

    "bridge": "br0",

    "ipam": {

      "type": "host-local",

      "subnet": "10.10.0.0/16",

      "rangeStart": "10.10.1.2",

      "rangeEnd": "10.10.3.5",

      "routes": [

        { "dst": "0.0.0.0/0" }

      ],

      "gateway": "10.10.1.1"

    }

  }'

应用配置

[root@k8s-master ~]# kubectl apply -f additional-network.yaml

配置虚拟机使用额外网络

修改虚拟机配置文件 vm.yaml,添加额外网络接口:

[root@k8s-master ~]# cat vmi.yaml

apiVersion: kubevirt.io/v1

kind: VirtualMachine

metadata:

  name: testvm

spec:

  running: false

  template:

    spec:

      domain:

        resources:

          requests:

            memory: 1024M

        devices:

          disks:

          - name: containerdisk

            disk:

              bus: virtio

          interfaces:

          - name: default

            masquerade: {}

          - name: additional

            bridge: {}

      networks:

      - name: default

        pod: {}

      - name: additional

        multus:

          networkName: additional-network

      volumes:

      - name: containerdisk

        containerDisk:

          image: kubevirt/cirros-container-disk-demo:latest

重新创建虚拟机

[root@k8s-master ~]# kubectl delete -f vm.yaml

[root@k8s-master ~]# kubectl apply -f vm.yaml

[root@k8s-master ~]# virtctl start testvm

查看虚拟机的运行状态

[root@k8s-master ~]# kubectl get vmi  test-vm

验证额外的网络接口

[root@k8s-master~]#kubectl

get vmi testvm -o jsonpath='{.status.interfaces}'

验证虚拟机网络连接

[root@k8s-master ~]# virtctl console test-vm

$ ip addr show

$ ping -c 3 8.8.8.8

相关文章:

kubevirt网络

六、KubeVirt网络 KubeVirt网络相关组件 用户在KubeVirt平台创建虚拟机只需创建一个vmi(Virtual Machine Instance)对象,之后virt-controller会根据vmi对象中的信息创建一个Pod,这里把这个Pod叫做vmi pod。Vmi pod中有kubevirt组…...

LeetCode100之腐烂的橘子(994)--Java

1.问题描述 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元…...

【Leetcode】855. 考场就座

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 在考场里,有 n n n 个座位排成一行,编号为 0 0 0 到 n − 1 n - 1 n−1。 当学生进入考场后,他必须坐在离最近的人最远的座位上。如果有多个…...

AI,cursor快速上手思维导图

https://cursor101.com/zh/tutorial/learn-cursor-tab...

【演化博弈】期望收益函数公式、复制动态方程——化简功能技巧

期望化简 在演化博弈论的研究中,期望收益函数和复制动态方程是核心工具。化简这些公式的功能技巧具有以下几个重要作用: 提高公式的可读性和理解度 复杂的数学表达式可能让人感到困惑。通过化简,公式变得更加简单和易读,使研究者…...

常用Linux命令

常用Linux命令介绍 1.ls命令用于列出当前目录的内容,包括目录、文件和压缩包等。 2.ls命令的参数可以以长格式显示文件信息,如修改时间、文件大小等。 3.使用ls -a参数可以显示隐藏文件和文件夹。 4.通过ls -lh命令可以以人类可读的方式显示文件和文件夹…...

记录树莓派4B安装向日葵的过程

到向日葵官网下载向日葵 for Linux的麒麟Arm64版本;sudo dpkg -i 文件名.deb 安装;安装依赖: sudo apt install libappindicator3-1 如果没有的话就使用: sudo apt install libayatana-appindicator3-1 关闭wayvnc服务及其自启动…...

模型 课题分离

系列文章 分享 模型,了解更多👉 模型_思维模型目录。明确自我与他人责任。 1 课题分离的应用 1.1课题分离在心理治疗中的应用案例:李晓的故事 李晓,一位28岁的软件工程师,在北京打拼。他面临着工作、家庭和感情的多重…...

docker部署微信小程序自动构建发布和更新

通过 Jenkins 和 Docker 部署微信小程序,并实现自动构建、发布和版本更新,主要涉及以下几个步骤: 设置 Jenkins 环境配置 GitLab 与 Jenkins 的集成构建 Docker 镜像部署和发布微信小程序配置 Jenkins 自动构建 以下是详细的步骤说明&#…...

0.96寸OLED显示屏详解

我们之前讲了 LCD1602,今天我们将它的进阶模块——OLED。它接线更少,性能更强,也能显示中文和图像了。 大家在学习单片机的时候是否会遇到调试的问题呢?例如 “这串代码我到底运行成功了没有” ,我相信很多刚开始学习…...

【Python使用】嘿马python高级进阶全体系教程第10篇:静态Web服务器-返回固定页面数据,1. 开发自己的静态Web服务器【附代码文档】

本教程的知识点为:操作系统 1. 常见的操作系统 4. 小结 ls命令选项 2. 小结 mkdir和rm命令选项 1. mkdir命令选项 压缩和解压缩命令 1. 压缩格式的介绍 2. tar命令及选项的使用 3. zip和unzip命令及选项的使用 4. 小结 编辑器 vim 1. vim 的介绍 2. vim 的工作模式 …...

H3C AC_AP基本配置流程

前置摘要 AP管理地址:10.115.8.0/ AP业务地址:10.115.10.0 SSID qdtest passwd 123chery map.txt system-view vlan 1010 quit interface GigabitEthernet 1/0/1 port link-type trunk port trunk permit vlan 1010AC配置 vlan 1008 des Ap_manager quit int vlan 1008 ip ad…...

准备写一个内网穿透的工具

准备写一个内网穿透的工具,目前只实现了HTTP内网穿透的GET方式,看能不能坚持写下去 git地址: xuejiazhi/PortRelay...

模型高效微调方式

除了LoRA(Low-Rank Adaptation)外,还有其他一些快速且效果好的模型微调方法。这些方法可以在保持模型性能的同时,减少计算和存储需求。以下是几种常见的方法: 1. 参数高效微调(Parameter-Efficient Fine-T…...

Linux系统编程——理解系统内核中的信号捕获

目录 一、sigaction() 使用 信号捕捉技巧 二、可重入函数 三、volatile关键字 四、SIGCHLD信号 在信号这一篇中我们已经学习到了一种信号捕捉的调用接口:signal(),为了深入理解操作系统内核中的信号捕获机制,我们今天再来看一个接口:si…...

ISP算法之BNR降噪(Bayer域)

概述 BNR(Bayer Noise Reduction)即Bayer域降噪算法。对于噪声的分类如下表所示: 高斯噪声( Gaussian) 高斯噪声也被称为热噪声,通常是由于电路系统中自由电子的热运动,这种噪声幅度分布服从高…...

HBuilder快捷键大全

目录 一、最常用快捷键 二、文件操作快捷键 三、选择操作快捷键 四、插入操作快捷键 五、编辑操作快捷键 六、删除操作快捷键 七、查找操作快捷键 八、标签规范快捷键 八、运行操作快捷键 九、转换操作快捷键 十、跳转操作快捷键 十一、附加功能快捷键 十二、快捷键…...

Diffusion_Policy项目测试报错记录

1、项目连接 paper:2303.04137 (arxiv.org) github: real-stanford/diffusion_policy: [RSS 2023] Diffusion Policy Visuomotor Policy Learning via Action Diffusion (github.com) 2、问题与解决办法 1) 运行 python train.py --..... 显示无法Err…...

Linux内核学习资源

老版本内核源码: https://mirrors.edge.kernel.org/pub/linux/kernel/Historic/old-versions/ 内核源码分析开源项目: https://github.com/ultraji/linux-0.12/tree/master/srchttps://gitee.com/wslyx/linux-0.12https://github.com/0voice/linux_ke…...

NGINX的安装和配置(Linux环境)

目录 NGINX 安装方式1、 离线编译安装2、 在线仓库安装 NGINX 常用命令1、进程管理命令2、信息查看命令 NGINX 配置文件1、进程使用的配置2、配置文件格式3、配置文件层级 NGINX 全局配置1、全局配置常用指令2、连接相关配置 NGINX 配置MIME1、MIME 标准2、types 配置块3、defa…...

Leetcode打卡:考场就坐

执行结果:通过 题目: 855 考场就坐 在考场里,有 n 个座位排成一行,编号为 0 到 n - 1。 当学生进入考场后,他必须坐在离最近的人最远的座位上。如果有多个这样的座位,他会坐在编号最小的座位上。(另外&am…...

STM32——“SPI Flash”

引入 在给单片机写程序的时候,有时会用到显示屏,就拿市面上的0.96寸单色显示器来说,一张全屏的图片就占用8x1281024个字节,即1kb的空间,这对于单片机来说确实有点奢侈,于是我买了一个8Mb的SPI Flash&#x…...

Zookeeper基本命令解析

ZooKeeper -server host:port -client-configuration properties-file cmd args addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE addauth scheme auth 一、整体命令格式 ZooKeeper -serve…...

React-更新state的数据,dom没有重新渲染

{entourageList.map((person) > (<Row key{person.id}> {/* 使用唯一的 person.id */}<Col span{16}><Row gutter{16}><Col lg{9} md{18} sm{24}><FormItem label{姓名}>{getFieldDecorator(name-${person.id}, {initialValue: person.name,…...

消息队列技术的发展历史

消息队列技术的演进历程宛如一幅波澜壮阔的科技画卷&#xff0c;历经多个标志性阶段&#xff0c;各阶段紧密贴合不同的技术需求与市场风向&#xff0c;下面为您详细道来。 第一阶段&#xff1a;消息中间件的起源&#xff08;1970 年代末期 - 1980 年代中期&#xff09; 在计算…...

20.抽卡只有金,带保底(WPF) C#

这是一个界面应用化后的抽卡&#xff0c;目前只能抽金&#xff0c;只有基础概率加保底概率 适合界面化应用初学者。 这是展示图&#xff1a; 使用的是WPF不是winform&#xff0c;我也是第一次做WPF内容&#xff0c;就可以试一试&#xff0c;代码都在这里了&#xff0c;简单来…...

DALFox-一款XSS自动化扫描工具

声明&#xff01;本文章所有的工具分享仅仅只是供大家学习交流为主&#xff0c;切勿用于非法用途&#xff0c;如有任何触犯法律的行为&#xff0c;均与本人及团队无关&#xff01;&#xff01;&#xff01; 目录标题 一、介绍及使用启动及使用1. 单个扫描2. 多个扫描3. 文件扫描…...

软件测试之压力测试【详解】

压力测试 压力测试是一种软件测试&#xff0c;用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力&#xff0c;并确保软件在危急情况下不会崩溃。它甚至可以测试超出正常工作点的测试&#xff0c;并评估软件在极端…...

电视大全 1.3.8|汇聚多频道资源,秒切换流畅播放

电视大全TV版是一款功能丰富的TV端直播软件&#xff0c;由悠兔电视的同一开发者打造。最新版本更新了更多频道&#xff0c;包括央视、卫视和地方频道等&#xff0c;提供了多线路流畅播放体验&#xff0c;并支持节目回看、线路选择、开机自启等功能。该应用免登录且无购物频道&a…...

MaxKB基于大语言模型和 RAG的开源知识库问答系统的快速部署教程

1 部署要求 1.1 服务器配置 部署服务器要求&#xff1a; 操作系统&#xff1a;Ubuntu 22.04 / CentOS 7.6 64 位系统CPU/内存&#xff1a;4C/8GB 以上磁盘空间&#xff1a;100GB 1.2 端口要求 在线部署MaxKB需要开通的访问端口说明如下&#xff1a; 端口作用说明22SSH安装…...

大恒相机开发(3)—大恒相机工业检测的实际案例

大恒相机工业检测的实际案例 工业检测的实际案例图像采集性能优化技巧工业环境下的稳定性 工业检测的实际案例 以下是一些使用大恒相机进行工业检测的实际案例&#xff1a; 多特征光学成像系统&#xff1a; 在这个案例中&#xff0c;使用大恒相机构建了一个全方位、多特征的图…...

《Java 与 OpenAI 协同:开启智能编程新范式》

在当今科技飞速发展的时代&#xff0c;人工智能已成为推动各领域创新变革的核心力量。OpenAI 作为人工智能领域的领军者&#xff0c;其开发的一系列强大模型&#xff0c;如 GPT 系列&#xff0c;为自然语言处理等诸多任务带来了前所未有的突破。而 Java&#xff0c;作为一种广泛…...

HarmonyOS NEXT 技术实践-基于基础视觉服务的多目标识别

在智能手机、平板和其他智能设备日益智能化的今天&#xff0c;视觉识别技术成为提升用户体验和智能交互的重要手段。HarmonyOS NEXT通过基础视觉服务&#xff08;HMS Core Vision&#xff09;提供了一套强大的视觉识别功能&#xff0c;其中多目标识别作为其关键技术之一&#x…...

MySQL体系架构

MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。 网络连接层 客户端连接器&#xff08;Connectors&#xff09;&#xff1a;提供与MySQL服务器建立的支持。目前几乎支持所有主 流的服务端编程技术&#xff0c;例如常见的 Java、C、Python、.…...

如何学习Trustzone

阅读官方文档 ARM 官方文档是学习 Trustzone 最权威的资料来源。例如&#xff0c;ARM Architecture Reference Manual 中详细介绍了 Trustzone 的架构原理、寄存器定义和操作模式等内容。这些文档虽然比较复杂&#xff0c;但能够提供最准确的技术细节&#xff0c;适合在学习过…...

【视觉SLAM:Panoptic FPN全景分割网络】

Panoptic FPN是一种全景分割&#xff08;Panoptic Segmentation&#xff09;的经典网络&#xff0c;最早由 Kirillov 等人在 2019 年提出。全景分割是一种统一的视觉任务&#xff0c;结合了实例分割&#xff08;Instance Segmentation&#xff09;和语义分割&#xff08;Semant…...

【Linux】数据呈现

一、数据的输入与输出 1、标准文件描述符 Linux系统会将每个对象都当做文件来处理&#xff0c;包括输入和输出。它用文件描述符来标识每个文件对象。 文件描述符是一个非负整数&#xff0c;唯一会标识的是会话中打开的文件。每个进程一次最多可以打开9个文件描述符。bash sh…...

编译原理期末复习--伪代码部分

1.词法分析 token token nexttoken()c getchar();switch(c):case <:c getchar();switch(c):case : return RE;case >: return NE;default: rollback(); return LT;case :return EQ;case >:c getchar();switch(c):case : return GE;default: rollback(); return GT…...

云原生相关的 Go 语言工程师技术路线(含博客网址导航)

要成为一名云原生相关的 Go 语言工程师&#xff0c;需要在 Go 语言、云原生技术栈以及相关的开发和运维工具上建立扎实的基础。下面是一个前字节员工总结的技术路线规划&#xff1a; 1. 掌握 Go 语言基础 深入理解 Go 语言&#xff1a;你需要熟练掌握 Go 的语法、数据结构、并…...

基于Springboot + vue实现的汽车资讯网站

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e; &#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论 &#x1f525;&#x1f525;&…...

【YashanDB知识库】ycm-YashanDB列表有数据库显示故障排除步骤

本文内容来自YashanDB官网&#xff0c;原文内容请见 https://www.yashandb.com/newsinfo/7802959.html?templateId1718516 数据库状态 正常 异常 1、查看告警列表 例如&#xff1a;告警显示实例无法连接&#xff0c;一般是数据库实例服务掉了&#xff0c;需要尽快联系系统…...

如何使用 FastAPI 框架创建 RESTful API ?

FastAPI是一个现代、快速&#xff08;高性能&#xff09;的Web框架&#xff0c;用于构建API&#xff0c;它基于Python 3.6的类型提示功能&#xff0c;可以自动生成交互式API文档&#xff08;使用Swagger UI或ReDoc&#xff09;&#xff0c;并且支持异步编程。 二、创建第一个F…...

Java 继承

继承是所有 OOP 语言和 Java 语言不可缺少的组成部分。 继承是 Java 面向对象编程技术的一块基石&#xff0c;是面向对象的三大特征之一&#xff0c;也是实现软件复用的重要手段&#xff0c;继承可以理解为一个对象从另一个对象获取属性的过程。 如果类 A 是类 B 的父类&…...

嵌入式Linux QT+OpenCV基于人脸识别的考勤系统 项目

此项目是基于人脸识别的考勤系统开发&#xff0c;包括如下模块&#xff1a; 1、人脸识别考勤系统GUI界面设计&#xff0c;包括&#xff1a; &#xff08;1&#xff09;Qt环境(window环境/linux环境) &#xff1b; &#xff08;2&#xff09;Qt工程创建分析&#xff1b; &am…...

门户系统需要压测吗?以及门户系统如何压力测试?

一、门户系统为什么要进行压力测试&#xff1f; 首先一点要明确一下&#xff0c;统一门户上线以后&#xff0c;将是所有应用系统的入口&#xff0c;对应门户稳定性要求较高&#xff0c;门户实现了统一入口和统一认证&#xff0c;系统宕机将影响其他系统使用。一般部署架构要求…...

Linux扩展——shell编程

前置&#xff1a;Linux基础及命令复习 目录 shell概述Shell脚本入门案例 sh bash ./ . source 变量系统预定义变量 $HOME $PWD $SHELL等自定义变量 unset readonly补充&#xff1a;开启子Shell进程的常见方法 (...) $(...) ... <(...) >(...) 特殊变量 $n $# $* $ $&…...

golang, go sum文件保证下载的依赖模块是一致的

在 Go 编程语言中&#xff0c;go.sum 文件是 Go 模块管理的一部分&#xff0c;主要用于记录模块的校验信息&#xff08;模块版本的校验和&#xff09;。它的设计目标是确保模块的完整性和安全性&#xff0c;解决以下关键问题&#xff1a; 1. 确保模块版本的一致性 go.sum 文件…...

TANGO与LabVIEW控制系统集成

TANGO 是一个开源的设备控制和数据采集框架&#xff0c;主要用于管理实验室设备、自动化系统和工业设备。它为不同类型的硬件提供统一的控制接口&#xff0c;并支持设备之间的通信&#xff0c;广泛应用于粒子加速器、同步辐射光源、实验室自动化和工业控制等领域。 1. TANGO的核…...

【day14】异常处理与Object类深入解析

【day13】回顾 在深入探讨异常处理与Object类之前&#xff0c;让我们回顾一下【day13】中的关键内容&#xff1a; 权限修饰符&#xff1a; public&#xff1a;最广的访问范围&#xff0c;任何地方都可以访问。protected&#xff1a;在同包和子类中可以访问。默认&#xff08;无…...

云技术基础知识(二):虚拟化与容器技术

内容预览 ≧∀≦ゞ 虚拟化与容器技术虚拟化技术一、虚拟化的核心概念二、虚拟化的主要类型1. 服务器虚拟化2. 操作系统虚拟化&#xff08;容器化&#xff09;3. 网络虚拟化4. 存储虚拟化 三、虚拟化的实现方法和工具1. 服务器虚拟化实现2. 操作系统虚拟化&#xff08;容器化&am…...