Universal Container Runtime (UCR)

使用 Universal Container Runtime 启动 Mesos 容器

使用 UCR 配置 Mesos 容器

通用容器运行时 (UCR) 从二进制可执行文件启动 Mesos 容器,并扩展 Mesos 容器运行时间以支持配置 Docker 镜像。UCR 与 Docker Engine 相比,在运行 Docker 镜像方面具有许多优势。只有在您需要 Docker Engine 的功能 的时候才需使用 Docker Engine。

DC/OS Web 界面

使用此程序从 DC/OS Web 界面配置 UCR 的容器。

  1. 单击 DC/OS Web 界面的 Services 选项卡,然后单击 RUN A SERVICE

  2. 单击 Single Container

  3. 输入服务 ID。

  4. CONTAINER IMAGE 字段中,可以选择输入容器镜像。否则,在 COMMAND 字段中输入命令。

  5. 指定 UCR。单击 MORE SETTINGS。在 Container Runtime 部分,选择 UNIVERSAL CONTAINER RUNTIME (UCR) 单选按钮。

  6. 单击查看和运行运行服务

DC/OS CLI

使用此程序从 DC/OS 命令行配置 UCR 的容器。

  1. Marathon 应用定义中,将 container.type 参数设置为 MESOS。在这里,我们使用 docker 对象指定 Docker 容器。UCR 提供可选的 pullConfig 参数以使您能够对专用 Docker 注册表进行身份认证
  1. {
  2. "id": "/nginx-bridge",
  3. "container": {
  4. "portMappings": [
  5. {
  6. "containerPort": 80,
  7. "hostPort": 0,
  8. "labels": {
  9. "VIP_0": "/nginx2:1024"
  10. },
  11. "protocol": "tcp",
  12. "servicePort": 10000,
  13. "name": "webport"
  14. }
  15. ],
  16. "type": "MESOS",
  17. "volumes": [],
  18. "docker": {
  19. "image": "nginx",
  20. "forcePullImage": false,
  21. "pullConfig": {
  22. "secret": "pullConfigSecret"
  23. },
  24. "parameters": []
  25. }
  26. },
  27. "secrets": {
  28. "pullConfigSecret": {
  29. "source": "/mesos-docker/pullConfig"
  30. }
  31. },
  32. "args":[
  33. "<my-arg>"
  34. ],
  35. "cpus": 0.5,
  36. "disk": 0,
  37. "instances": 1,
  38. "mem": 128,
  39. "networks": [
  40. {
  41. "mode": "container/bridge"
  42. }
  43. ],
  44. "requirePorts": false
  45. }

重要信息:如果您将“args”字段留空,默认入口点将为容器的启动命令。如果您的容器没有默认入口点,则须在“args”字段中指定命令。如果不这样做,您的服务将无法部署。

容器镜像垃圾收集

对于长时间运行的群集,容器镜像可能占用代理机器上的磁盘空间。为了改善操作者使用 UCR 的体验,从 Mesos 1.5.0 开始引入容器镜像 GC(请阅读 Mesos docs了解更多详情)。默认情况下,镜像 GC 在 DC/OS 中是自动的,而操作员可以手动触发。

自动镜像 GC

容器镜像自动 GC 默认启用,由镜像 GC 配置文件配置。可通过 /opt/mesosphere/etc/mesos-slave-common 处的 MESOS_IMAGE_GC_CONFIG 环境变量更新此配置文件。默认配置文件位于 /opt/mesosphere/etc/mesos-slave-image-gc-config.json,以下是配置文件的参数:

  • image_disk_headroom:用于计算容器镜像存储大小阈值的镜像磁盘空间。如果镜像磁盘使用率达到该阈值,将自动触发镜像垃圾收集。请注意,空间价值必须介于 0.0 和 1.0 之间。(默认为 0.1,表示 90% 磁盘使用率作为阈值)
  • image_disk_watch_interval:检查镜像存储磁盘使用率的周期时间间隔。请注意,此时间间隔的单位为“纳秒”。(默认为 300000000000,表示每 5 分钟检查一次磁盘)
  • excluded_images:不应进行垃圾回收的已排除镜像列表。(默认为空列表)

手动镜像 GC

容器镜像手动 GC 可通过 HTTP Operator API 触发。有关详细信息,请参阅 v1 算子 API doc 中的 PRUNE_IMAGES 部分 。

延伸阅读