标签: aws-alb

当目标(后端)应用程序在同一 EC2 的多个端口上运行时的 AWS ELB

我有 2 个相同 Web 应用程序的实例在端口 8080 和 8081 上运行。我需要使用 ALB/CLB 进行负载平衡。这在旧的 apache Web 服务器中曾经是一件简单的事情。要求是对下面的实例进行负载平衡

实例 1 Web 应用程序 1 端口 8080

实例 1 Web 应用程序 2 端口 8081

实例 2 Web 应用程序 1 端口 8080

实例 2 Web 应用程序 2 端口 8081

我无法使用 ALB 执行此操作。我尝试创建 2 个目标组,一个用于端口 8080,另一个用于端口 8081。但在侦听器规则中,我可以根据路径将请求发送到不同的目标组。但这不会对整个站点进行负载平衡。参考截图

在此输入图像描述

我在这里有什么选择?

提前致谢

amazon-web-services aws-elb aws-alb

4
推荐指数
1
解决办法
3858
查看次数

"services is forbidden: User \"system:serviceaccount:tick:external-dns\" 无法在集群范围内列出 API 组 \"\" 中的资源 \"services\"

我一直在按照演练为我的应用程序创建一个 AWS ALB 入口控制器,该控制器也部署在 EKS 集群中。
一切似乎都很好,与演练类似的答案,但是在设置外部 DNS 时,我收到错误消息:

kubectl logs -f $(kubectl get po | egrep -o 'external-dns[A-Za-z0-9-]+')
Run Code Online (Sandbox Code Playgroud)

time="2020-02-20T16:21:57Z" level=error msg="services is forbidden: User \"system:serviceaccount:tick:external-dns\" 无法在 API 组中列出资源 \"services\" \" 在集群范围" time="2020-02-20T16:22:58Z" level=error msg="services is forbidden: User \"system:serviceaccount:tick:external-dns\" cannot list resource \"services \" 在 API 组中 \"\" 在集群范围内"

每一分钟。我确保所有的权限都是需要的,所以不应该是因为这个。

我从这里尝试了解决方案,但没有任何帮助,我找不到任何其他解决方案。

这个错误实际上意味着什么?我应该怎么做才能修复它?

更新编辑我的external-dns配置看起来像:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: external-dns
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::*my*account*id*:role/EKSRole
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: external-dns
rules:
- apiGroups: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress aws-alb external-dns

3
推荐指数
1
解决办法
4437
查看次数

错误 aws_alb_target_group 设置了“计数”,必须在特定实例上访问其属性

我正在使用Terraform v0.12.26和设置并aws_alb_target_group作为:

resource "aws_alb_target_group" "my-group" {
  count = "${length(local.target_groups)}"
  name = "${var.namespace}-my-group-${
    element(local.target_groups, count.index)
  }"

  port     = 8081
  protocol = "HTTP"
  vpc_id   = var.vpc_id

  health_check {
    healthy_threshold   = var.health_check_healthy_threshold
    unhealthy_threshold = var.health_check_unhealthy_threshold
    timeout             = var.health_check_timeout
    interval            = var.health_check_interval
    path                = var.path
  }

  tags = {
    Name = var.namespace
  }

  lifecycle {
    create_before_destroy = true
  }
}
Run Code Online (Sandbox Code Playgroud)

当地人长这样:

locals {
  target_groups = [
    "green",
    "blue",
  ]
}
Run Code Online (Sandbox Code Playgroud)

当我运行terraform apply它返回以下错误:

Error: Missing resource instance key

  on …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform aws-alb

3
推荐指数
1
解决办法
3461
查看次数

AWS 负载均衡器允许 URL 路径上的某些 IP 地址

目前,我在 AWS 上使用应用程序负载均衡器设置了一个应用程序,目标组中有 2 个 EC2:

DNS -> AWS-ALB -> EC2(2)

我需要帮助仅允许应用程序 URL 上下文路径上的某些 IP 地址。

例如:www.abc.com 应该可供所有人访问,但 www.abc.com/xyz 应该只能由某些 IP 地址访问。

我在 EC2 上尝试了 NGINX 解决方案,只有当我使用允许和拒绝规则直接访问 EC2 IP 时才有效。

reverse-proxy amazon-ec2 amazon-web-services aws-elb aws-alb

2
推荐指数
1
解决办法
2864
查看次数

Nginx 作为 AWS ALB 背后的反向代理(自签名)

我在 AWS 中创建了一个环境,其中包括一个安装了 node js web-server 和 Nginx 的 EC2 实例,位于自签名应用程序负载均衡器后面。

我的 ALB 从 HTTPS (443) 获取请求并通过 HTTP (80) 将它们转发到 Nginx。我的 Nginx 应该从 ALB(在端口 80)获取请求并将它们转发到端口 9090(由节点 js Web 服务器使用)。

但是,我在将请求从 Nginx 转换为应用程序时遇到了问题。在 HTTP 上使用 ALB DNS 输入 URL 时,我能够访问上述页面(而不是我的网络服务器应用程序页面): 在此处输入图片说明

上面附有我的 default.conf 文件: 在此处输入图片说明

我所有的安全组都可以测试问题(在 443、80、9090 上)。所以端口不是问题,而是 Nginx 配置。

另外,我上面介绍的目标群体: 在此处输入图片说明

可能是什么问题/我应该做哪些进一步的配置?谢谢你。

nginx amazon-web-services node.js nginx-reverse-proxy aws-alb

2
推荐指数
2
解决办法
4747
查看次数