0

私は、Traefik をイングレス コントローラーとして Minikube をセットアップしています。Microk8s でその設定を使用しようとしましたが、Traefik は機能しません。Traefik ダッシュボードは表示されますが、すべてが機能していると表示されますが、イングレス URL を使用しようとするたびにタイムアウトに直面しますが、エンドポイント IP を使用するとそのサービスの (traefik ダッシュボードで確認できます) そのサービスにアクセスできますが、完全にはアクセスできません。アクセスできますIP/service1が、そのサブ URL のいずれにもアクセスできず、機能していIP/service1/sub-service1ません。

私も試しmicrok8s.enable ingressてみましたが、nginxイングレスが作成され、traefikを使用したいので無効にしました。

Microk8s と互換性があるように構成を変更する必要がありますか? はいの場合、どのように?

2 つのイングレス ファイルがあることに言及する必要があります。

  • traefik-ui.yaml: 私の traefik のサービスとイングレスの両方が含まれています。このサービス+イングレスを使用してtraefikダッシュボードにアクセスすると、前述のように機能します
  • wws-ingress.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 コマンド (これは問題なく動作します):

kubectl apply -f https://raw.githubusercontent.com/containous/traefik/v1.7/examples/k8s/traefik-rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/containous/traefik/v1.7/examples/k8s/traefik-ds.yaml

kubectl apply -f traefik-ui.yaml
kubectl apply -f wws-ingress.yaml

そして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
4

1 に答える 1