Kubernetes为每项服务创建一个负载均衡器;自动在GCE中 . 如何在AWS上管理类似的东西?
Kubernetes服务基本上使用kubeproxy来处理内部流量 . 但是那个kubeproxy ip它无法访问外部网络 .
有一种方法可以实现这一目标吗?
在您的服务定义中,将其 type field设置为 LoadBalancer ,如果您在AWS上运行,kubernetes将自动为您创建AWS Elastic Load Balancer . 此功能应适用于GCE / GKE,AWS和OpenStack .
type
LoadBalancer
例如,请查看guestbook-go example .
最小的例子:
kind: Service apiVersion: v1 metadata: name: my-service spec: type: LoadBalancer selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376
相关文档:
Create an External Load Balancer
Type LoadBalancer
在编写时,了解所有 service.beta.kubernetes.io 注释的最佳方法是阅读源代码:
service.beta.kubernetes.io
为了使控制器能够管理ELB,它将需要在主实例IAM Role,e.g.中设置的权限:
... { "Action": "elasticloadbalancing:*", "Resource": "*", "Effect": "Allow" }, { "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:GetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:ListImages", "ecr:BatchGetImage" ], "Resource": "*", "Effect": "Allow" }, ...
应在kube-apiserver上使用 --cloud-provider=aws 设置 Cloud 提供程序 .
--cloud-provider=aws
2 回答
在您的服务定义中,将其
type
field设置为LoadBalancer
,如果您在AWS上运行,kubernetes将自动为您创建AWS Elastic Load Balancer . 此功能应适用于GCE / GKE,AWS和OpenStack .例如,请查看guestbook-go example .
最小的例子:
相关文档:
Create an External Load Balancer
Type LoadBalancer
在编写时,了解所有
service.beta.kubernetes.io
注释的最佳方法是阅读源代码:为了使控制器能够管理ELB,它将需要在主实例IAM Role,e.g.中设置的权限:
应在kube-apiserver上使用
--cloud-provider=aws
设置 Cloud 提供程序 .