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

【Kubernetes 基本概念】Kubernetes 的架构和核心概念

目录

  • 一、Kurbernetes
    • 1.1 简介
    • 1.2 为什么要用K8s?
    • 1.3 K8s的特性
  • 二、Kurbernetes集群架构与组件
  • 三、Kurbernetes的核心组件
    • 3.1 Master组件
      • 3.1.1 Kube-apiserver
      • 3.1.2 Kube-controller-manager
      • 3.1.3 Kube-scheduler
    • 3.2 配置存储中心——etcd
    • 3.3 Node组件
      • 3.3.1 Kubelet
      • 3.3.2 Kube-Proxy
      • 3.3.3 容器引擎/容器运行时
    • 3.4 推荐的插件(补充知识)
  • 四、Kurbernetes创建Pod资源的工作流程(重要)
  • 五、Kubernetes核心概念之资源对象
    • 5.1 Pod
    • 5.2 Pod控制器
    • 5.3 Service
      • 5.3.1 为什么要用到Service(服务)?
      • 5.3.2 Service
    • 5.4 Ingress
  • 六、Kubernetes核心概念之资源配置信息
    • 6.1 apiversion
    • 6.2 kind
    • 6.3 metadata
      • 6.3.1 label
      • 6.3.2 laber selector
      • 6.3.3 annotation
      • 6.3.4 name
      • 6.3.5 namespance
    • 6.4 spec
    • 6.5 status
      • 6.3.4 name
      • 6.3.5 namespance
    • 6.4 spec
    • 6.5 status

一、Kurbernetes

1.1 简介

Kurbernetes是Google旗下的容器跨主机编排工具

Kurbernetes可以自动化应用容器的部署、扩展和操作,提供以容器为中心的基础架构。

1.2 为什么要用K8s?

从生态圈的角度来看

  • Google 的业内最成熟的容器编排管理经验的输出
  • 2017 年战胜 Docker Swarm 和 Apache Mesos,成为云原生应用唯一值得绑定的容器编排管理平台
  • 传统云平台提供商的全面支持:Google k8s engine、Red Hat 的 OpenShift、Microsoft 的 Azure container service、IBM 的 cloud container service 等j

从云应用角度来看

  • 容器管理、调度和编排的事实标准:摆脱锁定,支持跨云
  • 先进的 Workload 管理之经验模型:Pod 和 Controllers
  • 原生支持微服务抽象:服务注册、服务发现和自动负载均衡

在生产环境中使用 Kubernetes 的主要优势在于它提供了在物理机或虚拟机集群上调度和运行容器的平台。

更宽泛地说,它能帮你在生产环境中实现可以依赖的基于容器的基础设施。

而且,由于 Kubernetes 本质上就是运维任务的自动化平台,你可以执行一些其它应用程序平台或管理系统支持的操作,只不过操作对象变成了容器。

1.3 K8s的特性

1)强大的容器编排能力

作为容器编排管理平台,拥有强大的容器编排能力。

Kubernetes 与 Docker 共同发展并且深度集成了 Docker,因此适应容器的特点,比如容器组合、标签选择和服务发现等,可以满足企业级的需求,具体表现如下:

  • 以 Pod(容器组)为基本的编排和调度单元以及声明式的对象配置模型(控制器、configmap、secret 等)
  • 资源配额与分配管理
  • 健康检查、自愈、伸缩与滚动升级

2)轻量级

轻量级,对微服务架构有很好的支撑。

微服务架构的核心是将一个巨大的单体应用分解为很多小的互相连接的微服务,一个微服务可能由多个实例副本支撑,副本的数量可以随着系统的负荷变化进行调整。

整个系统划分出各个功能独立的组件,组件之间边界清晰、部署简单,以及很多功能实现了插件化,可以非常方便地进行扩展和替换:

  • 服务发现、服务编排与内部路由支持
  • 服务快速部署和自动负载均衡
  • 提供对“有状态”服务的支持

3)便携性

无论公有云、私有云、混合云还是多云架构都全面支持,可以随时随地地将系统整体进行“搬迁”。

Kubernetes 架构方案中屏蔽了底层网络的细节,基于服务的虚拟 IP 地址的设计方式让架构和底层硬件无关,无需改变配置文件就可以将系统从物理机迁移到公有云上,并且谷歌云(GCE)、华为云(CCE)、阿里云(ACK)和腾讯云(TKE)都支持 Kubernetes 集群。

二、Kurbernetes集群架构与组件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Kubernetes 采用主从分布式架构,节点在角色上分为 MasteNode

Kubernetes Master 是控制节点,负责k8s集群的调度、管理等运维工作,组件有apiserver、controller-manager、scheduler、etcd。

Kubernetes Node 是运行节点,负责运行工作负载,即容器应用,组件有kubelet、kuber-proxy、容器引擎/容器运行时(docker、containerd)等。

三、Kurbernetes的核心组件

3.1 Master组件

在这里插入图片描述

3.1.1 Kube-apiserver

所有服务请求的统一访问入口

提供认证、授权、访问控制、API 注册和发现等机制,其中封装了核心对象的增删改查操作。

外部的客户端和内部的组件可以通过调用 REST API 接口的方式获取数据信息,这些数据信息都存储到了 Etcd 中。

3.1.2 Kube-controller-manager

负责执行各种控制器。

功能

1)作为控制管理器,负责管理K8s各种资源对象的控制器

2)通过apiserver监控整个K8s集群资源的状态,并确保集群始终处于预期的工作状态

常用控制器

控制器名称作用补充说明
Node Controller节点控制器负责在节点出现故障时发现和响应定期检查 Node 的健康状态,标识出失效的 Node
Replication Controller副本控制器保证Replication Controller 定义的副本数量与实际运行 Pod 的数量一致可以理解成确保集群中有且仅有N个Pod实例,N是RC中定义的Pod副本数量
Endpoints Controller端点控制器填充端点对象(即连接Services和Pods),负责监听Service和对应的Pod副本的变化端点是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道它的endpoint
Service Account & Token Controllers服务账户和令牌控制器为新的命名空间创建默认账户和API访问令
ResourceQuota Controller资源配额控制器确保指定的资源对象在任何时候都不会超量占用系统物理资源
Namespace Controller命名空间控制器管理namespace的声明周期定期清理无效的 Namespace,以及 Namespace 下的 API 对象,比如:Pod、Service、Secrte 等
Service Controller服务控制器属于K8S集群与外部的云平台之间的一个接口控制器

3.1.3 Kube-scheduler

功能

可视为资源调度器,负责集群中的Pod资源调度,通过调度算法(预选策略和优选策略)为要部署的Pod选择最适合的Node节点。

调度过程

在这里插入图片描述

预选策略(predicate)和 优选策略(priorities)

首先是过滤掉不满足条件的节点,这个过程称为预选(predicate)

然后对通过的节点按照优先级排序,这个是优选(priority)

最后从中选择优先级最高的节点。

如果中间任何一步骤有错误,就直接返回错误。

3.2 配置存储中心——etcd

在这里插入图片描述

可以看作K8s集群的数据库,是一种键值对存储结构的分布式数据库,负责存储K8s集群的所有重要信息只有apiserver有读写权限

Etcd 是高可用的键值存储系统,通过 Raft 一致性算法处理日志复制来保证强一致性。

Kubernetes 中的重要数据都持久化到 Etcd 中,所有架构中的各个组件都是无状态的。

3.3 Node组件

在这里插入图片描述

3.3.1 Kubelet

1)接收master的apiserver发来的请求,创建和管理Pod与容器,和容器引擎交换来实现容器的生命周期的管理 ;

2)收集node节点的资源信息和Pod的运行状态发送给apiserver。

3.3.2 Kube-Proxy

作为service资源的载体,实现对Pod的网络代理,负责维护Pod集群的网络规则和四层负载均衡工作。

3.3.3 容器引擎/容器运行时

用于运行容器。

Kubernetes Container Runtime,容器运行时,Node 是使用容器运行的节点,可以使用多种容器。

3.4 推荐的插件(补充知识)

  • CoreDNS:为整个集群提供 DNS 服务。
  • Ingress Controller:为服务提供外网入口。
  • Dashboard:提供 GUI(图形用户界面)。
  • Federation:提供跨可用区的集群。
  • Fluentd:日志收集。

四、Kurbernetes创建Pod资源的工作流程(重要)

在这里插入图片描述

1)用户通过客户端发送创建Pod的请求apiserver

2)Apiserver接收到请求后,会先把请求信息写入到etcd中保存,再找controller-manager根据请求信息中的资源预设模板创建Pod资源;

3)Controller-manager会通过apiserver找到scheduler,来调度新创建的Pod资源

4)Scheduler通过调度算法的预选策略及优选策略,筛选出最适合的Node节点进行调度

5) 再通过apiserver找到对应的node节点上的Kubelet创建和管理Pod

6)Kubelet会跟容器引擎交互来管理Pod和容器的生命周期

7)用户还可以通过apiserver在kube-proxy写入iptables/ipvs网络规则创建service资源实现对Pod集群的网络代理

五、Kubernetes核心概念之资源对象

5.1 Pod

Pod是K8s能够创建和管理的最小单位,一个Pod里可以包含一个或者多个容器应用,Pod里的容器之间共享网络、存储等资源
在这里插入图片描述

一个 Pod 里可以运行多个容器,又叫边车模式(SideCar)。

而在生产环境中一般都是单个容器或者具有强关联互补的多个容器组成一个 Pod。

同一个 Pod 之间的容器可以通过 localhost 互相访问,并且可以挂载 Pod 内所有的数据卷;

但是不同的 Pod 之间的容器不能用 localhost 访问,也不能挂载其他 Pod 的数据卷。

5.2 Pod控制器

Pod 控制器是 Pod 启动的一种模版,用来保证在K8S里启动的 Pod 应始终按照用户的预期运行(副本数、生命周期、健康状态检查等)。
在这里插入图片描述

Pod控制器功能
Deployment部署无状态应用,同时也负责管理replicaset(维持Pod副本数量符合预期数量)和Pod(容器化的应用进程)
Statefulset部署有状态服务/应用
Daemonset在所有的node节点上部署同一类型的Pod
Job一次性的部署短期任务的Pod(执行完任务后会自动退出的Pod)
Cronjob周期性的部署短期任务的Pod(执行完任务后会自动退出的Pod)

有状态和无状态服务的区别

从是否需要数据的实时存储数据同步来区分。

有状态服务
1)有实时的数据需要存储;

2)集群服务中,把某一台服务器抽离出去,过一段时间再加入到集群中,如果服务集群无法正常工作(相互之间需要数据同步)。

无状态服务
1)没有实时的数据需要存储;

2)集群服务中,把某一台服务器抽离出去,过一段时间再加入到集群中,如果服务集群还是正常工作(相互之间不用数据同步)。

5.3 Service

5.3.1 为什么要用到Service(服务)?

因为 Deployment 的 Pod 可能有多个,并且这些 Pod 所在的 Node 并不固定,因此无法使用固定的 IP 和端口去访问

Kubernetes 使用 Service 来解决此问题,一个 Service 对应一个应用,代表该应用提供的服务。

5.3.2 Service

在这里插入图片描述

在K8S集群内部,为通过标签选择器相关联的一组Pod提供一个统一的访问入口(clusterIP),只支持四层代理转发

虚拟IP只在集群内部有效

客户端通过cluster IP 来请求应用服务时,kube-proxy 会将请求转发给 Deployment 中的某个 Pod。

当 Pod 位置发生变化时,kube-proxy 能够及时感知到。

通过 kube-proxy 就解决了单个 Pod 服务的注册和发现问题,同时也实现了负载均衡。

5.4 Ingress

在这里插入图片描述

作为K8S集群外部接入层可自定义ingress规则根据用户请求的域名或URL请求路径转发给指定的service,支持七层代理转发

#举个例子
客户端请求 http://www.xxx.com:port  ---> Ingress ---> Service ---> Pod

六、Kubernetes核心概念之资源配置信息

apiVersion: group/version  ## api资源属于的组和版本,同一个组可以有多个版本       
kind:     ##  标记创建的资源类型,
##  k8s主要支持以下资源类别:Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob    
metadata: ## 元数据name:  ## 对像名称namespace:  ## 对象所属命名空间labels:    ##指定资源标签,标签是一种键值数据spec:    ## 定义目标资源的期望状态
status   ## 显示资源的当前状态,应该与spec 一致

6.1 apiversion

资源对象在K8S中使用的api接口版本

6.2 kind

资源对象的类型

6.3 metadata

资源对象的元数据信息,比如 name资源名称、annotation注释、namespace命名空间、label标签

6.3.1 label

标签,将一个键值对关联到某个资源对象,用于资源对象的分组查询和筛选

有效的标签值必须为63个字符或更少,并且必须为空或以字母数字字符([a-z0-9A-Z])开头和结尾,中间可以包含横杠(-)、下划线(_)、点(.)和字母或数字。

6.3.2 laber selector

标签选择器,用于查询和筛选拥有某个标签的资源对象

标签选择器目前有两种:基于等值关系(等于、不等于)和基于集合关系(属于、不属于、存在)。

6.3.3 annotation

注释,用于作资源对象的注释信息或在一些特殊的资源对象里用于作额外的功能特性配置

注释值没有字符长度限制。

6.3.4 name

资源名称,通常定义在 “资源” 的 “元数据” 信息里。

6.3.5 namespance

命名空间,在同一个命名空间中,同类型的资源对象的名称是唯一的

6.4 spec

资源对象的资源配置清单(配置属性),比如 副本数、镜像、数据卷、标签选择器

6.5 status

资源对象的当前运行状态信息

cornflowerblue’>注释,用于作资源对象的注释信息或在一些特殊的资源对象里用于作额外的功能特性配置。

注释值没有字符长度限制。

6.3.4 name

资源名称,通常定义在 “资源” 的 “元数据” 信息里。

6.3.5 namespance

命名空间,在同一个命名空间中,同类型的资源对象的名称是唯一的

6.4 spec

资源对象的资源配置清单(配置属性),比如 副本数、镜像、数据卷、标签选择器

6.5 status

资源对象的当前运行状态信息

相关文章:

【Kubernetes 基本概念】Kubernetes 的架构和核心概念

目录 一、Kurbernetes1.1 简介1.2 为什么要用K8s?1.3 K8s的特性 二、Kurbernetes集群架构与组件三、Kurbernetes的核心组件3.1 Master组件3.1.1 Kube-apiserver3.1.2 Kube-controller-manager3.1.3 Kube-scheduler 3.2 配置存储中心——etcd3.3 Node组件3.3.1 Kubelet3.3.2 Ku…...

Docker安装部署Elasticsearch+Kibana+IK分词器

Docker安装部署ElasticsearchKibanaIK分词器 Docker安装部署elasticsearch拉取镜像创建数据卷创建网络elasticsearch容器,启动! Docker安装部署Kibana拉取镜像Kibana容器,启动! 安装IK分词器安装方式一:直接从github上…...

PCL setCameraPosition 参数讲解

setCameraPosition 的原型如下void setCameraPosition (double pos_x, double pos_y, double pos_z,double view_x, double view_y, double view_z,double up_x, double up_y, double up_z, int viewport 0);pos_x pos_y pos_z为相机所在的位置view_x view_y view_z 是焦点所…...

有关YOLOV5在测试时,图片大小被调整的问题

执行detect.py文件,在运行栏中出现以下: detect: weightsyolov5s.pt, sourcedata\images, datadata\coco128.yaml, imgsz[640, 640], conf_thres0.25, iou_thres0.45, max_det1000, device, view_imgFalse, save_txtFalse, save_confFalse, save_cropFa…...

【机器学习】四、计算学习理论

1 基础知识 计算学习理论(computational learning theory):关于通过“计算”来进行“学习”的理论,即关于机器学习的理论基础,其目的是分析学习任务的困难本质,为学习算法体统理论保证,并根据结…...

spring解决后端显示时区的问题

spring解决后端显示时区的问题 出现的问题: 数据库中的数据: 解决方法 spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: Asia/Shanghai...

大模型冷思考:企业“可控”价值创造空间还有多少?

文 | 智能相对论 作者 | 叶远风 毫无疑问,大模型热潮正一浪高过一浪。 在发展进程上,从最开始的技术比拼到现在已开始全面强调商业价值变现,百度、科大讯飞等厂商都喊出类似“不能落地的大模型没有意义”等口号。 在模型类型上&#xff0…...

ctfshow-web入门37-52

include($c);表达式包含并运行指定文件。 使用data伪协议 ?cdata://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg 是<?php system(cat flag.php);?> base64加密 源代码查看得到flag 38 多禁用了ph…...

前端项目部署后,需要刷新页面才能看到更新内容

问题背景 前端项目部署更新后&#xff0c;通知业务验证&#xff0c;业务点击收藏的标签&#xff0c;打开网页后没有看到修改的内容&#xff0c;每次都需要手动刷新&#xff0c;用户体验非常不好。 问题原因&#xff1a;缓存未过期&#xff0c;浏览器直接读取本地缓存&#xf…...

android 13 write javaBean error at *** 错误

报错代码&#xff1a;红框处。 注意&#xff1a;android10 不会报错&#xff0c;运行正常。android13就报错 错误原因&#xff1a;对象中VerifyDownloadEntity&#xff0c;有个Bitmap成员变量 public class VerifyDownloadEntity {private Bitmap bitmap;private String cooki…...

Only fullscreen opaque activities can request orientation

出现Only fullscreen opaque activities can request orientation是谷歌爸爸在安卓8.0版本时为了支持全面屏&#xff0c;增加了一个限制&#xff1a;如果是透明的Activity&#xff0c;则不能固定它的方向&#xff0c;因为它的方向其实是依赖其父Activity的&#xff08;因为透明…...

前端实验(一)单页面应用的创建

实验目的 掌握使用vite创建vue3单页面程序命令熟悉所创建程序的组织结构熟悉单页面程序运行原理能够编写简单的单页面程序 实验内容 创建一个名为vue-demo的单页面程序编写简单的单页面程序页面运行单页面程序 实验步骤 使用vite创建单页面程序 创建项目名为目录vue-demo的…...

数字人小灿:始于火山语音,发于 B 端百业

火爆的数字人市场又有新消息来袭&#xff1a;火山语音的数字人小灿来了&#xff01; 数字人小灿首曝视频 今年以来&#xff0c;在生成式AI浪潮的助推下&#xff0c;大量企业争相布局数字人赛道。市场之所以如此火热&#xff0c;是因为AI数字人已被视为人工智能时代智能交互的入…...

蓝桥杯刷题

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; &#x1f449;&#x1f3fb;最大降雨量 原题链接&#xff1…...

Go Metrics SDK Tag 校验性能优化实践

背景 Metrics SDK 是与字节内场时序数据库 ByteTSD 配套的用户指标打点 SDK&#xff0c;在字节内数十万服务中集成&#xff0c;应用广泛&#xff0c;因此 SDK 的性能优化是个重要和持续性的话题。本文主要以 Go Metrics SDK 为例&#xff0c;讲述对打点 API 的 hot-path 优化的…...

二叉树问题——前/中/后/层遍历问题(递归与栈)

摘要 博文主要介绍二叉树的前/中/后/层遍历(递归与栈)方法 一、前/中/后/层遍历问题 144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历 102. 二叉树的层序遍历 103. 二叉树的锯齿形层序遍历 二、二叉树遍历递归解析 // 前序遍历递归LC144_二叉树的前…...

Vue3问题:如何实现级联菜单的数据懒加载?

前端功能问题系列文章&#xff0c;点击上方合集↑ 序言 大家好&#xff0c;我是大澈&#xff01; 本文约3100字&#xff0c;整篇阅读大约需要5分钟。 本文主要内容分三部分&#xff0c;第一部分是需求分析&#xff0c;第二部分是实现步骤&#xff0c;第三部分是问题详解。 …...

STM32-电源管理(实现低功耗)

电源管理 STM32 HAL库对电源管理提供了完善的函数和命令。 工作模式&#xff08;高功耗->低功耗&#xff09;&#xff1a;运行、睡眠、停止、待机。 若备份域电源正常供电&#xff0c;备份域内的RTC都可以正常运行&#xff0c;备份域内的寄存器的数据会被保存&#xff0c;不…...

vue 自己捣鼓周日程日历组件

需求:想要一个周日程表,记录每天的计划,点击可查看详情。可自定义时间段通过后台获取时间段显示 分析: 通过需求,超级课程表app这款软件其中课表和这个需求很像,只不过这个需求第一列的时间段是自定义的,不是上午下午两个,但是原理都差不多 原本想找一些第三方插件使…...

【力扣】2127. (分类讨论 + 拓扑排序)参加会议的最多员工数

【力扣】2127. &#xff08;分类讨论 拓扑排序&#xff09;参加会议的最多员工数 文章目录 【力扣】2127. &#xff08;分类讨论 拓扑排序&#xff09;参加会议的最多员工数1. 题目介绍2. 思路&#xff08;**分类讨论 拓扑排序**&#xff09;3. 解题代码4. Danger参考 1. 题…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...

FOPLP vs CoWoS

以下是 FOPLP&#xff08;Fan-out panel-level packaging 扇出型面板级封装&#xff09;与 CoWoS&#xff08;Chip on Wafer on Substrate&#xff09;两种先进封装技术的详细对比分析&#xff0c;涵盖技术原理、性能、成本、应用场景及市场趋势等维度&#xff1a; 一、技术原…...