CRI为k8s提供的kubelet扩展接口,用来支持多种容器运行时。CRI协议为protobuf格式,kubelet作为客户端,容器运行时作为服务端,两者通过gRpc协议通讯。下面主要解读 CRI的协议定义
spec解读
RuntimeService
包括了Pod和容器相关的操作。
Pod相关的操作包括:
- 启:RunPodSandbox
- 停:StopPodSandbox
- 删:RemovePodSandbox
- 查:PodSandboxStatus、ListPodSandbox、ListPodSandboxStats、PodSandboxStats
容器相关的操作:
- 增、启:CreateContainer、StartContainer
- 停:StopContainer
- 删:RemoveContainer
- 查:ListContainers、ContainerStatus、
- 改:UpdateContainerResources
- 控:ReopenContainerLog、ExecSync、Exec、Attach、PortForward
1 | // Runtime service defines the public APIs for remote container runtimes |
ImageService
跟镜像相关的操作,包括了
- 增:PullImage
- 查:ListImages、ImageStatus和ImageFsInfo
- 删:RemoveImage
1 | // ImageService defines the public APIs for managing images. |