2017-05-06 64 views
3

我一直試圖在Google Cloud的容器引擎上使用Traefik作爲Ingress控制器。如何在Google Cloud Container Engine上公開公開Traefik入口控制器?

我得到了我的http部署/服務啓動和運行(當我用普通的LoadBalancer暴露它時,它應答很好)。

我然後取出負載均衡器,並遵循本教程:https://docs.traefik.io/user-guide/kubernetes/

所以我有一個新的traefik-ingress-controller部署和服務,併爲traefik的UI,我可以通過kubectl代理訪問入口。

然後我爲我的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 
+1

你似乎已經設置了Traefik入口控制器與服務NodePorts,所以看起來你應該能夠打任何節點上的端口31447.另外,您可以通過LoadBalancer公開服務並通過單個公共IP地址路由流量。 –

+0

我遇到同樣的問題。即使嘗試'curl nodeIP:nodePort'也不會返回響應。你有沒有找到解決辦法? – brocknz

回答

1

你需要暴露Traefik服務。將服務規格類型設置爲LoadBalancer。嘗試,我以前用下面的服務文件:

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