kubelet源码阅读(三)——kubelet调用device plugin的allocate接口

news/2025/9/30 9:22:24/文章来源:https://www.cnblogs.com/xiaoxiongfei/p/19119971
kubernetes-master/pkg/kubelet/cm/devicemanager/endpoint.go
入参
  devs是设备ID
响应
  AllocateResponse包含了需要注入到容器中的工作件(envs环境变量、mounts挂在信息、devices设备信息、annotations注解信息、cdidevice名称),以便容器能访问到AllocateRequest中deviceIDs。
失败处理
  如果kubelet发送了对dev1和dev2的分配请求。dev1 的分配成功,但 dev2 的分配失败。设备插件应发送 ListAndWatch 更新并使分配请求失败。
 1 // allocate issues Allocate gRPC call to the device plugin.
 2 func (e *endpointImpl) allocate(devs []string) (*pluginapi.AllocateResponse, error) {
 3     if e.isStopped() {
 4         return nil, fmt.Errorf(errEndpointStopped, e)
 5     }
 6     return e.api.Allocate(context.Background(), &pluginapi.AllocateRequest{
 7         ContainerRequests: []*pluginapi.ContainerAllocateRequest{
 8             {DevicesIDs: devs},
 9         },
10     })
11 }
 
 1 // AllocateResponse includes the artifacts that needs to be injected into
 2 // a container for accessing 'deviceIDs' that were mentioned as part of
 3 // 'AllocateRequest'.
 4 // Failure Handling:
 5 // if Kubelet sends an allocation request for dev1 and dev2.
 6 // Allocation on dev1 succeeds but allocation on dev2 fails.
 7 // The Device plugin should send a ListAndWatch update and fail the
 8 // Allocation request
 9 type AllocateResponse struct {
10     ContainerResponses   []*ContainerAllocateResponse `protobuf:"bytes,1,rep,name=container_responses,json=containerResponses,proto3" json:"container_responses,omitempty"`
11     XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
12     XXX_sizecache        int32                        `json:"-"`
13 }
14 
15 
16 type ContainerAllocateResponse struct {
17     // List of environment variable to be set in the container to access one of more devices.
18     Envs map[string]string `protobuf:"bytes,1,rep,name=envs,proto3" json:"envs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
19     // Mounts for the container.
20     Mounts []*Mount `protobuf:"bytes,2,rep,name=mounts,proto3" json:"mounts,omitempty"`
21     // Devices for the container.
22     Devices []*DeviceSpec `protobuf:"bytes,3,rep,name=devices,proto3" json:"devices,omitempty"`
23     // Container annotations to pass to the container runtime
24     Annotations map[string]string `protobuf:"bytes,4,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
25     // CDI devices for the container.
26     CDIDevices           []*CDIDevice `protobuf:"bytes,5,rep,name=cdi_devices,json=cdiDevices,proto3" json:"cdi_devices,omitempty"`
27     XXX_NoUnkeyedLiteral struct{}     `json:"-"`
28     XXX_sizecache        int32        `json:"-"`
29 }

 

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

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

相关文章

建网站做cpa小影wordpress主题

F1 显示当前程序或者windows的帮助内容。 F2 当你选中一个文件的话,这意味着“重命名” F3 当你在桌面上的时候是打开“查找:所有文件” 对话框 F10或ALT 激活当前程序的菜单栏 windows键或CTRLESC 打开开始菜单 CTRLALTDELETE 在win9x中打开关闭程序对话…

NAFNet (Simple Baselines for Image Restoration) 阅读笔记 - 教程

NAFNet (Simple Baselines for Image Restoration) 阅读笔记 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…

有关网站建设的文章京东电子商务网站建设

原理 最小二乘法由勒让德(A.M.Legendre)于1805年在其著作《计算彗星轨道的新方法》中提出,主要思想是最小化误差二次方和寻找数据的最佳匹配函数,利用最小二乘法求解未知参数,使得理论值与观测值之差(即误差,或称为残差)的二次方和达到最小,即: E = ∑ i = 1 n ϵ …

海口的网站建设公司创新的盐城网站开发

引言:编写批处理程序,实现批量删除当前目录及子目录下的空文件夹。 一、新建Windows批处理文件 参考博客: CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件,点击【编辑…

解决OpenWrt系统上出现“git: remote-https is not a git command...”的问题

在OpenWrt上安装git软件包后,执行git clone命令时,出现了下面的报错: git: remote-https is not a git command. See git --help. fatal: remote helper https aborted session 通过AI工具进行,发现原来是没有安装…

密码技术概论

View Post密码技术概论密码技术概论 一、 时代背景:从信息化到智能化技术发展路径:信息化 → 数字化 → 网络化 → 智能化。 核心驱动力:万物互联(IoT)的开启,将一切连接入网。 数字时代特征:数字化:将物理世界…

临猗商城网站建设平台wordpress vantage

shell,perl,python的区别 2012-03-18 10:48:42| 分类: 默认分类 | 标签: |字号大中小 订阅 shellsedawk三者中功能最弱,没有调试程序,大多数操作必须通过运行其他程序才能执行,所以需要更多时间、内存并在进程表中…

国内搜索引擎网站wordpress类似于知更鸟的中文主题

1.我们先创建一个空的大文件夹 2.打开该文件夹的终端 输入npm init -y 2.1.打开该文件夹的终端 2.2在该终端运行 npm init -y 3.安装webpack 3.1打开webpack网址 点击“中文文档” 3.2点击“指南”在点击“起步” 3.3复制基本安装图片画线的代码 4.在一开始的文件夹下在创建一…

合肥建设局网站官网四川全美网络科技有限公司

什么是Istio? 在现代软件开发中,微服务架构已经成为构建可扩展、灵活系统的首选方法。然而,随着微服务数量的增加,服务间的通信、监控和管理变得越来越复杂。为了解决这些问题,服务网格(Service Mesh&…

麒麟网站建设wordpress打开文章很慢

游戏开发基础part3--Paint 画笔 Paint画笔是绘图的辅助类,一般它是作为画布的参数来实现相应的效果,Paint类中包含文字与位图的样式、颜色等属性信息。Paint的常用方法如下: 1.setAntiAlias(boolean aa) 作用:设置画笔是否无锯齿 …

网站建设厃金手指花总十一网络营销策划方案的目的

文章目录 1、 新建应用时选择与自己真机匹配的sdk版本2、 根据报错提示连接打开处理方案3、查询真机版本对应的**compileSdkVersion** 和 **compatibleSdkVersion** 提示3.1版本之后和3.1版本之前的不同命令(此处为3.0版本)4、根据查询修改参数5、连接成…

wap网站开发价钱外包开发一个app多少钱

PLC作为下位机,接收上位机的执行命令,并将执行结果反馈给上位机。工具/原料电脑、PLC、USB转RS232数据线和RS232转RS485模块(或者USB转RS485)方法/步骤PLC与电脑线路连接,根据电脑的串口情况,1.电脑自带RS232串口,那么…

IntelliJ IDEA 中 Shared Build Process Heap Size 的重要性与配置

IntelliJ IDEA 中 Shared Build Process Heap Size 的重要性与配置Posted on 2025-09-30 08:45 且行且思 阅读(0) 评论(0) 收藏 举报共享构建进程堆大小(Shared Build Process Heap Size)是IntelliJ IDEA中用于…

专业网站设计怎么做做古代风格头像的网站

转载自 你真的了解Java中的三目运算符吗三目运算符是我们经常在代码中使用的,a (bnull?0:1);这样一行代码可以代替一个if-else,可以使代码变得清爽易读。但是,三目运算符也是有一定的语言规范的。在运用不恰当的时候会导致意想不到的问题。本文就介绍一…

建设一个商城网站要多少钱seo综合查询怎么关闭

文章目录 2. docker常用命令2.1 参数说明(tomcat案例)2.2 基本命令2.3 高级命令2.4 其他 2. docker常用命令 2.1 参数说明(tomcat案例) 注意如果分成多行,\后面不能有空格 # 拉取运行 docker run \ -d \ -p 8080:8080 \ --privilegedtrue \ --restartalways \ -m…

衡阳电商网站建设手机网站的内容模块

一:引言: 图像和视频理解是计算机视觉应用中的基本问题,旨在使机器能够像人类一样解释和理解视觉数据。这些问题涉及识别图像和视频中的对象、人物、动作、事件和场景。如图1.1-(a)所示的图像识别任务包括对象检测[1]…

企业数字化转型战略规划:从愿景到落地的完整路径

企业数字化转型战略规划:从愿景到落地的完整路径 在数字经济浪潮席卷全球的今天,数字化转型已不再是企业的“选择题”,而是关乎生存与发展的“必答题”。然而,现实却颇为严峻:据麦肯锡等咨询公司的调查显示,超过…

贝叶斯学习笔记 - 详解

贝叶斯学习笔记 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

设计模式-结构性设计模式(针对类与对象的组织结构) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …