我在User Guide之后在Kubernetes上实施了Traefik。这给了我一个入口控制器,我能够在80和8080上创建一个入口和traefik-ingress服务。
我还设置了一个" 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 Load Balancer来终止我的TLS,并将所有请求转发给类型为NodePort的traefik-ingress-service。
GCE负载均衡器需要进行健康检查。默认为路径" /"。我以为traefik有一个" / ping"所以我改变了健康检查。但无论我做什么,我都无法通过健康检查,因此,我的GCE Load Balancer是不健康的,并且不会将任何请求转发给traefik。
有些参考文献说要将Traefik lb服务从NodePort更改为LoadBalancer,但除了我的Ingress处理SSL终止之外,它应该与我上面的Ingress完全相同。
其他人这样做了吗?
答案 0 :(得分:6)
使用gce负载均衡器进行运行状况检查的方法是向traefik容器添加一个参数。 --ping
和--ping.entrypoint=http
允许我为/ping
路径设置gce运行状况检查。
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=http