繁体   English   中英

带有 consul-agent 和代理的 ECS fargate 作为 sidecar 容器

[英]ECS fargate with consul-agent and proxy as sidecar container

我正在尝试在我的 ECS fargate 服务中将 consul-agent 和 proxy 实现为 sidecar 容器。 因此,在任务内部,将运行 3 个容器:

  • 核心业务服务容器
  • 领事代理容器
  • 核心业务领事代理容器

所有容器都已启动并在 ECS 任务上运行。 该节点也已在 consul UI 中注册。 但是,该服务不在 consul UI 中。

我挖掘并找到了'consul-agent-container'的日志,这是错误日志:

2021/03/12 03:33:14 [ERR] http:请求 PUT /v1/agent/check/pass/greeting-fargate-proxy-ttl?note=,错误:CheckID“greeting-fargate-proxy-ttl”确实没有关联的 TTL from=127.0.0.1:43252

这是我用来连接 consul 的命令。

  1. 领事代理容器:

"执行领事代理 -ui -data-dir /consul/data -client="127.0.0.1" -bind="{{ GetPrivateIP }}" -retry-join "172.31.79.139""

  1. 核心业务领事代理容器:

“执行领事连接代理-register -service greeting-fargate -http-addr 127.0.0.1:8500 -listen 127.0.0.1:8080 -service-addr 127.0.0.1:3000”

HashiCorp 最近宣布支持在 ECS 上运行 Consul 服务网格,使用 Terraform 部署代理和边车组件。 您可能希望将此视为现有工作流程的替代解决方案。

此解决方案目前处于技术预览阶段。 您可以在博客文章https://www.hashicorp.com/blog/announcing-consul-service-mesh-for-amazon-ecs中找到更多信息。

我没有设法让我的代理使用与您使用的方法相同的方法工作。 但我记得在某处读过你应该在服务注册配置中声明你的 Connect 代理

  {
  "service": {
    "name": "web",
    "port": 8080,
    "connect": { "sidecar_service": {} }
  }
}

完成后,我认为您可以使用以下命令启动代理:

consul connect proxy -sidecar-for <service-id>

我没有验证这一点,因为我使用的应用程序使用 Spring Cloud Consul 来注册服务,我没有找到在哪里注册代理,但也许这可以帮助你进一步。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM