Home > Mobile >  Ingress not forwarding traffic to pod
Ingress not forwarding traffic to pod

Time:04-12

Ingress is not forwarding traffic to pods. Application is deployed on Azure Internal network. I can access app successfully using pod Ip and port but when trying Ingress IP/ Host I am getting 404 not found. I do not see any error in Ingress logs. Bellow are my config files. Please help me if I am missing anything or a how I can troubleshoot to find issue.

Deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: aks-helloworld-one
spec:
  replicas: 1
  selector:
    matchLabels:
      app: aks-helloworld-one
  template:
    metadata:
      labels:
        app: aks-helloworld-one
    spec:
      containers:
      - name: aks-helloworld-one
        image: <image>
        ports:
            - containerPort: 8290
              protocol: "TCP"
        env:
        - name: env1
          valueFrom:
              secretKeyRef:
                name: configs
                key: env1
        volumeMounts:
         - mountPath: "mnt/secrets-store"
           name: secrets-mount
      volumes:      
        - name: secrets-mount
          csi:
            driver: secrets-store.csi.k8s.io
            readOnly: true
            volumeAttributes:
              secretProviderClass: "azure-keyvault"
      imagePullSecrets:
        - name: acr-secret
---
apiVersion: v1
kind: Service
metadata:
  name: aks-helloworld-one
spec:
  type: ClusterIP
  ports:
  - name: http
    protocol: TCP
    port: 8080
    targetPort: 8290
  selector:
    app: aks-helloworld-one

Ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: hello-world-ingress
  namespace: ingress-basic
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: aks-helloworld
            port:
              number: 80
  

CodePudding user response:

You have mentioned the wrong service name under the ingress definition. Service name should be aks-helloworld-one as per the service definition.

CodePudding user response:

Correct your service name and service port in ingress.yaml.

spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            # wrong: name: aks-helloworld
            name: aks-helloworld-one  
            port:
              # wrong: number: 80
              number: 8080

Actually, you can use below command to confirm if ingress has any endpoint.

kubectl describe ingress hello-world-ingress -n ingress-basic
  • Related