在 AWS EB / Elastic Beanstalk 上运行 Consul Agent

在 AWS EB / Elastic Beanstalk 上运行 Consul Agent

有人有在 AWS 上运行 Consul Agent 的经验吗?我有一个正在运行的 consul 服务器集群,但想使用 AWS EB 向每个主机实例部署一个 docker 应用程序和一个 docker consul 代理 (progrium/consul),以便应用程序可以在本地主机上使用 consul,而不是我所有的应用程序都直接与 consul 服务器组通信。

本页给出了教科书式 Consul 网络的一个很好的例子(没有参考 AWS 或 docker 等)-https://jlordiales.me/2015/01/23/docker-consul/

这是我的 Dockerrun.aws.json

{
"AWSEBDockerrunVersion": "2",
"authentication": {
    "bucket": "example-com",
    "key": "registry.example.com/example.json"
},
"containerDefinitions": [
    {
        ... php app container defined here ...
        "portMappings": [
            {
                "containerPort": 80,
                "hostPort": 80
            }
        ]
    },
    {
        "cpu": 1000,
        "entryPoint": [],
        "environment": [
            {
                "name": "CONSUL_JOIN",
                "value": "consul.example.com"
            },
            {
                "name": "CONSUL_URL",
                "value": "localhost:8500"
            }
        ],
        "essential": true,
        "image": "progrium/consul",
        "links": [],
        "memory": 900,
        "name": "consulagent",
        "portMappings": [
            {
                "containerPort": 8400,
                "hostPort": 8400
            },
            {
                "containerPort": 8500,
                "hostPort": 8500
            }
        ]
    }

]

}

只是想知道如何将常用参数传递给我的docker容器以使其作为代理运行并加入我的服务器,例如$ docker run -d -p 8400:8400 -p 8500:8500 -p 8600:53/udp \ --name node4 -h node4 progrium/consul -join $JOIN_IP

相关内容