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

bit*_*ter 11 kubernetes aws-ec2

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

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

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

Ale*_*son 13

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

有关示例,请查看guestbook-go示例.

  • 它如何知道访问凭证? (3认同)
  • 如果我在我的本地安装K8s,我怎么能有一个能够与k8s一起工作的负载均衡器? (2认同)

Paw*_*żak 5

最小的例子:

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  type: LoadBalancer
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376
Run Code Online (Sandbox Code Playgroud)

相关文档:

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

为了使控制器能够管理ELB,它将需要在主实例IAM角色中设置的权限,例如:

...
{
  "Action": "elasticloadbalancing:*",
  "Resource": "*",
  "Effect": "Allow"
},
{
  "Action": [
    "ecr:GetAuthorizationToken",
    "ecr:BatchCheckLayerAvailability",
    "ecr:GetDownloadUrlForLayer",
    "ecr:GetRepositoryPolicy",
    "ecr:DescribeRepositories",
    "ecr:ListImages",
    "ecr:BatchGetImage"
  ],
  "Resource": "*",
  "Effect": "Allow"
},
...
Run Code Online (Sandbox Code Playgroud)

应该--cloud-provider=awskube-apiserver上设置云提供商.