如何在aws上创建Kubernetes负载均衡器

时间:2015-07-24 13:13:31

标签: kubernetes aws-ec2

Kubernetes为每项服务创建一个负载均衡器;自动在GCE中。如何在AWS上管理类似的东西?

Kubernetes服务基本上使用kubeproxy来处理内部流量。但是那个kubeproxy ip它无法访问外部网络。

有办法实现这个目标吗?

2 个答案:

答案 0 :(得分:13)

在您的服务定义中,将其type field设置为LoadBalancer,如果您在AWS上运行,kubernetes将自动为您创建AWS Elastic Load Balancer。此功能应适用于GCE / GKE,AWS和OpenStack。

例如,请查看guestbook-go example

答案 1 :(得分:5)

最小例子:

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  type: LoadBalancer
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376

相关文档:

撰写时,了解所有service.beta.kubernetes.io注释的最佳方法是阅读源代码:

要使控制器能够管理ELB,它将需要在主实例IAM角色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