Kubernetes 如何使Traefik与Microk8s兼容
我在Minikube上有一个工作设置,Traefik作为入口控制器。我尝试在Microk8s上使用该设置,但Traefik无法工作,尽管我可以看到Traefik仪表板,它显示一切正常,但每次尝试使用入口URL时,我都会面临超时,但如果我使用该服务的端点IP(我可以在Traefik仪表板中看到)我可以使用该服务,但不能完全使用。我可以访问Kubernetes 如何使Traefik与Microk8s兼容,kubernetes,yaml,traefik,minikube,microk8s,Kubernetes,Yaml,Traefik,Minikube,Microk8s,我在Minikube上有一个工作设置,Traefik作为入口控制器。我尝试在Microk8s上使用该设置,但Traefik无法工作,尽管我可以看到Traefik仪表板,它显示一切正常,但每次尝试使用入口URL时,我都会面临超时,但如果我使用该服务的端点IP(我可以在Traefik仪表板中看到)我可以使用该服务,但不能完全使用。我可以访问IP/service1,但无法访问其任何子URL,IP/service1/sub-service1不工作 我还尝试了microk8s.enable ingres,
IP/service1
,但无法访问其任何子URL,IP/service1/sub-service1
不工作
我还尝试了microk8s.enable ingres
,但它为我创建了一个nginx入口,然后我禁用了它,因为我想使用traefik
我是否需要更改配置,使其与Microk8s兼容?如果是,怎么做
我必须提到,我有两个入口文件:
:它包含我的traefik的服务和入口。我使用此服务+入口来访问traefik仪表板,正如我提到的,它可以工作traefik ui.yaml
:是我的主要入口,它可以与kubernetes内部的组件进行通信,但这是不起作用的部分wws-ingres.yaml
---
apiVersion: v1
kind: Service
metadata:
name: traefik-web-ui
namespace: kube-system
spec:
selector:
k8s-app: traefik-ingress-lb
ports:
- name: web
port: 80
targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: traefik-web-ui
namespace: kube-system
spec:
rules:
- host: traefik-ui.minikube
http:
paths:
- path: /
backend:
serviceName: traefik-web-ui
servicePort: web
wws-ingress.yaml:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: wws
annotations:
kubernetes.io/ingress.class: "traefik"
traefik.frontend.rule.type: PathPrefixStrip
traefik.frontend.passHostHeader: "true"
traefik.backend.loadbalancer.sticky: "true"
#traefik.ingress.kubernetes.io/rule-type: ReplacePathRegex
traefik.wss.protocol: http
traefik.wss.protocol: https
spec:
rules:
- host: streambridge.local
http:
paths:
- path: /streambridge
backend:
serviceName: streambridge
servicePort: 9999
- path: /dashboard
backend:
serviceName: dashboard
servicePort: 9009
- path: /gateway
backend:
serviceName: gateway
servicePort: 8080
- path: /rdb
backend:
serviceName: rethinkdb
servicePort: 8085
Minikube命令(这项工作没有问题):
在Microk8s中,我尝试:
microk8s.kubectl apply -f https://raw.githubusercontent.com/containous/traefik/v1.7/examples/k8s/traefik-rbac.yaml
microk8s.kubectl apply -f https://raw.githubusercontent.com/containous/traefik/v1.7/examples/k8s/traefik-ds.yaml
microk8s.kubectl apply -f traefik-ui.yaml
microk8s.kubectl apply -f wws-ingress.yaml
在另一台机器上测试我的设置并看到它在那里工作后,我发现我的机器出了问题,在我的两位同事的帮助下花了大量时间在这个问题上并尝试了所有方法后,我们发现问题与我的机器中的iptable有关,我们解决了它,如下所述:
microk8s.kubectl apply -f https://raw.githubusercontent.com/containous/traefik/v1.7/examples/k8s/traefik-rbac.yaml
microk8s.kubectl apply -f https://raw.githubusercontent.com/containous/traefik/v1.7/examples/k8s/traefik-ds.yaml
microk8s.kubectl apply -f traefik-ui.yaml
microk8s.kubectl apply -f wws-ingress.yaml