【问题标题】:Traefik Ingress Controller for Kubernetes (AWS EKS)Kubernetes 的 Traefik 入口控制器 (AWS EKS)
【发布时间】:2018-08-28 06:42:27
【问题描述】:

我在云中的 AWS EKS 服务上运行我的工作负载。我可以看到没有可用的默认 Ingress Controller(因为它可用于 GKE),我们必须选择第 3 方。

我决定选择Traefik。在关注文档和其他资源(如this)之后,我觉得使用 Traefik 作为 Ingress Controller 不会自动在云中创建 LoadBalancer。我们必须手动完成所有设置。

如何使用 Traefik 作为 Kubernetes Ingress 工作,就像其他 Ingress Controller(即 Nginx 等)创建 LoadBalancer、注册服务等的工作方式一样?任何工作示例将不胜感激。

【问题讨论】:

    标签: amazon-web-services kubernetes traefik amazon-eks


    【解决方案1】:

    您是否尝试过像此示例中的注释?

    apiVersion: v1
    kind: Service
    metadata:
      name: traefik-proxy
      annotations:
        service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:REGION:ACCOUNTID:certificate/CERT-ID"
        service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
    spec:
      type: LoadBalancer
      selector:
        app: traefik-proxy
        tier: proxy
      ports:
      - port: 443
        targetPort: 80
    

    【讨论】:

    • 这里,它是Service 类型,我觉得如果我运行kubectl get ing,它不会将Traefik 显示为IC。对吗?
    • 入口是一组规则,而入口控制器通常是一个deamonset或部署。所以kubectl get ing 只会显示入口。
    • 好吧,这意味着如果我们使用 Ingress Controller 作为 DaemonSet 或 Deployment,kubectl get ing 不会认为它是 Ingress 对吧?此外(在您提供的帖子中),- host: 应该具有 k8s 主节点地址的值(即 EKS 提供的类似于https://<some-id>.sk1.us-west-2.eks.amazonaws.com 的 API 服务器地址?
    • 是的,host 是您注册的应用程序的名称,并作为 HTTP 标头中的字段传递(它可能是您的机器名称,或者如果您有注册的域,您的 DNS 将指向 K8S对 ELB 来说是 master 或更好,以防您的 HA 集群具有多个控制平面)。
    • 是的。其实我觉得这个- host: 有点好奇。由于我使用的是 EKS,AWS 为我管理主节点。 EKS 仅提供 API Server Endpoint。我提供给- host:,但它会引发错误。 :(
    猜你喜欢
    • 1970-01-01
    • 2021-09-21
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2020-09-27
    • 1970-01-01
    • 2021-01-28
    相关资源
    最近更新 更多