首页 > 其他分享 >containerd和shim通信

containerd和shim通信

时间:2022-11-05 14:01:18浏览次数:94  
标签:google shim containerd returns 通信 rpc Empty

containerd-shim-runc-v2 启动了一个ttrpc server(类似grpc)

containerd 通过 ttrpc和containerd-shim-runc-v2  通信来管理容器

service Task {
	rpc State(StateRequest) returns (StateResponse);
	rpc Create(CreateTaskRequest) returns (CreateTaskResponse);
	rpc Start(StartRequest) returns (StartResponse);
	rpc Delete(DeleteRequest) returns (DeleteResponse);
	rpc Pids(PidsRequest) returns (PidsResponse);
	rpc Pause(PauseRequest) returns (google.protobuf.Empty);
	rpc Resume(ResumeRequest) returns (google.protobuf.Empty);
	rpc Checkpoint(CheckpointTaskRequest) returns (google.protobuf.Empty);
	rpc Kill(KillRequest) returns (google.protobuf.Empty);
	rpc Exec(ExecProcessRequest) returns (google.protobuf.Empty);
	rpc ResizePty(ResizePtyRequest) returns (google.protobuf.Empty);
	rpc CloseIO(CloseIORequest) returns (google.protobuf.Empty);
	rpc Update(UpdateTaskRequest) returns (google.protobuf.Empty);
	rpc Wait(WaitRequest) returns (WaitResponse);
	rpc Stats(StatsRequest) returns (StatsResponse);
	rpc Connect(ConnectRequest) returns (ConnectResponse);
	rpc Shutdown(ShutdownRequest) returns (google.protobuf.Empty);
}

  

containerd-shim-runc-v2 通过调用 containerd 的api把事件进行上报

root@nmx-NUC8i5BEH:/home/nmx/containerd# containerd-shim-runc-v2  --help
Usage of containerd-shim-runc-v2:
  -address string
    	grpc address back to main containerd
  -bundle string
    	path to the bundle if not workdir
  -debug
    	enable debug output in logs
  -id string
    	id of the task
  -namespace string
    	namespace that owns the shim
  -publish-binary string
    	path to publish binary (used for publishing events) (default "containerd")
  -socket string
    	socket path to serve
  -v	show the shim version and exit

 调用publish进行上报

events.Publish(ctx, runtime.TaskDeleteEventTopic, &eventstypes.TaskDelete{
        ContainerID: id,
        Pid:         pid,
        ExitStatus:  exitStatus,
        ExitedAt:    exitedAt,
    })

 

标签:google,shim,containerd,returns,通信,rpc,Empty
From: https://www.cnblogs.com/rincloud/p/16860058.html

相关文章

  • vue3使用mitt 实现组件之间通信 (不限制组件之间关系)
    安装mittyarnadd-savemittnpminstallmitt创建miit示例mitt.tsimportmittfrom'mitt'exportdefaultmitt()组件A中引入mitt并使用emit发送数......
  • Android实现UDP通信
    TCP和UDP的不同上次我们讲的是TCP的socket,他们之间的不同在于,tcp要等待客户端的接入,然后获得客户端socket然后进行IO操作,udp直接传送数据即可  图片来源:面试官:说说U......
  • 进程间通信
    进程通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)......
  • vue组件通信6种方式总结(常问知识点)
    前言在Vue组件库开发过程中,Vue组件之间的通信一直是一个重要的话题,虽然官方推出的Vuex状态管理方案可以很好的解决组件之间的通信问题,但是在组件库内部使用Vuex往往会......
  • vue组件通信方式有哪些?
    vue组件通信方式一、props(父向子传值----自定义属性)/$emit(子向父传值-----自定义事件)父组件通过props的方式向子组件传递数据,而通过$emit子组件可以向父组件通信......
  • React组件之间的通信方式总结(上)
    先来几个术语:官方我的说法对应代码ReactelementReact元素letelement=<span>A爆了</span>Component组件classAppextendsReact.Component{}无Ap......
  • React组件之间的通信方式总结(下)
    一、写一个时钟用react写一个每秒都可以更新一次的时钟importReactfrom'react'importReactDOMfrom'react-dom'functiontick(){letele=<h1>{ne......
  • [架构之路-54]:目标系统 - 系统软件 - Linux下的网络通信-9-ADSL、VDSL、PPPOE
    目录​​第1章xDSL技术​​​​1.1ADSL概述​​​​1.2 ADSL三通道​​​​1.3ADSL2+​​​​1.4 ADSL网络​​​​1.5VDSL​​​​第2章 各种物理层技术比较​​......
  • Python中使用pyserial实现串口通信
    简介pyserial是基于Python实现的,用于操作串口的第三方库,它支持Windows、Linux、OSX、BSD等多个平台。本文主要讲解在Windows环境下使用pyserial来实现串口通信的基本方......
  • 驱动开发:内核封装TDI网络通信接口
    在上一篇文章《驱动开发:内核封装WSK网络通信接口》中,LyShark已经带大家看过了如何通过WSK接口实现套接字通信,但WSK实现的通信是内核与内核模块之间的,而如果需要内核与应用层......