<p>by default, nginx ingress listens to two ports 80 and 443, how to add listening on port 9898
I tried to change it in daemon set, but nothing came out
, I don 't even know where else to dig</p>

Iceforest
<p>I'm not sure what will work exactly for you, but here's a few things you can try to approach this (read carefully because nginx is confusing):</p>
<ol>
<li><p>Define <code>service</code> for your deployment, and make sure it covers port routes you want and support on deployment end:</p>
<pre><code> apiVersion: v1
 kind: Service
 metadata:
   name: web-app
   namespace: web
   labels:
     app: web-app
 spec:
   ports:
   - port: 80
     targetPort: 1337
     protocol: TCP
   selector:
     app: web-app
</code></pre>
</li>
<li><p>Refer to it in nginx ingress:</p>
<pre><code> rules:
 - host: mycoolwebapp.com
   http:
     paths:
     - path: /
       pathType: Prefix
       backend:
         service:
           name: web-app
           port:
             number: 80
</code></pre>
</li>
</ol>
<p>The catch here is that you can route <strong>ALL</strong> services via port 80 but use any target port you want, so that you can, say, add 50 ingress hosts/routes over a morning routing to port 80 and only difference they'll have is target port in <code>service</code>.<br />
3. If you are specifically unhappy with ports 80 and 443, you are welcome to edit <code>ingress-nginx-controller</code> (<code>service</code> one, because as I said nginx is confusing).<br />
4. Alternatively, you can find example of <code>ingress-nginx-controller</code> <em>service</em> on the web, customize it and apply, then connect <code>ingress</code> to it... but I advise against this because if nginx doesn't like anything you set up as custom service, it's easier to just reinstall whole helm release of it and try again.</p>
