0

I have deployed the kubernetes cluster on vagrant machine with config as: one master and two worker nodes. Two services are deployed with named as nodeport-svc-rc and nodeport-svc-rs

Services config:

# nodeport-svc-rc
apiVersion: v1
kind: Service
metadata:
  name: nodeport-svc-rc
spec:
  type: NodePort
  ports:
  - port: 5001
    targetPort: 5001
    nodePort: 30001
  selector:
    app: controller

# nodeport-svc-rs
apiVersion: v1
kind: Service
metadata:
  name: nodeport-svc-rs
spec:
  type: NodePort
  ports:
  - port: 5002
    targetPort: 5002
    nodePort: 30002
  selector:
    app: controller-rs

Ingress Config:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    kubernetes.io/ingress.class: traefik
    ingress.kubernetes.io/auth-type: "basic"
    ingress.kubernetes.io/auth-secret: "mysecret"
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /demo
            backend:
              serviceName: nodeport-svc-rc
              servicePort: 5001
          - path: /demof
            backend:
              serviceName: nodeport-svc-rs
              servicePort: 5002

Traefik is able to detect the ingress resource on its dashboard as backends services:

Traefik Dashboard Image

But no Frontends have been detected on dashboard and no IP address are detected on Backends.

Entry in /etc/hosts file: XXX.XXX.X.X example.com

I'm unable to route traffic using ingress. If i hit from browser example.com/demo, error shows Site can't be reached where i'm wrong? can someone help me.

# sudo kubectl describe ing
Name:             ingress
Namespace:        default
Address:          
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host         Path  Backends
  ----         ----  --------
  example.com  
               /demo    nodeport-svc-rc:5001 (10.244.171.95:5001,10.244.171.96:5001,10.244.235.150:5001)
               /demof   nodeport-svc-rs:5002 (10.244.171.98:5002,10.244.235.157:5002,10.244.235.158:5002)
Annotations:   ingress.kubernetes.io/auth-secret: mysecret
               ingress.kubernetes.io/auth-type: basic
               kubernetes.io/ingress.class: traefik
Events:        <none>

And when i hit directly on nodePort service example.com:30001 or example.com:30002 it successfully give response.

Edited: Below Traefik controller config:

kind: Deployment
apiVersion: apps/v1
metadata:
  name: traefik-ingress-controller
  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:
      serviceAccountName: traefik-ingress-controller
      terminationGracePeriodSeconds: 60
      containers:
      - image: traefik:v1.7.26-alpine
        name: traefik-ingress-lb
        args:
        - --web
        - --kubernetes
Bharat Gera
  • 800
  • 1
  • 4
  • 13
  • How did you install the Traefik ingress controller? Also, do you get any errors in the `traefik-ingress-controller` logs? – BogdanL Aug 13 '20 at 12:30
  • had created a Deployment controller and controlling pod of container "traefik:v1.7.26-alpine", updating the traefik yaml in above. Please check once. – Bharat Gera Aug 14 '20 at 08:04
  • Did you also create the `traefik-ingress-controller` `ServiceAccount` and the [RBAC configuration](https://github.com/containous/traefik/blob/v1.7/examples/k8s/traefik-rbac.yaml)? – BogdanL Aug 14 '20 at 08:12
  • Yes I created the serviceAccount and RBAC. – Bharat Gera Aug 14 '20 at 10:11

0 Answers0