附录

configuration-toml配置说明

附录 - 图1 说明:
configuration.toml配置文件中各个字段的取值以kata-containers-.rpm包中的configuration.toml文件为准,不支持用户对配置文件中的字段任意取值。

  1. [hypervisor.qemu]
  2. path :指定虚拟化qemu执行路径
  3. kernel :指定guest kernel执行路径
  4. initrd :指定guest initrd执行路径
  5. image :指定guest image执行路径(不适用)
  6. machine_type :指定模拟芯片类型,ARM架构为virtx86架构为pc
  7. kernel_params :指定guest内核运行参数
  8. firmware :指定固件路径,设空则使用默认固件
  9. machine_accelerators :指定加速器
  10. default_vcpus :指定每个SB/VM的默认vCPU数量
  11. default_maxvcpus :指定每个SB/VM的默认最大vCPU数量
  12. default_root_ports :指定每个SB/VM的默认Root Ports数量
  13. default_bridges :指定每个SB/VM的默认bridges数量
  14. default_memory :指定每个SB/VM的默认内存大小,默认为1024 MiB
  15. memory_slots :指定每个SB/VM的内存插槽数量,默认为10
  16. memory_offset :指定内存偏移量,默认为0
  17. disable_block_device_use :禁止将块设备用于容器的rootfs
  18. shared_fs :指定共享文件系统类型,默认为virtio-9p
  19. virtio_fs_daemon :指定vhost-user-fs守护进程路径
  20. virtio_fs_cache_size :指定DAX缓存的默认大小
  21. virtio_fs_cache :指定缓存模式
  22. block_device_driver :指定块设备驱动
  23. block_device_cache_set :指定块设备是否设置缓存相关选项,默认false
  24. block_device_cache_direct :指定是否使能O_DIRECT,默认false
  25. block_device_cache_noflush :指定是否忽略设备刷新请求,默认false
  26. enable_iothreads :使能iothreads
  27. enable_mem_prealloc :使能VM RAM预分配,默认false
  28. enable_hugepages :使能大页,默认false
  29. enable_swap :使能swap,默认false
  30. enable_debug :使能qemu debug,默认false
  31. disable_nesting_checks :关闭嵌套检查
  32. msize_9p = 8192 :指定每个9p包传输的字节数
  33. use_vsock :使用vsocksagent直接通信(前提支持vsocks),默认false
  34. hotplug_vfio_on_root_bus :使能vfio设备在root bus热插拔,默认false
  35. disable_vhost_net :关闭vhost_net,默认false
  36. entropy_source :指定默认熵源
  37. guest_hook_path :指定guest hook二进制路径
  38. [factory]
  39. enable_template :使能VM模板,默认false
  40. template_path :指定模板路径
  41. vm_cache_number :指定VMCache的缓存数量,默认0
  42. vm_cache_endpoint :指定VMCache使用的Unix socket的地址,默认/var/run/kata-containers/cache.sock
  43. [proxy.kata]
  44. path :指定kata-proxy运行路径
  45. enable_debug :使能proxy debug,默认false
  46. [shim.kata]
  47. path :指定kata-shim运行路径
  48. enable_debug :使能shim debug,默认false
  49. enable_tracing :使能shim opentracing
  50. [agent.kata]
  51. enable_debug :使能agent debug,默认false
  52. enable_tracing :使能agent tracing
  53. trace_mode :指定trace模式
  54. trace_type :指定trace类型
  55. enable_blk_mount :开启block设备guest挂载
  56. [netmon]
  57. enable_netmon :使能网络监控,默认false
  58. path :指定kata-netmon运行路径
  59. enable_debug :使能netmon debug,默认false
  60. [runtime]
  61. enable_debug :使能runtime debug,默认false
  62. enable_cpu_memory_hotplug :使能cpu和内存热插拔,默认false
  63. internetworking_model :指定VM和容器网络互联模式
  64. disable_guest_seccomp :关闭在guest应用seccemp安全机制,默认true
  65. enable_tracing :使能runtime opentracing,默认false
  66. disable_new_netns :不为shimhypervisor进程创建网络命名空间,默认false
  67. experimental :开启实验特性,不支持用户自定义配置

接口列表

表 1 kata-runtime网络相关的命令行接口

命令

子命令

文件示例

字段

含义

备注

kata-network

说明:
  • kata-network命令需成组使用。不经过kata-runtime kata-network添加的网络设备,无法使用kata-runtime kata-network删除或者列出。反之亦然。
  • kata-runtime kata-network通过文件或stdin传入配置参数。

add-iface

说明:
  • 一个interface只能添加到1个容器中。
  • 执行结果以返回值为准(非零返回值)。

  

{

“device”:”tap1”,

“name”:”eth1”,

“IPAddresses”:[{“address”:”172.17.1.10”,”mask”:”24”}],

“mtu”:1300,

“hwAddr”:”02:42:20:6f:a2:80”

“vhostUserSocket”:”/usr/local/var/run/openvswitch/vhost-user1”

}

  

device

设置网卡的主机端名称

必选。支持字母、数字、下划线“”、“-” 以及“.”字符,必须以字母开头,且长度不超过15。需要确保同一个宿主机上device不能重复。

name

设置网卡的容器内名称

必选。支持字母、数字、下划线“”、“-” 以及“.”字符,必须以字母开头,且长度不超过15。需要确保同一个Sandbox内name不能重复。

IPAddresses

设置网卡的IP地址

可选。

暂时支持一张网卡配置一个IP,如果不配置IP,则不会在容器内部配置IP。

mtu

设置网卡的mtu值

必选。

有效范围46~9600。

hwAddr

设置网卡的mac值

必选。

vhostUserSocket

设置dpdk轮循socket路径

可选。

路径最大长度128字节,命名规则支持数字、字母、“-”。必须以字母开头。

del-iface

{

“name”:”eth1”

}

删除容器内的一个网卡

说明:

删除网卡时,仅根据网卡容器内名称(name字段)来删除。即便填写其他字段,kata也不会使用。

list-ifaces

查询容器内的网卡列表

add-route

{

“dest”:”172.17.10.10/24”,

“gateway”:””,

“device”:”eth1”

}

dest

设置路由对应的网段

格式为<ip>/<mask>,<ip>必选。

分三种情况:

1. 配置<ip>/<mask>;

2. 只配置<ip>,则默认掩码为32;

3. 配置”dest”:”default”,默认无dest,需传入gateway。

gateway

设置路由的下一跳网关

设置”dest”:”default”时,gateway必选;其他情况可选。

device

设置路由对应的网卡名称

必选。

最长支持15字符。

del-route

{

“dest”:”172.17.10.10/24”

}

删除容器的路由规则

dest为必选,device/gateway均为可选。

说明:

kata根据不同字段进行模糊匹配,删除对应的路由规则。

list-routes

查询容器内的路由列表

表 2 kata-ipvs命令行接口

命令

子命令

字段

参数

子参数

含义

备注

kata-ipvs

ipvsadm

—parameters

-A, —add-service

-t, —tcp-service

-u, —udp-service

虚拟服务类型

必选项。—tcp-service、—udp-service,两个参数只能选择其一。格式为“ip:port”,port取值[1,65535]。

举例:

  1. kata-runtime kata-ipvs ipvsadm parameters “—add-service tcp-service 172.17.0.7:80 scheduler rr persistent 3000 <container-id>

-s, —scheduler

负载均衡调度算法

必选项。取值范围:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq。

-p, —persistent

持续服务时间

必选项。取值范围[1, 2678400],单位s。

-E, —edit-service

-t, —tcp-service

-u, —udp-service

虚拟服务类型

必选项。—tcp-service、—udp-service,两个参数只能选择其一。格式为“ip:port”,port取值[1,65535]。

-s, —scheduler

负载均衡调度算法

必选项。取值范围:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq

-p, —persistent

持续服务时间

必选项。取值范围[1, 2678400],单位s。

-D, —delete-service

-t, —tcp-service

-u, —udp-service

虚拟服务类型

必选项。—tcp-service、—udp-service,两个参数只能选择其一。格式为“ip:port”,port取值[1,65535]。

-a, —add-server

-t, —tcp-service

-u, —udp-service

虚拟服务类型

必选项。—tcp-service、—udp-service,两个参数只能选择其一。格式为“ip:port”,port取值[1,65535]。

举例:

  1. kata-runtime kata-ipvs ipvsadm parameters “—add-server tcp-service 172.17.0.7:80 real-server 172.17.0.4:80 weight 100 <container-id>

-r, —real-server

真实服务器地址

必选项。格式为“ip:port”,port取值[1,65535]。

-w, —weight

权重

可选项,取值[0,65535]。

-e, —edit-server

-t, —tcp-service

-u, —udp-service

虚拟服务类型

必选项。—tcp-service、—udp-service,两个参数只能选择其一。格式为“ip:port”,port取值[1,65535]。

-r, —real-server

真实服务器地址

必选项。格式为“ip:port”,port取值[1,65535]。

-w, —weight

权重

可选项,取值[0,65535]。

-d, —delete-server

-t, —tcp-service

-u, —udp-service

虚拟服务类型

必选项。—tcp-service、—udp-service,两个参数只能选择其一。格式为“ip:port”,port取值[1,65535]。

-r, —real-server

真实服务器地址

必选项。格式为“ip:port”,port取值[1,65535]。

-L, —list

-t, —tcp-service

-u, —udp-service

指定查询虚拟服务信息

可选项。

举例:

  1. kata-runtime kata-ipvs ipvsadm parameters “—list tcp-service ip:port <container-id>

—set

—tcp

tcp超时

必选项,取值[0, 1296000]。

举例:

  1. kata-runtime kata-ipvs ipvsadm parameters “—set 100 100 200 <container-id>

—tcpfin

tcpfin超时

必选项,取值[0, 1296000]。

—udp

udp超时

必选项,取值[0, 1296000]。

—restore

-

标准输入批量导入

可指定规则文件

举例:

  1. kata-runtime kata-ipvs ipvsadm restore - < <规则文件路径> <container-id>
说明:

单条添加时默认使用NAT模式,批量导入时添加真实服务器需手动添加-m参数使用NAT模式。

规则文件内容示例:

-A -t 10.10.11.12:100 -s rr -p 3000

-a -t 10.10.11.12:100 -r 172.16.0.1:80 -m

-a -t 10.10.11.12:100 -r 172.16.0.1:81 -m

-a -t 10.10.11.12:100 -r 172.16.0.1:82 -m

cleanup

—parameters

-d, —orig-dst

ip信息

必选项。

举例:

  1. kata-runtime kata-ipvs cleanup parameters “—orig-dst 172.17.0.4 protonum tcp <container-id>

-p, —protonum

协议类型

必选项,取值为tcp|udp 。