Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如何使Traefik与Microk8s兼容_Kubernetes_Yaml_Traefik_Minikube_Microk8s - Fatal编程技术网

Kubernetes 如何使Traefik与Microk8s兼容

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,

我在Minikube上有一个工作设置,Traefik作为入口控制器。我尝试在Microk8s上使用该设置,但Traefik无法工作,尽管我可以看到Traefik仪表板,它显示一切正常,但每次尝试使用入口URL时,我都会面临超时,但如果我使用该服务的端点IP(我可以在Traefik仪表板中看到)我可以使用该服务,但不能完全使用。我可以访问
IP/service1
,但无法访问其任何子URL,
IP/service1/sub-service1
不工作

我还尝试了
microk8s.enable ingres
,但它为我创建了一个nginx入口,然后我禁用了它,因为我想使用traefik

我是否需要更改配置,使其与Microk8s兼容?如果是,怎么做

我必须提到,我有两个入口文件:

  • traefik ui.yaml
    :它包含我的traefik的服务和入口。我使用此服务+入口来访问traefik仪表板,正如我提到的,它可以工作
  • wws-ingres.yaml
    :是我的主要入口,它可以与kubernetes内部的组件进行通信,但这是不起作用的部分
我的yaml文件:

traefik-ui.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