Menu

目录

部署方式

轻量级容器引擎(iSulad)服务端daemon为lcrd,lcrd可以通过配置文件进行配置,也可以通过命令行的方式进行配置,例如:lcrd –xxx,优先级从高到低是:命令行方式>配置文件>代码中默认配置。

说明:
如果采用systemd管理iSulad进程,修改/etc/sysconfig/iSulad文件中的OPTIONS字段,等同于命令行方式进行配置。

  • 命令行方式

在启动服务的时候,直接通过命令行进行配置。其配置选项可通过以下命令查阅:

$ lcrd --help
lightweight container runtime daemon

Usage:  lcrd [global options]

GLOBAL OPTIONS:

      --authorization-plugin            Use authorization plugin
      --cgroup-parent                   Set parent cgroup for all containers
      --cni-bin-dir                     The full path of the directory in which to search for CNI plugin binaries. Default: /opt/cni/bin
      --cni-conf-dir                    The full path of the directory in which to search for CNI config files. Default: /etc/cni/net.d
      --default-ulimit                  Default ulimits for containers (default [])
  -e, --engine                          Select backend engine
  -g, --graph                           Root directory of the LCRD runtime
  -G, --group                           Group for the unix socket(default is lcrd)
      --help                            Show help
      --hook-spec                       Default hook spec file applied to all containers
  -H, --host                            The socket name used to create gRPC server
      --image-layer-check               Check layer intergrity when needed
      --image-opt-timeout               Max timeout(default 5m) for image operation
      --insecure-registry               Disable TLS verification for the given registry
      --insecure-skip-verify-enforce    Force to skip the insecure verify(default false)
      --log-driver                      Set daemon log driver, such as: file
  -l, --log-level                       Set log level, the levels can be: FATAL ALERT CRIT ERROR WARN NOTICE INFO DEBUG TRACE
      --log-opt                         Set daemon log driver options, such as: log-path=/tmp/logs/ to set directory where to store daemon logs
      --native.umask                    Default file mode creation mask (umask) for containers
      --network-plugin                  Set network plugin, default is null, suppport null and cni
  -p, --pidfile                         Save pid into this file
      --pod-sandbox-image               The image whose network/ipc namespaces containers in each pod will use. (default "rnd-dockerhub.huawei.com/library/pause-${machine}:3.0")
      --registry-mirrors                Registry to be prepended when pulling unqualified images, can be specified multiple times
      --start-timeout                   timeout duration for waiting on a container to start before it is killed
  -S, --state                           Root directory for execution state files
      --storage-driver                  Storage driver to use(default overlay2)
  -s, --storage-opt                     Storage driver options
      --tls                             Use TLS; implied by --tlsverify
      --tlscacert                       Trust certs signed only by this CA (default "/root/.iSulad/ca.pem")
      --tlscert                         Path to TLS certificate file (default "/root/.iSulad/cert.pem")
      --tlskey                          Path to TLS key file (default "/root/.iSulad/key.pem")
      --tlsverify                       Use TLS and verify the remote
      --use-decrypted-key               Use decrypted private key by default(default true)
  -V, --version                         Print the version

示例: 启动lcrd,并将日志级别调整成DEBUG

$ lcrd -l DEBUG
  • 配置文件方式

lcrd配置文件为/etc/isulad/daemon.json,各配置字段说明如下:

配置参数

配置文件示例

参数解释

备注

-e, –engine

“engine”: “lcr”

LCRD的运行时,默认是lcr

-G, –group

“group”: “lcrd”

socket所属组

–hook-spec

“hook-spec”: “/etc/default/lcrd/hooks/default.json”

针对所有容器的默认钩子配置文件

-H, –host

“hosts”: “unix:///var/run/lcrd.sock”

通信方式

除本地socket外,还支持tcp://ip:port方式,port范围(0-65535,排除被占用端口)

–log-driver

“log-driver”: “file”

日志驱动配置

-l, –log-level

“log-level”: “ERROR”

设置日志输出级别

–log-opt

“log-opts”: {

“log-file-mode”: “0600”,

“log-path”: “/var/lib/lcrd”,

“max-file”: “1”,

“max-size”: “30KB”

}

日志相关的配置

可以指定max-file,max-size,log-path。max-file指日志文件个数;max-size指日志触发防爆的阈值,若max-file为1,max-size失效;log-path指定日志文件存储路径;log-file-mode用于设置日志文件的读写权限,格式要求必须为八进制格式,如0666。

–start-timeout

“start-timeout”: “2m”

启动容器的耗时

-p, –pidfile

“pidfile”: “/var/run/lcrd.pid”

保存pid的文件

当启动一个容器引擎的时候不需要配置,当需要启动两个以上的容器引擎时才需要配置。

-g, –graph

“graph”: “/var/lib/lcrd”

LCRD运行时的根目录

-S, –state

“state”: “/var/run/lcrd”

执行文件的根目录

–storage-driver

“storage-driver”: “overlay2”

镜像存储驱动,默认为overlay2

当前只支持overlay2

-s, –storage-opt

“storage-opts”: [ “overlay2.override_kernel_check=true” ]

镜像存储驱动配置选项

可使用的选项为:

overlay2.override_kernel_check=true # 忽略内核版本检查
overlay2.size=${size} # 设置rootfs quota限额为${size}大小
overlay2.basesize=${size} #等价于overlay2.size

–image-opt-timeout

“image-opt-timeout”: “5m”

镜像操作超时时间,默认为5m

值为-1表示不限制超时。

–registry-mirrors

“registry-mirrors”: [ “docker.io” ]

镜像仓库地址

–insecure-registry

“insecure-registries”: [ ]

不使用TLS校验的镜像仓库

–native.umask

“native.umask”: “secure”

容器umask策略,默认”secure”,normal为不安全配置

设置容器umask值。

支持配置空字符(使用默认值0027)、”normal”、”secure”:

normal    # 启动的容器umask值为0022
secure    # 启动的容器umask值为0027(默认值)

–pod-sandbox-image

“pod-sandbox-image”: “rnd-dockerhub.huawei.com/library/pause-aarch64:3.0”

pod默认使用镜像,默认为”rnd-dockerhub.huawei.com/library/pause-${machine}:3.0”

–network-plugin

“network-plugin”: “”

指定网络插件,默认为空字符,表示无网络配置,创建的sandbox只有loop网卡。

支持cni和空字符,其他非法值会导致lcrd启动失败。

–cni-bin-dir

“cni-bin-dir”: “”

指定cni插件依赖的二进制的存储位置

默认为/opt/cni/bin

–cni-conf-dir

“cni-conf-dir”: “”

指定cni网络配置文件的存储位置

默认为/etc/cni/net.d

–image-layer-check=false

“image-layer-check”: false

开启镜像层完整性检查功能,设置为true;关闭该功能,设置为false。默认为关闭。

lcrd启动时会检查镜像层的完整性,如果镜像层被破坏,则相关的镜像不可用。lcrd进行镜像完整性校验时,无法校验内容为空的文件和目录,以及链接文件。因此若镜像因掉电导致上述类型文件丢失,lcrd的镜像数据完整性校验可能无法识别。lcrd版本变更时需要检查是否支持该参数,如果不支持,需要从配置文件中删除。

–insecure-skip-verify-enforce=false

“insecure-skip-verify-enforce”: false

Bool类型,是否强制跳过证书的主机名/域名验证,默认为false。当设置为true时,为不安全配置,会跳过证书的主机名/域名验证

默认为false(不跳过),注意:因lcrd使用的yajl json 解析库限制,若在/etc/isulad/daemon.json配置文件中配置非Bool类型的其他符合json格式的值时,lcrd将使用默认值false。

–use-decrypted-key=true

“use-decrypted-key”: true

Bool类型,指定是否使用不加密的私钥。指定为true,表示使用不加密的私钥;指定为false,表示使用的为加密后的私钥,即需要进行双向认证。

默认配置为true(使用不加密的私钥),注意:因lcrd使用的yajl json 解析库限制,若在/etc/isulad/daemon.json配置文件中配置非Bool类型的其他符合json格式的值时,lcrd将使用默认值true。

–tls

“tls”:false

Bool类型,是否使用TLS

默认值为false, 仅用于-H tcp://IP:PORT方式

–tlsverify

“tlsverify”:false

Bool类型,是否使用TLS,并验证远程访问

仅用于-H tcp://IP:PORT方式

–tlscacert

–tlscert

–tlskey

“tls-config”: {

“CAFile”: “/root/.iSulad/ca.pem”,

“CertFile”: “/root/.iSulad/server-cert.pem”,

“KeyFile”:“/root/.iSulad/server-key.pem”

}

TLS证书相关的配置

仅用于-H tcp://IP:PORT方式

–authorization-plugin

“authorization-plugin”: “authz-broker”

用户权限认证插件

当前只支持authz-broker

–cgroup-parent

“cgroup-parent”: “lxc/mycgroup”

字符串类型,容器默认cgroup父路径

指定daemon端容器默认的cgroup父路径,如果客户端指定了–cgroup-parent,以客户端参数为准。

注意:如果启了一个容器A,然后启一个容器B,容器B的cgroup父路径指定为容器A的cgroup路径,在删除容器的时候需要先删除容器B再删除容器A,否则会导致cgroup资源残留。

–default-ulimits

“default-ulimits”: {

“nofile”: {

“Name”: “nofile”,

“Hard”: 6400,

“Soft”: 3200

}

}

ulimit指定限制的类型,soft值及hard值

指定限制的资源类型,如“nofile”。两个字段名字必须相同,即都为nofile,否则会报错。Hard指定的值需要大于等于Soft’。如果Hard字段或者Soft字段未设置,则默认该字段默认为0。

示例:

$ cat /etc/isulad/daemon.json
{
    "group": "lcrd",
    "graph": "/var/lib/lcrd",
    "state": "/var/run/lcrd",
    "engine": "lcr",
    "log-level": "ERROR",
    "pidfile": "/var/run/lcrd.pid",
    "log-opts": {
        "log-file-mode": "0600",
        "log-path": "/var/lib/lcrd",
        "max-file": "1",
        "max-size": "30KB"
    },
    "log-driver": "stdout",
    "hook-spec": "/etc/default/lcrd/hooks/default.json",
    "start-timeout": "2m",
    "storage-driver": "overlay2",
    "storage-opts": [
        "overlay2.override_kernel_check=true"
    ],
    "registry-mirrors": [
        "docker.io"
    ],
    "insecure-registries": [
        "rnd-dockerhub.huawei.com"
    ],
    "pod-sandbox-image": "",
    "image-opt-timeout": "5m",
    "native.umask": "secure",
    "network-plugin": "",
    "cni-bin-dir": "",
    "cni-conf-dir": "",
    "image-layer-check": false,
    "use-decrypted-key": true,
    "insecure-skip-verify-enforce": false
}

注意:
默认配置文件/etc/isulad/daemon.json仅供参考,请根据实际需要进行配置