在 Kata Containers 中使用 SPDK
关于如何在 Kata Containers 中使用 SPDK,官方有一个使用说明,只是之前是基于 Docker 的,由于 Kata Containers 已经不直接支持 Docker(或者说反过来 Docker 不支持 Kata Containers),所以原来的文档需要更新,比如使用 ctr 来演示如何在 Kata Containers 中使用 SPDK 设备。
趁这次更新文档的机会,顺便记录了一些中间的具体过程,但是全部放到 原文档 中又有些冗余,所以在这里记录一下。
演示示例主要在于 ctr 需要自己准备 rootfs 和 OCI spec (config.json
)文档,这里我直接给出了相关脚本,直接使用即可。
首先确保你已经按照官方 使用说明 准备好了 SPDK 设备。
创建 rootfs
使用这个脚本即可,这会使用一个 busybox 镜像作为 rootfs。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
该脚本会使用 ctr 下载镜像,将镜像导出为 tar 文件,这时候 export 出来的还是 blob 格式,不能直接当做 rootfs 使用,需要再将每层解压缩,才能作为 rootfs 使用。
上面的脚本执行后,就可以在本地看到 rootfs 了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
准备 config.json 文件
将下面的 config.json
文件拷贝到 bundle 下即可,注意其中的 rootfs 要根据自己的实际情况修改。
将 SPDK 设备传递给 Kata Containers 是通过指定 devices
属性实现的。其中 major: 241
是 Kata Containers 约定的 vhost-user-blk 设备的编号,文件模式 420 即 8 进制的 644。
1 2 3 4 5 6 7 8 9 10 11 |
|
然后就可以启动 Kata Containers 容器了。
1 2 3 4 5 6 7 8 |
|
完整的 config.json
如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 |
|