我创建了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创建负载均衡器的主要问题:(
它仍显示EXTERNAL_IP的<pending>
。我的疑问是,由于EC2实例和LB都在同一VPC中,为什么traceroute internal-myservices-987070943.us-east-1.elb.amazonaws.com不跟踪它?我得到所有30跳的所有* * *。但是我可以从本地计算机成功跟踪它。所以这就是为什么它不创建任何外部ip的原因?
我完成了与Kubernetes集成AWS云的所有工作。
1)我在kube群集中的主节点和工作节点的主机名都与EC2实例DNS名称相同。
2)在EC2实例和kubelet服务中添加了标签
3)为kube-api和kube-controller-manager POD添加了cloud-config标签
4)我看到elasticloadbalancing:*在我的角色中允许在AWS中执行我的策略的操作。
我还想知道当我的EC2实例中安装的nginx能够访问我的LoadBalancer而Traceroute无法访问它时怎么办。
是否可以使用通过AWS控制台手动创建的Loadbalancer直接访问我的服务?也许与NodePort或Ingress之类的东西。
所以我对此很固执:(请帮助。.
答案 0 :(得分:0)
我必须在kube-controller yaml中将proxy设置为env变量。 另外,必须在no_proxy变量中设置一些ec2元数据ip地址,才能正常工作。