我一直在尝试将Traefik用作Google Cloud容器引擎上的Ingress控制器。
我启动并运行了我的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
答案 0 :(得分:2)
您需要公开Traefik服务。将服务规范类型设置为LoadBalancer
。试试我之前使用的以下服务文件:
apiVersion: v1
kind: Service
metadata:
name: traefik
spec:
type: LoadBalancer
selector:
app: traefik
tier: proxy
ports:
- port: 80
targetPort: 80