-1

我创建了 aws 应用程序负载均衡器 myservices,并在 aws 控制台中列出了以下 DNS 名称 - internal-myservices-987070943.us-east-1.elb.amazonaws.com

我还在描述下创建了目标组并在下面显示 - 名称为 myservices-LB,协议为 HTTPS,端口为 443,目标类型为实例,负载均衡器为 myservices 在“目标”选项卡下我可以看到已注册的目标将我的实例 ID 显示为 i- 02dbf9b3a7d9163e7 端口为 443 和其他详细信息……此实例 ID 是我的 ec2 实例,我已将其配置为我的 kubernetes 集群的主节点。

实际上,我的负载均衡器和 EC2 实例都在同一个 VPC 中。

现在,我可以从我的本地计算机访问此 URL https://internal-myservices-987070943.us-east-1.elb.amazonaws.com 我所做的是 - 1)HTTPS 443 端口和 2 中的健康检查失败) 在我的 EC2 实例中安装了 Web 服务器 nginx。所以安装 nginx 并打开 SSL 端口会自动解决健康检查问题,我可以使用 https 浏览内部 LB URL。

但是我使用 kubernetes svc 创建负载均衡器的主要问题仍然没有解决:( 它仍然显示<pending>为 EXTERNAL_IP。我的疑问是因为 EC2 实例和 LB 都在同一个 VPC 中,为什么不是 traceroute internal-myservices-987070943.us-east- 1.elb.amazonaws.com 没有跟踪它?我得到了所有 30 个跃点的所有 * * *。但是从我的本地计算机上我能够成功跟踪它。所以这就是它没有创建任何外部 ip 的原因?

我完成了 AWS 云与 kubernetes 集成所需的所有工作。

1) 我在 kube 集群中的主节点和工作节点的主机名与 EC2 实例 DNS 名称相同。

2) 为 EC2 实例和 kubelet 服务添加标签

3) 为 kube-api 和 kube-controller-manager POD 添加了 cloud-config 标签

4) 我看到 elasticloadbalancing:* 操作允许我在 AWS 中针对我的角色执行的策略。

另外我想知道当安装在我的 EC2 实例中的 nginx 能够访问我的 LoadBalancer 但 Traceroute 无法访问它时,情况如何。

是否可以使用我通过 AWS 控制台手动创建的负载均衡器直接访问我的服务?也许与 NodePort 或入口或其他东西..??

所以我坚持这个:(请帮助..

4

1 回答 1

0

我必须在 kube-controller yaml 中将代理设置为环境变量。此外,必须在 no_proxy 变量中设置一些 ec2 元数据 IP 地址才能正常工作。

于 2019-02-06T23:17:24.313 回答