简体   繁体   中英

Ingress failing to get an address

I have a node server which runs in a container inside a pod. The pod is up and running and is working fine.

Then I have a NodePort service which is used to serve the pod. The service is curl-able from inside the container and returns a response successfully.

apiVersion: v1
kind: Service
metadata:
  annotations:
    meta.helm.sh/release-name: server
    meta.helm.sh/release-namespace: default
  creationTimestamp: "2022-12-20T23:46:09Z"
  labels:
    app: server
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: ingress-nginx
    chart: server-0.1.0
    helm.sh/chart: nginx-13.2.19
    heritage: Helm
    release: server
  name: server
  namespace: default
  resourceVersion: "86325"
  uid: 9eea1b02-af20-4e79-b713-6be2683cfcf7
spec:
  clusterIP: 10.100.138.182
  clusterIPs:
  - 10.100.138.182
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - name: http
    port: 80
    nodePort: 30001
    protocol: TCP
    targetPort: 3001
  selector:
    app: server
    release: server
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}

Then I have an NGINX Ingress Controller running and an Ingress resource.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: nginx
    meta.helm.sh/release-name: server
    meta.helm.sh/release-namespace: default
  creationTimestamp: "2022-12-20T23:46:09Z"
  generation: 2
  labels:
    app.kubernetes.io/instance: server
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: server
    helm.sh/chart: server-0.1.0
  name: server
  namespace: default
  resourceVersion: "87296"
  uid: e4a597c3-3d85-402d-bf56-19858c22e7bf
spec:
  defaultBackend:
    service:
      name: server
      port:
        number: 80
  ingressClassName: nginx
status:
  loadBalancer: {}

After all this when I do kubectl get pods :

NAME                          READY   STATUS    RESTARTS      AGE
nginxserver-876bf6f87-ncnfl   1/1     Running   0             5h23m
server-7466b8f5d8-jmm57       1/1     Running   0             12m

kubectl get service :

NAME          TYPE           CLUSTER-IP       EXTERNAL-IP                                                              PORT(S)        AGE
kubernetes    ClusterIP      10.100.0.1       <none>                                                                   443/TCP        9h
nginxserver   LoadBalancer   10.100.129.213   aa486e3c823d54f4fbe8da864b55d394-674371728.us-east-2.elb.amazonaws.com   80:31573/TCP   5h23m
server        NodePort       10.100.138.182   <none>                                                                   80:30001/TCP   13m

kubectl get ingress :

NAME     CLASS   HOSTS   ADDRESS   PORTS   AGE
server   nginx   *                 80      14m

This currently shows 14m age but before this I had waited for 30m too but no address popped up.

I have tried searching a lot and found that this was associated with wrong ingress settings or wrong namespaces but none of that helped me.

What can I do to so that I can get an address for the ingress?

Thankyou!

I gave up. As a last option I thought maybe my ingress controller is not working properly. So I

helm repo add nginx-stable https://helm.nginx.com/stable
helm repo update
helm install ingress-nginx nginx-stable/nginx-ingress --set rbac.create=true

after deleting the previous one and my ingress got an idress within seconds.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM