如何使用grpcurl配合containerd.sock拉取镜像?

问题描述 投票:0回答:1

我找到了containerd的image.proto文件, https://github.com/containerd/containerd/blob/main/api/services/images/v1/images.proto#L90

我可以使用proto文件获取本地图像,

[root@master-18-86 ~]# ./grpcurl -d '{"name":"DaoCloud.redhat/registry.k8s.io/kube-apiserver:v1.27.5"}'  -plaintext -proto image.proto -rpc-header containerd-namespace:k8s.io -unix /run/containerd/containerd.sock containerd.services.images.v1.Images/Get
{
  "image": {
    "name": "DaoCloud.redhat/registry.k8s.io/kube-apiserver:v1.27.5",
    "labels": {
      "io.cri-containerd.image": "managed"
    },
    "target": {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "digest": "sha256:d7b036dcf284a11517256774c28d073d83617b65bdbbec35fafd29bb51872c7d",
      "size": "1960"
    },
    "createdAt": "2024-04-29T06:53:51.439354485Z",
    "updatedAt": "2024-04-29T06:53:51.447932784Z"
  }
}
[root@master-18-86 ~]#

但我不知道如何使用grpcurl工具通过proto文件下载图像,

[root@master-18-86 ~]# ./grpcurl -d '{"image":"DaoCloud.redhat/registry.k8s.io/kube-apiserver:v1.27.5"}'  -plaintext -proto image.proto -rpc-header containerd-namespace:k8s.io -unix /run/containerd/containerd.sock containerd.services.images.v1.Images/Create
Error invoking method "containerd.services.images.v1.Images/Create": error getting request data: bad input: expecting start of JSON object: '{' ; instead got DaoCloud.redhat/registry.k8s.io/kube-apiserver:v1.27.5

我添加了名字,

[root@master-18-86 ~]# ./grpcurl -d '{"image":{"name":"DaoCloud.redhat/registry.k8s.io/kube-apiserver:v1.27.5"}}'  -plaintext -proto image.proto -rpc-header containerd-namespace:k8s.io -unix /run/containerd/containerd.sock containerd.services.images.v1.Images/Create
ERROR:
  Code: Unavailable
  Message: error reading from server: EOF

我想通过proto pull进行镜像,有人可以帮我吗?

或者使用 api.proto 拉取?

image grpc containerd grpcurl
1个回答
0
投票
./grpcurl  -plaintext -d '{"image":{"image":"{image_name}"}}'   -proto api.proto -rpc-header containerd-namespace:k8s.io -unix /run/containerd/containerd.sock runtime.v1.ImageService/PullImage

这对我有用!

© www.soinside.com 2019 - 2024. All rights reserved.