私は、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