我遵循User Guide在Kubernetes上实现了Traefik。这给了我一个入口控制器,我能够创建一个入口和监听80和8080的traefik- ingress service。
我还设置了一个"gce“入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: traefik-ingress
namespace: kube-system
annotations:
kubernetes.io/ingress.class: "gce"
spec:
tls:
- secretName: fasedge-tls
backend:
serviceName: traefik-ingress-service
servicePort: 80这样做的目的是创建一个GCE负载均衡器,它终止我的TLS,并将所有请求转发到类型为NodePort的traefik-ingress service。
GCE负载均衡器需要健康检查。默认路径为"/“。我以为traefik有一个"/ping“,所以我把健康检查改成了这个。但无论我做什么,我都无法通过健康检查,因此,我的GCE负载均衡器是不健康的,不会向traefik转发任何请求。
一些参考建议将Traefik lb服务从NodePort更改为LoadBalancer,但这应该与我上面的Ingress做完全相同的事情,除了我的Ingress处理SSL终止。
还有谁这样做的吗?
发布于 2018-02-22 22:46:09
让health check在gce负载均衡器上工作的方法是向traefik容器添加一个参数。--ping和--ping.entrypoint=http允许我将gce运行状况检查设置为/ping路径。
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: traefik-ingress-controller
namespace: kube-system
labels:
app: traefik-ingress-controller
spec:
replicas: 1
selector:
matchLabels:
app: traefik-ingress-controller
template:
metadata:
labels:
app: traefik-ingress-controller
name: traefik-ingress-controller
spec:
serviceAccountName: traefik-ingress-controller
terminationGracePeriodSeconds: 60
containers:
- name: traefik-ingress-controller
image: "traefik:v1.5.2"
args:
- --api
- --kubernetes
- --ping
- --ping.entrypoint=httphttps://stackoverflow.com/questions/48892326
复制相似问题