1

我已经使用提供的模板在 AWS 中安装了 Mesosphere DCOS。现在我想重新启动所有节点,但将 --insecure-registry 参数添加到所有从节点(以及主节点),以便它们与我的 docker 注册表通信。所以我正在阅读最好的方法是在 AWS 模板的 cloud-config 脚本上。

因此,在 AWS EC2 启动配置中,我复制了主节点的配置,然后调整了用户数据,然后更新了 Auto Scaling 组并重新启动了主节点。(How do I use insecure docker registries with Amazon EC2 Container Service (ECS)?

根据 CoreOS 文档的建议,这些行已添加到 cloud-config 中单位部分的末尾: https ://coreos.com/os/docs/latest/cloud-config.html

 units
 ....Many lines here
- name: docker.service
 drop-ins: |-
 - name: 50-insecure-registry.conf
   content: |
    [Service]
    Environment=DOCKER_OPTS='--insecure-registry="10.0.1.0/24"'

但是,主人不会重新启动。所以我不得不恢复我的改变。

这么多的问题:

一个。为什么这个模板 cloud-config 中没有 docker.service 块?docker如何以及何时启动?

湾。我需要编辑 flannel_docker_opts.env 文件吗?在此云配置中再次没有提及此类文件。但是在这个页面中有提到: https ://coreos.com/flannel/docs/latest/flannel-config.html

该页面末尾特别感兴趣:

  1. flanneld.service 中的 ExecStartPost 将 /run/flannel/subnet.env 中的信息转换为 Docker 守护进程命令行参数(例如 --bip 和 --mtu),将它们存储在 /run/flannel_docker_opts.env ...
  2. /run/flannel_docker_opts.env 中的 docker.service 源,其中包含带有命令行选项的环境变量,并使用它们启动 Docker。

事实上,我可以看到提到的文件,如 early-docker.service,但在 cloud-config 中再次没有提到 flannel。

但确实我找到了上面页面中提到的服务文件:

 /usr/lib64/udev/rules.d/80-docker.rules
 /usr/lib64/systemd/system/early-docker.service
 /usr/lib64/systemd/system/early-docker.socket
 /usr/lib64/systemd/system/docker.service
 /usr/lib64/systemd/system/docker.socket
 /usr/lib64/systemd/system/sockets.target.wants/docker.socket
 /usr/lib64/systemd/system/early-docker.target

确实在 docker.service 文件中提到了 /run/flannel_docker_opts.env 文件,但在 /run 文件夹中不存在:

vi /usr/lib64/systemd/system/docker.service

 [Unit]
 Description=Docker Application Container Engine
 Documentation=http://docs.docker.com
 After=docker.socket early-docker.target network.target
 Requires=docker.socket early-docker.target

 [Service]
 Environment=TMPDIR=/var/tmp
 EnvironmentFile=-/run/flannel_docker_opts.env <<<<<<<<<< HERE!!!!!
 MountFlags=slave
 LimitNOFILE=1048576
 LimitNPROC=1048576
 ExecStart=/usr/lib/coreos/dockerd --daemon --host=fd:// $DOCKER_OPTS $DOCKER_OPT_BIP $DOCKER_OPT_MTU $DOCKER_OPT_IPMASQ

 [Install]

C。这个 docker.service 文件来自哪里!云配置中没有提及它。它是 CoreOS 架构的一部分吗?

d。如果这个 docker.service 是 CoreOS 的组成部分,为什么所有的文件都在这个 /usr/lib64 路径中?CoreOS 文档提到了所有文件的其他路径位置。

任何建议将不胜感激。我现在要瞎了。我将尝试创建这个不存在的 flannel_docker_conf.env 文件。但我不确定我正在做的是否是正确的方法。

谢谢!

4

0 回答 0