Правило входа в систему Kubernetes Traefik для локального хоста

#kubernetes #traefik #traefik-ingress

Вопрос:

Я пытаюсь подключиться к панели мониторинга traefik к локальному хосту. В моем манифесте ниже будет показан порт localhost:, но я получаю только 404 ошибки. Теперь понятно, как настроить вход на локальную работу. Базовый код был настроен для запуска на AWS NLB, я пытаюсь настроить его для локального запуска. Этот манифест ниже содержит развертывание и службу для установки traefik Kubernetes.

 apiVersion: v1
kind: Namespace
metadata:
  name: traefik
---
kind: Deployment
apiVersion: apps/v1
metadata:
  name: traefik-ingress-lb
  namespace: kube-system
  labels:
    k8s-app: traefik-ingress-lb
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: traefik-ingress-lb
  template:
    metadata:
      labels:
        k8s-app: traefik-ingress-lb
        name: traefik-ingress-lb
    spec:
      # hostNetwork: true
      serviceAccountName: traefik-ingress-lb
      terminationGracePeriodSeconds: 60
      containers:
      - image: traefik:v2.5
        imagePullPolicy: IfNotPresent
        name: traefik-ingress-lb
        args:
        - --serversTransport.insecureSkipVerify=true
        - --providers.kubernetesingress=true
        - --providers.kubernetescrd
        - --entryPoints.traefik.address=:1080
        - --entryPoints.https.address=:443
        - --entrypoints.https.http.tls=true
        - --entryPoints.https.forwardedHeaders.insecure=true
        - --entryPoints.https2.address=:4443
        - --entrypoints.https2.http.tls=true
        - --entryPoints.https2.forwardedHeaders.insecure=true
        - --entryPoints.turn.address=:5349
        - --entrypoints.turn.http.tls=true
        - --entryPoints.turn.forwardedHeaders.insecure=true        
        - --api
        - --api.insecure
        - --accesslog
        - --log.level=INFO
        - --pilot.dashboard=false
        - --entryPoints.http.address=:80
        - --entrypoints.http.http.redirections.entryPoint.to=https
        - --entrypoints.http.http.redirections.entryPoint.scheme=https
        - --entrypoints.http.http.redirections.entrypoint.permanent=true
        resources:
          limits:
            memory: 3072Mi
            cpu: 1.5
          requests:
            memory: 1024Mi
            cpu: 1        
---
apiVersion: v1
kind: Service
metadata:
  name: lb
  namespace: kube-system
  annotations:
   
spec:
  type: LoadBalancer 
  externalTrafficPolicy: Local
  selector:
    k8s-app: traefik-ingress-lb
  ports:
  - name: http
    port: 80
    targetPort: 80
  - name: https
    port: 443
    targetPort: 443   
  - name: https2
    port: 4443
    targetPort: 4443
  - name: turn
    port: 5349
    targetPort: 5349
---
apiVersion: v1
kind: Service
metadata:
  name: dashboard
  namespace: traefik
spec:
  selector:
    k8s-app: traefik-ingress-lb
  ports:
  - name: dashboard
    port: 1080
    targetPort: 1080
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: traefik
  namespace: kube-system
  # annotations:
  #   ingress.kubernetes.io/whitelist-x-forwarded-for: "true"
spec:
  entryPoints:
    - https
    # - web
  routes:
  - kind: Rule
    match: "PathPrefix(`/api`) || PathPrefix(`/dashboard`)"
    # middlewares:                    
    # - name: internal-ip-whitelist             
    #   namespace: traefik            
    services:                       
    - kind: Service
      name: dashboard
      namespace: kube-system
      passHostHeader: true
      port: 1080
,,,
 

Ответ №1:

Ваш маршрут входа указывает на службу информационной панели в пространстве имен «kube-system», но служба информационной панели traefik развернута в пространстве имен «traefik». Поэтому маршрут не работает, ведущий к 404 в трафике.