【问题标题】:How to publicly expose Traefik ingress controller on Google Cloud Container Engine?如何在 Google Cloud Container Engine 上公开 Traefik 入口控制器?
【发布时间】:2017-10-05 04:10:51
【问题描述】:

我一直在尝试将 Traefik 用作 Google Cloud 容器引擎上的 Ingress Controller。

我的 http 部署/服务启动并运行(当我使用普通的 LoadBalancer 公开它时,它的响应很好)。

然后我删除了 LoadBalancer,并按照本教程进行操作:https://docs.traefik.io/user-guide/kubernetes/

所以我得到了一个新的traefik-ingress-controller 部署和服务,以及一个可以通过 kubectl 代理访问的 traefik ui 的入口。

然后我为我的 http 服务创建了入口,但我的问题出现了:我找不到将其公开的方法。

我希望任何人都可以通过外部 IP 访问它。

我错过了什么?

这是kubectl get --export all的输出:

NAME                                            READY     STATUS    RESTARTS   AGE
po/mywebservice-3818647231-gr3z9                1/1       Running   0          23h
po/mywebservice-3818647231-rn4fw                1/1       Running   0          1h
po/traefik-ingress-controller-957212644-28dx6   1/1       Running   0          1h

NAME                             CLUSTER-IP      EXTERNAL-IP   PORT(S)                       AGE
svc/mywebservice                 10.51.254.147   <none>        80/TCP                        1d
svc/kubernetes                   10.51.240.1     <none>        443/TCP                       1d
svc/traefik-ingress-controller   10.51.248.165   <nodes>       80:31447/TCP,8080:32481/TCP   25m
svc/traefik-web-ui               10.51.248.65    <none>        80/TCP                        3h

NAME                                DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deploy/mywebservice                 2         2         2            2           1d
deploy/traefik-ingress-controller   1         1         1            1           3h

NAME                                      DESIRED   CURRENT   READY     AGE
rs/mywebservice-3818647231                2         2         2         23h
rs/traefik-ingress-controller-957212644   1         1         1         3h

【问题讨论】:

  • 您似乎已经使用 NodePorts 设置了 Traefik Ingress 控制器服务,因此看起来您应该能够访问端口 31447 上的任何节点。或者,您可以通过 LoadBalancer 和路由公开该服务通过单个公共 IP 地址进行流量。
  • 我遇到了同样的问题。即使尝试curl nodeIP:nodePort 也不会返回响应。你找到解决办法了吗?

标签: kubernetes google-cloud-platform traefik


【解决方案1】:

您需要公开 Traefik 服务。将服务规范类型设置为LoadBalancer。试试下面我之前用过的服务文件:

apiVersion: v1
kind: Service
metadata:
  name: traefik
spec:
  type: LoadBalancer
  selector:
    app: traefik
    tier: proxy
  ports:
  - port: 80
    targetPort: 80

【讨论】:

  • 有没有办法在 GCP 上不创建负载均衡器(每月 18 美元)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-07
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
相关资源
最近更新 更多