<p>I am new to k8s 
I have a deployment file that goes below </p>

<pre><code>apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      component: web
  template:
    metadata:
      labels:
        component: web
    spec:
      containers:
        - name: jenkins
          image: jenkins
          ports:
            - containerPort: 8080
            - containerPort: 50000

</code></pre>

<p>My Service File is as following:</p>

<pre><code>apiVersion: v1
kind: Service
metadata:
   name: jenkins-svc
spec:
   type: ClusterIP
   ports:
   - port: 80
     targetPort: 8080
     name: http
   selector:
      component: web

</code></pre>

<p>My Ingress File is</p>

<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: jenkins-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: jenkins.xyz.com
    http:
      paths:
      - path: /
        backend:
          serviceName: jenkins-svc
          servicePort: 80


</code></pre>

<p>I am using the nginx ingress project and my cluster is created using kubeadm with 3 nodes
<a href="https://kubernetes.github.io/ingress-nginx/deploy/" rel="nofollow noreferrer">nginx ingress</a></p>

<p>I first ran the mandatory command </p>

<pre><code>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
</code></pre>

<p>when I tried hitting jenkins.xyz.com it didn't work 
when I tried the command </p>

<pre><code>  kubectl get ing
</code></pre>

<p>the ing resource doesnt get an IP address assigned to it </p>

<p>The ingress resource is nothing but the configuration of a reverse proxy (the <code>Ingress controller</code>).</p>

<p>It is normal that the <code>Ingress</code> doesn't get an IP address assigned.</p>

<p>What you need to do is connect to your ingress controller instance(s).</p>

<p>In order to do so, you need to understand how they're exposed in your cluster.</p>

<p>Considering the YAML you claim you used to get the ingress controller running, there is no sign of exposition to the outside network.</p>

<p>You need at least to define a <code>Service</code> to expose your controller (might be a load balancer if the provider where you put your cluster supports it), you can use <code>HostNetwork: true</code> or a <code>NodePort</code>.</p>

<p>To use the latest option (<code>NodePort</code>) you could apply this YAML:</p>

<p><a href="https://github.com/kubernetes/ingress-nginx/blob/master/deploy/static/provider/baremetal/service-nodeport.yaml" rel="nofollow noreferrer">https://github.com/kubernetes/ingress-nginx/blob/master/deploy/static/provider/baremetal/service-nodeport.yaml</a></p>

<p>I suggest you read the Ingress documentation page to get a clearer idea about how all this stuff works.</p>

<p><a href="https://kubernetes.io/docs/concepts/services-networking/ingress/" rel="nofollow noreferrer">https://kubernetes.io/docs/concepts/services-networking/ingress/</a></p>
