我已经使用提供的模板在 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
该页面末尾特别感兴趣:
- flanneld.service 中的 ExecStartPost 将 /run/flannel/subnet.env 中的信息转换为 Docker 守护进程命令行参数(例如 --bip 和 --mtu),将它们存储在 /run/flannel_docker_opts.env ...
- /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 文件。但我不确定我正在做的是否是正确的方法。
谢谢!