Nodeport works but ingress doesn't

Viewed 23

i am new to kubernetes and i am tring to settup a web app for production i tested an nginx app it works perfectly in both nodeport and ingress. when i setupped my web app exposing it using nodeport it works but when i expose it via ingress it doesn't work. know that i deleted all nginx app deployment and service and ingress but my web app still the same(WORK via NODEPORT AND NOT via INGRESS) any help getting this to work, i am confused thanks

THIS IS THE NGINX YAML CODE (WORK via BOTH NODEPORT AND INGRESS)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:stable
          imagePullPolicy: Always
          ports:
          - containerPort: 80
            name: web
            protocol: TCP
          readinessProbe:
            httpGet:
              port: web
              path: /

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-nodeport
  namespace: default
spec:
  type: NodePort
  selector:
    # app: nginx
    app: mruser-dev
  ports:
    - name: web
      port: 80
      targetPort: web
      nodePort: 31122
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx-nodeport 
            port:
              number: 80

THIS IS MY WEB APP CODE (WORK via NODEPORT AND NOT via INGRESS)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mywebapp-dev
spec:
  replicas: 2
  selector:
    matchLabels:
      app: mywebapp-dev
  template: 
    metadata:
      labels:
        app: mywebapp-dev
      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/path: /metrics
        prometheus.io/port: "80"
        scheduler.alpha.kubernetes.io/affinity: >
          {
            "nodeAffinity": {
              "requiredDuringSchedulingIgnoredDuringExecution": {
                "nodeSelectorTerms": [
                  {
                    "matchExpressions": [
                      {
                        "key": "kubernetes.io/hostname",
                        "operator": "In",
                        "values": ["server-node-1"]
                      }
                    ]
                  }
                ]
              }
            }
          }
    spec:
      volumes:
        - name: logs
          emptyDir: {}
        - name: cache
          emptyDir: {}
        - name: testing
          emptyDir: {}
        - name: sessions
          emptyDir: {}
        - name: views
          emptyDir: {}
        - name: mywebapp-dev-nfsvolume
          nfs:
            server: 10.0.0.20
            path: /var/www/html/misteruser-dev
        - name: mywebapp-nginx-nfsvolume
          nfs:
            server: 10.0.0.20
            path: /var/www/nginx
      securityContext:
        fsGroup: 82
      initContainers:
        - name: database-migrations
          image: mywebapp-dev-laravel-fpm:8.1-fpm-alpine
          imagePullPolicy: Never
          envFrom:
            - configMapRef:
                name: mywebapp-dev-laravel
            - secretRef:
                name: mywebapp-dev-laravel
          volumeMounts: 
            - name: mywebapp-dev-nfsvolume
              mountPath: /var/www/html/
          command:
            - "php"
          args:
            - "artisan"
            - "migrate"
            - "--force"
      containers:
        - name: nginx
          imagePullPolicy: Never
          image: mywebapp-dev-laravel-nginx:stable-alpine          
          volumeMounts:
            - name: mywebapp-nginx-nfsvolume
              mountPath: /etc/nginx/conf.d/
          resources:
            limits:
              cpu: 200m
              memory: 50M
          ports:
          - containerPort: 80
            name: web            
            protocol: TCP
          readinessProbe:
            httpGet:
              port: web
              path: /
        - name: fpm
          imagePullPolicy: Never
          envFrom:
            - configMapRef:
                name: mywebapp-dev-laravel
            - secretRef:
                name: mywebapp-dev-laravel
          securityContext:
            runAsUser: 82
            readOnlyRootFilesystem: true
          volumeMounts:
            - name: logs
              mountPath: /var/www/html/storage/logs
            - name: cache
              mountPath: /var/www/html/storage/framework/cache
            - name: sessions
              mountPath: /var/www/html/storage/framework/sessions
            - name: views
              mountPath: /var/www/html/storage/framework/views
            - name: testing
              mountPath: /var/www/html/storage/framework/testing
            - name: mywebapp-dev-nfsvolume
              mountPath: /var/www/html/
          resources: 
            limits:
              cpu: 500m
              memory: 200Mi
          image: mywebapp-dev-laravel-fpm:8.1-fpm-alpine
          ports:
            - containerPort: 9000

---
apiVersion: v1
kind: Service
metadata:
  name: mywebapp-dev-svc
  namespace: default
spec:
  type: NodePort
  selector:
    app: mywebapp-dev
  ports:
    - name: web
      port: 80
      targetPort: 80
      nodePort: 31112
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: mywebapp-nginx-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: mywebapp-dev-svc
            port:
              number: 80
0 Answers
Related