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

问题描述 投票:11回答:2

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

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

有一种方法可以实现这一目标吗?

kubernetes aws-ec2
2个回答
13
投票

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

例如,查看guestbook-go example


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 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"
},
...

云提供商应该在--cloud-provider=aws上设置kube-apiserver

© www.soinside.com 2019 - 2024. All rights reserved.