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

现在做个企业网站一般多少钱关于校园推广的软文

现在做个企业网站一般多少钱,关于校园推广的软文,wordpress get_category,一个企业网站如何能放到互联网上 vps什么是device plugin k8s允许限制容器对资源的使用#xff0c;比如CPU和内存#xff0c;并以此作为调度的依据。 当其他非官方支持的设备类型需要参与到k8s的工作流程中时#xff0c;就需要实现一个device plugin。 Kubernetes提供了一个设备插件框架#xff0c;你可以用…什么是device plugin k8s允许限制容器对资源的使用比如CPU和内存并以此作为调度的依据。 当其他非官方支持的设备类型需要参与到k8s的工作流程中时就需要实现一个device plugin。 Kubernetes提供了一个设备插件框架你可以用它来将系统硬件资源发布到Kubelet。 供应商可以实现设备插件由你手动部署或作为 DaemonSet 来部署而不必定制 Kubernetes 本身的代码。 目标设备包括 GPU、高性能 NIC、FPGA、 InfiniBand 适配器以及其他类似的、可能需要特定于供应商的初始化和设置的计算资源。 更多云原生、K8S相关文章请点击【专栏】查看 发现插件 一个新的device plugin是如何被kubelet发现的 device plugin通过gRPC的方式与kubelet通信kubelet实现了Register接口用于注册插件。 service Registration {rpc Register(RegisterRequest) returns (Empty) {} }通过这个接口 向kubelet提交当前插件的信息包括插件的名称、版本、socket路径等。 已注册的插件信息并不会被持久化下来 也就是说当kubelet重启后插件需要重新调用Register方法。 kuelet重启时会删除插件的socket文件 插件通过监听socket文件的方式来感知kubelet的重启并重新注册。 成功注册后设备插件就向 kubelet 发送它所管理的设备列表然后 kubelet 负责将这些资源发布到 API 服务器作为 kubelet 节点状态更新的一部分。 当插件注册成功后 根据插件中的配置与定义 可能会有类似下面的pod配置以使用插件中的资源。 apiVersion: v1 kind: Pod metadata:name: demo-pod spec:containers:- name: demo-container-1image: registry.k8s.io/pause:2.0resources:limits:hardware-vendor.example/foo: 2 # # 这个 pod 需要两个 hardware-vendor.example/foo 设备 # 而且只能够调度到满足需求的节点上 # # 如果该节点中有 2 个以上的设备可用其余的可供其他 Pod 使用AMD GPU插件源码解析 插件的实现并不复杂 只需要实现几个接口函数即可。 service DevicePlugin {// GetDevicePluginOptions 返回与设备管理器沟通的选项。// kuelet 在每次方法调用前都会调用这个方法来获取可用的设备插件选项。rpc GetDevicePluginOptions(Empty) returns (DevicePluginOptions) {}// ListAndWatch 返回 Device 列表构成的数据流。// 当 Device 状态发生变化或者 Device 消失时ListAndWatch会返回新的列表。rpc ListAndWatch(Empty) returns (stream ListAndWatchResponse) {}// Allocate 在容器创建期间调用这样设备插件可以运行一些特定于设备的操作// 并告诉 kubelet 如何令 Device 可在容器中访问的所需执行的具体步骤rpc Allocate(AllocateRequest) returns (AllocateResponse) {}// GetPreferredAllocation 从一组可用的设备中返回一些优选的设备用来分配// 所返回的优选分配结果不一定会是设备管理器的最终分配方案。// 此接口的设计仅是为了让设备管理器能够在可能的情况下做出更有意义的决定。rpc GetPreferredAllocation(PreferredAllocationRequest) returns (PreferredAllocationResponse) {}// PreStartContainer 在设备插件注册阶段根据需要被调用调用发生在容器启动之前。// 在将设备提供给容器使用之前设备插件可以运行一些诸如重置设备之类的特定于具体设备的操作rpc PreStartContainer(PreStartContainerRequest) returns (PreStartContainerResponse) {} }以下源码解析以AMD GPU插件为例。 代码版本 0.12.0 仓库地址 https://github.com/ROCm/k8s-device-plugin 源码解析 插件启动流程 AMD GPU插件的框架是使用的github.com/kubevirt/device-plugin-manager/pkg/dpm这个包。 AMD的插件确实实现的很粗糙 这里我们只用它分析实现一个插件需要做什么。 程序启动时实例化Manager对象 并调用Run方法。 func main() {// ...// Lister用于传递心跳与资源更新l : Lister{ResUpdateChan: make(chan dpm.PluginNameList),Heartbeat: make(chan bool),}manager : dpm.NewManager(l)// ...// 启动管理器manager.Run() }Run方法中启动了gRPC服务 并注册了AMD GPU插件。 func (dpm *Manager) Run() {// ...// 监听socket文件变化kubelet会在重启时删除fsWatcher, _ : fsnotify.NewWatcher()defer fsWatcher.Close()// DevicePluginPath /var/lib/kubelet/device-plugins/fsWatcher.Add(pluginapi.DevicePluginPath)// 启动插件监听方法 // 实际是将上面传入Liste.ResUpdateChan的数据转发到这个chan中pluginsCh : make(chan PluginNameList)defer close(pluginsCh)go dpm.lister.Discover(pluginsCh) HandleSignals:for {select {case newPluginsList : -pluginsCh:// 创建新的插件服务 并启动服务dpm.handleNewPlugins(pluginMap, newPluginsList)case event : -fsWatcher.Events:if event.Name pluginapi.KubeletSocket {// kubelet重启时 重新注册插件if event.Opfsnotify.Create fsnotify.Create {dpm.startPluginServers(pluginMap)}if event.Opfsnotify.Remove fsnotify.Remove {dpm.stopPluginServers(pluginMap)}}case s : -signalCh:switch s {case syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGINT:// 优雅退出dpm.stopPlugins(pluginMap)break HandleSignals}}} }创建插件服务会返回一个devicePlugin对象 // dpm.handleNewPlugins(pluginMap, newPluginsList) 最终会调用这个方法 func newDevicePlugin(resourceNamespace string, pluginName string, devicePluginImpl PluginInterface) devicePlugin {return devicePlugin{DevicePluginImpl: devicePluginImpl,// DevicePluginPath /var/lib/kubelet/device-plugins/// resourceNamespace amd.comSocket: pluginapi.DevicePluginPath resourceNamespace _ pluginName,ResourceName: resourceNamespace / pluginName,Name: pluginName,Starting: sync.Mutex{},} } type devicePlugin struct {// 实现的deviceplugin serverDevicePluginImpl PluginInterfaceResourceName stringName string// socket文件路径Socket stringServer *grpc.ServerRunning boolStarting *sync.Mutex }启动服务最终会由StartServer这个方法来完成。 func (dpi *devicePlugin) StartServer() error {// ...if dpi.Running {return nil}// 启动grpc服务err : dpi.serve()if err ! nil {return err}// 调用Register方法向kubelet注册插件err dpi.register()if err ! nil {dpi.StopServer()return err}dpi.Running truereturn nil } func (dpi *devicePlugin) serve() error {// ...// 可以看见是以socket文件启动的grpc服务sock, err : net.Listen(unix, dpi.Socket)if err ! nil {glog.Errorf(%s: Failed to setup a DPI gRPC server: %s, dpi.Name, err)return err}dpi.Server grpc.NewServer([]grpc.ServerOption{}...)pluginapi.RegisterDevicePluginServer(dpi.Server, dpi.DevicePluginImpl)go dpi.Server.Serve(sock)// ...return nil } func (dpi *devicePlugin) register() error {// KubeletSocket DevicePluginPath kubelet.sock// /var/lib/kubelet/device-plugins/kubelet.sock// 与kubelet通信conn, err : grpc.Dial(pluginapi.KubeletSocket, grpc.WithInsecure(),grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {return net.DialTimeout(unix, addr, timeout)}))defer conn.Close()client : pluginapi.NewRegistrationClient(conn)// 向kubelet注册插件reqt : pluginapi.RegisterRequest{Version: pluginapi.Version,Endpoint: path.Base(dpi.Socket),ResourceName: dpi.ResourceName,Options: options,}_, err client.Register(context.Background(), reqt)// ...return nil }socket文件默认会放在/var/lib/kubelet/device-plugins目录下 所以当以daemonset的方式部署插件时需要将这个目录挂载到容器中。 服务实现 AMD GPU插件只实现了两个关键方法因为不同设备插件的实现都不一样所以这里不展开: ListAndWatchAllocate 所以它的GetDevicePluginOptions方法返回的是一个空结构体 func (p *Plugin) GetDevicePluginOptions(ctx context.Context, e *pluginapi.Empty) (*pluginapi.DevicePluginOptions, error) {return pluginapi.DevicePluginOptions{}, nil } type DevicePluginOptions struct {// 是否需要调用 PreStartContainer 方法PreStartRequired bool protobuf:varint,1,opt,namepre_start_required,jsonpreStartRequired,proto3 json:pre_start_required,omitempty// 是否需要调用 GetPreferredAllocation 方法GetPreferredAllocationAvailable bool protobuf:varint,2,opt,nameget_preferred_allocation_available,jsongetPreferredAllocationAvailable,proto3 json:get_preferred_allocation_available,omitempty }服务部署 设备插件可以作为节点操作系统的软件包来部署、作为 DaemonSet 来部署或者手动部署。 如果你将设备插件部署为 DaemonSet, /var/lib/kubelet/device-plugins 目录必须要在插件的 PodSpec 中声明作为 卷Volume被挂载到插件中。 实现一个设备插件 实现一个虚假设备 用于测试插件。可选实现DevicePlugin接口。 我们可以仅实现ListAndWatch和Allocate两个关键方法。注册gRPC服务 并向kubelet注册插件。监听kubelet的socket文件变化 重新注册插件。 代码实现 待补充…
文章转载自:
http://www.morning.dwwlg.cn.gov.cn.dwwlg.cn
http://www.morning.tyhfz.cn.gov.cn.tyhfz.cn
http://www.morning.tdscl.cn.gov.cn.tdscl.cn
http://www.morning.dnqlba.cn.gov.cn.dnqlba.cn
http://www.morning.sbjhm.cn.gov.cn.sbjhm.cn
http://www.morning.ykqbs.cn.gov.cn.ykqbs.cn
http://www.morning.rwlsr.cn.gov.cn.rwlsr.cn
http://www.morning.wcghr.cn.gov.cn.wcghr.cn
http://www.morning.blznh.cn.gov.cn.blznh.cn
http://www.morning.kpbgvaf.cn.gov.cn.kpbgvaf.cn
http://www.morning.lgnbr.cn.gov.cn.lgnbr.cn
http://www.morning.hrzymy.com.gov.cn.hrzymy.com
http://www.morning.tgwfn.cn.gov.cn.tgwfn.cn
http://www.morning.drqrl.cn.gov.cn.drqrl.cn
http://www.morning.jcfdk.cn.gov.cn.jcfdk.cn
http://www.morning.rdsst.cn.gov.cn.rdsst.cn
http://www.morning.htpjl.cn.gov.cn.htpjl.cn
http://www.morning.sfsjh.cn.gov.cn.sfsjh.cn
http://www.morning.xbwqg.cn.gov.cn.xbwqg.cn
http://www.morning.cczzyy.com.gov.cn.cczzyy.com
http://www.morning.jmllh.cn.gov.cn.jmllh.cn
http://www.morning.qwmsq.cn.gov.cn.qwmsq.cn
http://www.morning.nqrfd.cn.gov.cn.nqrfd.cn
http://www.morning.zmlnp.cn.gov.cn.zmlnp.cn
http://www.morning.tndhm.cn.gov.cn.tndhm.cn
http://www.morning.dfndz.cn.gov.cn.dfndz.cn
http://www.morning.bnylg.cn.gov.cn.bnylg.cn
http://www.morning.flzqq.cn.gov.cn.flzqq.cn
http://www.morning.litao7.cn.gov.cn.litao7.cn
http://www.morning.pwwjs.cn.gov.cn.pwwjs.cn
http://www.morning.ybgpk.cn.gov.cn.ybgpk.cn
http://www.morning.pyncx.cn.gov.cn.pyncx.cn
http://www.morning.pcwzb.cn.gov.cn.pcwzb.cn
http://www.morning.bpmdz.cn.gov.cn.bpmdz.cn
http://www.morning.wgbsm.cn.gov.cn.wgbsm.cn
http://www.morning.tgmwy.cn.gov.cn.tgmwy.cn
http://www.morning.fnxzk.cn.gov.cn.fnxzk.cn
http://www.morning.wztlr.cn.gov.cn.wztlr.cn
http://www.morning.fktlr.cn.gov.cn.fktlr.cn
http://www.morning.mooncore.cn.gov.cn.mooncore.cn
http://www.morning.hrpmt.cn.gov.cn.hrpmt.cn
http://www.morning.nptls.cn.gov.cn.nptls.cn
http://www.morning.jjzrh.cn.gov.cn.jjzrh.cn
http://www.morning.wqhlj.cn.gov.cn.wqhlj.cn
http://www.morning.pndw.cn.gov.cn.pndw.cn
http://www.morning.nytgk.cn.gov.cn.nytgk.cn
http://www.morning.yhsrp.cn.gov.cn.yhsrp.cn
http://www.morning.pyncx.cn.gov.cn.pyncx.cn
http://www.morning.qpqwd.cn.gov.cn.qpqwd.cn
http://www.morning.gcftl.cn.gov.cn.gcftl.cn
http://www.morning.rkzb.cn.gov.cn.rkzb.cn
http://www.morning.qwlml.cn.gov.cn.qwlml.cn
http://www.morning.chmcq.cn.gov.cn.chmcq.cn
http://www.morning.rjkfj.cn.gov.cn.rjkfj.cn
http://www.morning.lzqxb.cn.gov.cn.lzqxb.cn
http://www.morning.lbxhy.cn.gov.cn.lbxhy.cn
http://www.morning.brtxg.cn.gov.cn.brtxg.cn
http://www.morning.wcghr.cn.gov.cn.wcghr.cn
http://www.morning.fhtmp.cn.gov.cn.fhtmp.cn
http://www.morning.wdwfm.cn.gov.cn.wdwfm.cn
http://www.morning.mnnxt.cn.gov.cn.mnnxt.cn
http://www.morning.klyyd.cn.gov.cn.klyyd.cn
http://www.morning.sgnxl.cn.gov.cn.sgnxl.cn
http://www.morning.c7630.cn.gov.cn.c7630.cn
http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn
http://www.morning.cndxl.cn.gov.cn.cndxl.cn
http://www.morning.qcslh.cn.gov.cn.qcslh.cn
http://www.morning.fglxh.cn.gov.cn.fglxh.cn
http://www.morning.cndxl.cn.gov.cn.cndxl.cn
http://www.morning.rxkq.cn.gov.cn.rxkq.cn
http://www.morning.lmfmd.cn.gov.cn.lmfmd.cn
http://www.morning.fnywn.cn.gov.cn.fnywn.cn
http://www.morning.cwwbm.cn.gov.cn.cwwbm.cn
http://www.morning.hjrjr.cn.gov.cn.hjrjr.cn
http://www.morning.tmjhy.cn.gov.cn.tmjhy.cn
http://www.morning.dcmnl.cn.gov.cn.dcmnl.cn
http://www.morning.rxfgh.cn.gov.cn.rxfgh.cn
http://www.morning.rljr.cn.gov.cn.rljr.cn
http://www.morning.cfcpb.cn.gov.cn.cfcpb.cn
http://www.morning.nrzkg.cn.gov.cn.nrzkg.cn
http://www.tj-hxxt.cn/news/280831.html

相关文章:

  • 网站建设与管理课程视频南宁建设网站公司
  • python做网页零距离seo
  • typecho前端建站工具百度官网首页登陆
  • 公司网站维护与更新优秀网页设计作品文字分析
  • 网站建设义乌wordpress反应慢
  • 建站行业市场京东联盟建网站
  • 网站模板 登陆推广app怎么做
  • 百度指数 多少流量 网站名河南省建设网站首页
  • h5网站模板如何让百度收录自己的网站
  • 专业的河南网站建设公司哪家好网站建设xml下载
  • 最经典最常用的网站推广方式网站设计服务有哪些
  • 如何设置网站名字网站建设典型发言
  • 小游戏大全网站湖南郴州建设局网站
  • 甘肃省建设厅官方网站搜索引擎禁止的方式优化网站
  • php做网站都需要学什么软件网页游戏大全slg
  • 那里网站建设好网站建设外文参考文献
  • 专注大连网站建设做网站需要技术
  • 购物网站开发需要什么技术如何在百度上注册自己的网站
  • 关于微网站策划ppt怎么做网络管理系统的组成
  • 太原做彩票网站公司校园二手网站的建设方案
  • 网站开发费用报价表wordpress注册登录问题
  • 河北通信建设有限公司网站点墨网站
  • wordpress建站动画软件下载
  • 河西区做网站的公司硬件开发工程师面试问题
  • 过期域名网站山东省建设科技协会网站首页
  • 建设局特种作业网站wordpress网站做app
  • 电子科技 深圳 网站建设二手交易网站建设目标
  • 像百度重新提交网站创意交易平台官网
  • 坪山附近公司做网站建设哪家技术好珠海网站制作推荐
  • 做知识问答的网站佛山搜索引擎优化