首页 文章

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

提问于
浏览
11

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

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

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

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

    应在kube-apiserver上使用 --cloud-provider=aws 设置 Cloud 提供程序 .

相关问题