Skip to content

Kubernetes NGINX Ingress Controller not working on Docker EE 2.0 #417

Closed
@frjaraur

Description

@frjaraur

Describe the bug

Kubernetes NGINX Ingress Controller not working on Docker EE 2.0

$ kubectl get pods -n nginx-ingress
NAME                             READY     STATUS             RESTARTS   AGE
nginx-ingress-7cd9cbbd9f-5sx8r   0/1       CrashLoopBackOff   9          26m


$ kubectl logs -n nginx-ingress nginx-ingress-7cd9cbbd9f-5sx8r
I1104 19:11:39.596930       1 main.go:116] Starting NGINX Ingress controller Version=edge GitCommit=8fe1653
I1104 19:11:39.658459       1 nginx.go:380] Writing NGINX conf to /etc/nginx/nginx.conf
I1104 19:11:39.658490       1 nginx.go:383] 
user  nginx;
worker_processes  auto;

daemon off;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    server_names_hash_max_size 1024;
    server_names_hash_bucket_size 64;

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

    
    
    
    

 
    server {
        listen 80 default_server;
        listen 443 ssl default_server;

        ssl_certificate /etc/nginx/secrets/default;
        ssl_certificate_key /etc/nginx/secrets/default;

        server_name _;
        server_tokens "on";
        access_log off;

        

        location / {
           return 404;
        }
    }
    # NGINX Plus APIs
    server {
        listen 8080;

        root /usr/share/nginx/html;

        access_log off;

        location  = /dashboard.html {
        }
        
        allow 127.0.0.1;
        
        deny all;
        location /api {
            api write=off;
        }
    }

    # NGINX Plus API over unix socket
    server {
        listen unix:/var/run/nginx-plus-api.sock;
        access_log off;

        # $config_version_mismatch is defined in /etc/nginx/config-version.conf
        location /configVersionCheck {
            if ($config_version_mismatch) {
                return 503;
            }
            return 200;
        }

        location /api {
            api write=on;
        }
    }

    include /etc/nginx/config-version.conf;
    include /etc/nginx/conf.d/*.conf;
}

stream {
    log_format  stream-main  '$remote_addr [$time_local] '
                      '$protocol $status $bytes_sent $bytes_received '
                      '$session_time';

    access_log  /var/log/nginx/stream-access.log  stream-main;

     
}
I1104 19:11:39.659001       1 nginx.go:397] The main NGINX config file has been updated
I1104 19:11:39.659345       1 nginx.go:432] Writing config version to /etc/nginx/config-version.conf
I1104 19:11:39.659368       1 nginx.go:435] server {
    listen unix:/var/run/nginx-config-version.sock;
    access_log off;

    location /configVersion {
        return 200 0;
    }
}
map $http_x_expected_config_version $config_version_mismatch {
	"0" "";
	default "mismatch";
}
I1104 19:11:39.659483       1 nginx.go:454] The config version file has been updated.
2018/11/04 19:11:39 [notice] 14#14: using the "epoll" event method
2018/11/04 19:11:39 [notice] 14#14: nginx/1.15.2 (nginx-plus-r16)
2018/11/04 19:11:39 [notice] 14#14: built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) 
2018/11/04 19:11:39 [notice] 14#14: OS: Linux 4.4.0-116-generic
2018/11/04 19:11:39 [notice] 14#14: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2018/11/04 19:11:39 [notice] 14#14: start worker processes
2018/11/04 19:11:39 [notice] 14#14: start worker process 15
2018/11/04 19:11:39 [notice] 14#14: start worker process 16
I1104 19:11:40.162107       1 controller.go:127] Nginx Ingress Controller has class: nginx
I1104 19:11:40.165545       1 reflector.go:202] Starting reflector *v1.Secret (30s) from github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:251
I1104 19:11:40.165570       1 reflector.go:240] Listing and watching *v1.Secret from github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:251
I1104 19:11:40.165890       1 reflector.go:202] Starting reflector *v1.Service (30s) from github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:249
I1104 19:11:40.165899       1 reflector.go:240] Listing and watching *v1.Service from github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:249
I1104 19:11:40.166099       1 reflector.go:202] Starting reflector *v1.Endpoints (30s) from github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:250
I1104 19:11:40.166107       1 reflector.go:240] Listing and watching *v1.Endpoints from github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:250
I1104 19:11:40.166308       1 reflector.go:202] Starting reflector *v1.ConfigMap (30s) from github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:253
I1104 19:11:40.166316       1 reflector.go:240] Listing and watching *v1.ConfigMap from github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:253
I1104 19:11:40.166509       1 reflector.go:202] Starting reflector *v1beta1.Ingress (30s) from github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:255
I1104 19:11:40.166517       1 reflector.go:240] Listing and watching *v1beta1.Ingress from github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:255
I1104 19:11:40.267060       1 endpoint.go:17] Adding endpoints: kube-scheduler
I1104 19:11:40.271144       1 queue.go:54] Adding an element with a key: kube-system/kube-scheduler
I1104 19:11:40.271217       1 endpoint.go:17] Adding endpoints: kube-controller-manager
I1104 19:11:40.271240       1 queue.go:54] Adding an element with a key: kube-system/kube-controller-manager
I1104 19:11:40.271263       1 endpoint.go:17] Adding endpoints: kube-dns
I1104 19:11:40.271281       1 queue.go:54] Adding an element with a key: kube-system/kube-dns
I1104 19:11:40.271306       1 endpoint.go:17] Adding endpoints: blue-svc
I1104 19:11:40.271325       1 queue.go:54] Adding an element with a key: default/blue-svc
I1104 19:11:40.271344       1 endpoint.go:17] Adding endpoints: red-svc
I1104 19:11:40.271362       1 queue.go:54] Adding an element with a key: default/red-svc
I1104 19:11:40.271384       1 endpoint.go:17] Adding endpoints: nginx-ingress
I1104 19:11:40.271402       1 queue.go:54] Adding an element with a key: nginx-ingress/nginx-ingress
I1104 19:11:40.271424       1 endpoint.go:17] Adding endpoints: kubernetes
I1104 19:11:40.271442       1 queue.go:54] Adding an element with a key: default/kubernetes
I1104 19:11:40.271930       1 queue.go:82] Syncing kube-system/kube-scheduler
I1104 19:11:40.271954       1 controller.go:441] Syncing kube-system/kube-scheduler
I1104 19:11:40.271972       1 controller.go:269] Syncing endpoints kube-system/kube-scheduler
I1104 19:11:40.271992       1 queue.go:82] Syncing kube-system/kube-controller-manager
I1104 19:11:40.272009       1 controller.go:441] Syncing kube-system/kube-controller-manager
I1104 19:11:40.272025       1 controller.go:269] Syncing endpoints kube-system/kube-controller-manager
I1104 19:11:40.272043       1 queue.go:82] Syncing kube-system/kube-dns
I1104 19:11:40.272059       1 controller.go:441] Syncing kube-system/kube-dns
I1104 19:11:40.272075       1 controller.go:269] Syncing endpoints kube-system/kube-dns
I1104 19:11:40.272092       1 queue.go:82] Syncing default/blue-svc
I1104 19:11:40.272118       1 controller.go:441] Syncing default/blue-svc
I1104 19:11:40.272140       1 controller.go:269] Syncing endpoints default/blue-svc
I1104 19:11:40.272178       1 queue.go:82] Syncing default/red-svc
I1104 19:11:40.272212       1 controller.go:441] Syncing default/red-svc
I1104 19:11:40.272229       1 controller.go:269] Syncing endpoints default/red-svc
I1104 19:11:40.272256       1 queue.go:82] Syncing nginx-ingress/nginx-ingress
I1104 19:11:40.272376       1 controller.go:441] Syncing nginx-ingress/nginx-ingress
I1104 19:11:40.272394       1 controller.go:269] Syncing endpoints nginx-ingress/nginx-ingress
I1104 19:11:40.272412       1 queue.go:82] Syncing default/kubernetes
I1104 19:11:40.272428       1 controller.go:441] Syncing default/kubernetes
I1104 19:11:40.272444       1 controller.go:269] Syncing endpoints default/kubernetes
I1104 19:11:40.274935       1 service.go:23] Adding service: kubernetes
I1104 19:11:40.276590       1 controller.go:885] ignoring service kubernetes: No ingress for service kubernetes
I1104 19:11:40.276627       1 service.go:23] Adding service: kube-dns
I1104 19:11:40.276649       1 controller.go:885] ignoring service kube-dns: No ingress for service kube-dns
I1104 19:11:40.276668       1 service.go:23] Adding service: blue-svc
I1104 19:11:40.276685       1 controller.go:885] ignoring service blue-svc: No ingress for service blue-svc
I1104 19:11:40.276706       1 service.go:23] Adding service: red-svc
I1104 19:11:40.276723       1 controller.go:885] ignoring service red-svc: No ingress for service red-svc
I1104 19:11:40.276741       1 service.go:23] Adding service: nginx-ingress
I1104 19:11:40.276758       1 controller.go:885] ignoring service nginx-ingress: No ingress for service nginx-ingress
I1104 19:11:40.280095       1 secret.go:20] Adding Secret: default-server-secret
I1104 19:11:40.280109       1 queue.go:54] Adding an element with a key: nginx-ingress/default-server-secret
I1104 19:11:40.280130       1 queue.go:82] Syncing nginx-ingress/default-server-secret
I1104 19:11:40.280134       1 controller.go:441] Syncing nginx-ingress/default-server-secret
I1104 19:11:40.280147       1 controller.go:642] Found 0 Ingresses with Secret nginx-ingress/default-server-secret
I1104 19:11:40.280150       1 controller.go:655] Adding / Updating Secret: nginx-ingress/default-server-secret
I1104 19:11:40.283288       1 nginx.go:432] Writing config version to /etc/nginx/config-version.conf
I1104 19:11:40.283300       1 nginx.go:435] server {
    listen unix:/var/run/nginx-config-version.sock;
    access_log off;

    location /configVersion {
        return 200 1;
    }
}
map $http_x_expected_config_version $config_version_mismatch {
	"1" "";
	default "mismatch";
}
I1104 19:11:40.283527       1 nginx.go:454] The config version file has been updated.
I1104 19:11:40.283536       1 nginx.go:308] Reloading nginx. configVersion: 1
I1104 19:11:40.283539       1 nginx.go:358] executing nginx -s reload
I1104 19:11:40.289534       1 configMap.go:18] Adding ConfigMap: nginx-config
I1104 19:11:40.289613       1 queue.go:54] Adding an element with a key: nginx-ingress/nginx-config
I1104 19:11:40.289646       1 ingress.go:20] Adding Ingress: colors-ingress
I1104 19:11:40.289667       1 queue.go:54] Adding an element with a key: default/colors-ingress
2018/11/04 19:11:40 [notice] 22#22: signal process started
2018/11/04 19:11:40 [notice] 14#14: signal 1 (SIGHUP) received from 22, reconfiguring
2018/11/04 19:11:40 [notice] 14#14: reconfiguring
2018/11/04 19:11:40 [notice] 14#14: using the "epoll" event method
2018/11/04 19:11:40 [notice] 14#14: start worker processes
2018/11/04 19:11:40 [notice] 14#14: start worker process 23
2018/11/04 19:11:40 [notice] 14#14: start worker process 24
2018/11/04 19:11:40 [notice] 15#15: gracefully shutting down
2018/11/04 19:11:40 [notice] 16#16: gracefully shutting down
2018/11/04 19:11:40 [notice] 15#15: exiting
2018/11/04 19:11:40 [notice] 16#16: exiting
2018/11/04 19:11:40 [notice] 16#16: exit
2018/11/04 19:11:40 [notice] 15#15: exit
I1104 19:11:40.426470       1 client.go:69] success, version 1 ensured. iterations: 5. took: 125ms
I1104 19:11:40.426526       1 queue.go:82] Syncing nginx-ingress/nginx-config
I1104 19:11:40.426534       1 controller.go:441] Syncing nginx-ingress/nginx-config
I1104 19:11:40.426538       1 controller.go:336] Syncing configmap nginx-ingress/nginx-config
I1104 19:11:40.426681       1 nginx.go:380] Writing NGINX conf to /etc/nginx/nginx.conf
I1104 19:11:40.426693       1 nginx.go:383] 
user  nginx;
worker_processes  auto;

daemon off;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    server_names_hash_max_size 1024;
    server_names_hash_bucket_size 64;

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

    
    
    
    

 
    server {
        listen 80 default_server;
        listen 443 ssl default_server;

        ssl_certificate /etc/nginx/secrets/default;
        ssl_certificate_key /etc/nginx/secrets/default;

        server_name _;
        server_tokens "on";
        access_log off;

        

        location / {
           return 404;
        }
    }
    # NGINX Plus APIs
    server {
        listen 8080;

        root /usr/share/nginx/html;

        access_log off;

        location  = /dashboard.html {
        }
        
        allow 127.0.0.1;
        
        deny all;
        location /api {
            api write=off;
        }
    }

    # NGINX Plus API over unix socket
    server {
        listen unix:/var/run/nginx-plus-api.sock;
        access_log off;

        # $config_version_mismatch is defined in /etc/nginx/config-version.conf
        location /configVersionCheck {
            if ($config_version_mismatch) {
                return 503;
            }
            return 200;
        }

        location /api {
            api write=on;
        }
    }

    include /etc/nginx/config-version.conf;
    include /etc/nginx/conf.d/*.conf;
}

stream {
    log_format  stream-main  '$remote_addr [$time_local] '
                      '$protocol $status $bytes_sent $bytes_received '
                      '$session_time';

    access_log  /var/log/nginx/stream-access.log  stream-main;

     
}
I1104 19:11:40.426784       1 nginx.go:397] The main NGINX config file has been updated
I1104 19:11:40.427219       1 nginx.go:432] Writing config version to /etc/nginx/config-version.conf
I1104 19:11:40.427238       1 nginx.go:435] server {
    listen unix:/var/run/nginx-config-version.sock;
    access_log off;

    location /configVersion {
        return 200 2;
    }
}
map $http_x_expected_config_version $config_version_mismatch {
	"2" "";
	default "mismatch";
}
I1104 19:11:40.427448       1 nginx.go:454] The config version file has been updated.
I1104 19:11:40.427480       1 nginx.go:308] Reloading nginx. configVersion: 2
I1104 19:11:40.427489       1 nginx.go:358] executing nginx -s reload
I1104 19:11:40.435157       1 event.go:218] Event(v1.ObjectReference{Kind:"Secret", Namespace:"nginx-ingress", Name:"default-server-secret", UID:"3c77a94b-e060-11e8-bada-0242ac110010", APIVersion:"v1", ResourceVersion:"12524", FieldPath:""}): type: 'Normal' reason: 'Updated' the default server Secret nginx-ingress/default-server-secret was updated
2018/11/04 19:11:40 [notice] 14#14: signal 17 (SIGCHLD) received from 16
2018/11/04 19:11:40 [notice] 14#14: worker process 16 exited with code 0
2018/11/04 19:11:40 [notice] 14#14: signal 29 (SIGIO) received
2018/11/04 19:11:40 [notice] 14#14: signal 17 (SIGCHLD) received from 15
2018/11/04 19:11:40 [notice] 14#14: worker process 15 exited with code 0
2018/11/04 19:11:40 [notice] 14#14: signal 29 (SIGIO) received
2018/11/04 19:11:40 [notice] 26#26: signal process started
2018/11/04 19:11:40 [notice] 14#14: signal 1 (SIGHUP) received from 26, reconfiguring
2018/11/04 19:11:40 [notice] 14#14: reconfiguring
2018/11/04 19:11:40 [notice] 14#14: using the "epoll" event method
2018/11/04 19:11:40 [notice] 14#14: start worker processes
2018/11/04 19:11:40 [notice] 14#14: start worker process 27
2018/11/04 19:11:40 [notice] 14#14: start worker process 28
2018/11/04 19:11:40 [notice] 23#23: gracefully shutting down
2018/11/04 19:11:40 [notice] 24#24: gracefully shutting down
2018/11/04 19:11:40 [notice] 24#24: exiting
2018/11/04 19:11:40 [notice] 23#23: exiting
2018/11/04 19:11:40 [notice] 23#23: exit
2018/11/04 19:11:40 [notice] 24#24: exit
I1104 19:11:40.560098       1 client.go:69] success, version 2 ensured. iterations: 4. took: 100ms
I1104 19:11:40.560169       1 queue.go:82] Syncing default/colors-ingress
I1104 19:11:40.560180       1 controller.go:441] Syncing default/colors-ingress
I1104 19:11:40.560193       1 controller.go:511] Adding or Updating Ingress: default/colors-ingress
I1104 19:11:40.560521       1 event.go:218] Event(v1.ObjectReference{Kind:"ConfigMap", Namespace:"nginx-ingress", Name:"nginx-config", UID:"40d824f8-e060-11e8-bada-0242ac110010", APIVersion:"v1", ResourceVersion:"12533", FieldPath:""}): type: 'Normal' reason: 'Updated' Configuration from nginx-ingress/nginx-config was updated 
2018/11/04 19:11:40 [notice] 14#14: signal 17 (SIGCHLD) received from 24
2018/11/04 19:11:40 [notice] 14#14: worker process 24 exited with code 0
2018/11/04 19:11:40 [notice] 14#14: signal 29 (SIGIO) received
2018/11/04 19:11:40 [notice] 14#14: signal 17 (SIGCHLD) received from 23
2018/11/04 19:11:40 [notice] 14#14: worker process 23 exited with code 0
2018/11/04 19:11:40 [notice] 14#14: signal 29 (SIGIO) received
E1104 19:11:40.630927       1 runtime.go:66] Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)
/go/src/github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:72
/go/src/github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:65
/go/src/github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:51
/usr/local/go/src/runtime/asm_amd64.s:573
/usr/local/go/src/runtime/panic.go:502
/usr/local/go/src/runtime/panic.go:63
/usr/local/go/src/runtime/signal_unix.go:388
/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:1046
/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:1036
/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:997
/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:554
/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:445
/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:125
/go/src/github.com/nginxinc/kubernetes-ingress/internal/queue/queue.go:83
/go/src/github.com/nginxinc/kubernetes-ingress/internal/queue/queue.go:37
/go/src/github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133
/go/src/github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134
/go/src/github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88
/go/src/github.com/nginxinc/kubernetes-ingress/internal/queue/queue.go:37
/usr/local/go/src/runtime/asm_amd64.s:2361
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0xe892fd]

goroutine 39 [running]:
github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0)
	/go/src/github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:58 +0x107
panic(0xfabe40, 0x18a4150)
	/usr/local/go/src/runtime/panic.go:502 +0x229
github.com/nginxinc/kubernetes-ingress/internal/controller.findProbeForPods(0xc4208d8000, 0x3, 0x4, 0xc4204781e0, 0xc4202adea0)
	/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:1046 +0x1dd
github.com/nginxinc/kubernetes-ingress/internal/controller.(*LoadBalancerController).getHealthChecksForIngressBackend(0xc4200d4c60, 0xc4203a5930, 0xc420316870, 0x7, 0xc420386a28)
	/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:1036 +0x222
github.com/nginxinc/kubernetes-ingress/internal/controller.(*LoadBalancerController).createIngress(0xc4200d4c60, 0xc420386840, 0x10f5bc2, 0x20, 0x18d7fe0)
	/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:997 +0x9c5
github.com/nginxinc/kubernetes-ingress/internal/controller.(*LoadBalancerController).syncIng(0xc4200d4c60, 0x0, 0xc42032bca0, 0x16)
	/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:554 +0xaba
github.com/nginxinc/kubernetes-ingress/internal/controller.(*LoadBalancerController).sync(0xc4200d4c60, 0x0, 0xc42032bca0, 0x16)
	/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:445 +0x164
github.com/nginxinc/kubernetes-ingress/internal/controller.(*LoadBalancerController).(github.com/nginxinc/kubernetes-ingress/internal/controller.sync)-fm(0x0, 0xc42032bca0, 0x16)
	/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:125 +0x48
github.com/nginxinc/kubernetes-ingress/internal/queue.(*TaskQueue).worker(0xc4201aad60)
	/go/src/github.com/nginxinc/kubernetes-ingress/internal/queue/queue.go:83 +0xe9
github.com/nginxinc/kubernetes-ingress/internal/queue.(*TaskQueue).(github.com/nginxinc/kubernetes-ingress/internal/queue.worker)-fm()
	/go/src/github.com/nginxinc/kubernetes-ingress/internal/queue/queue.go:37 +0x2a
github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1(0xc4202787a8)
	/go/src/github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133 +0x54
github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc4206dffa8, 0x3b9aca00, 0x0, 0x1, 0xc42016e480)
	/go/src/github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134 +0xbd
github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/wait.Until(0xc4202787a8, 0x3b9aca00, 0xc42016e480)
	/go/src/github.com/nginxinc/kubernetes-ingress/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88 +0x4d
github.com/nginxinc/kubernetes-ingress/internal/queue.(*TaskQueue).Run(0xc4201aad60, 0x3b9aca00, 0xc42016e480)
	/go/src/github.com/nginxinc/kubernetes-ingress/internal/queue/queue.go:37 +0x55
created by github.com/nginxinc/kubernetes-ingress/internal/controller.(*LoadBalancerController).Run
	/go/src/github.com/nginxinc/kubernetes-ingress/internal/controller/controller.go:256 +0x152

To Reproduce
Steps to reproduce the behavior:

  1. Create Namespace

  2. Create Service Account

  3. Create Role in UCP ith following Operations:


Name
nginx-ingress

Kubernetes Config Map Operations
Kubernetes Config Map Create    
Kubernetes Config Map Get    
Kubernetes Config Map List    
Kubernetes Config Map Update    
Kubernetes Config Map Watch    

Kubernetes Endpoint Operations
Kubernetes Endpoint Get    
Kubernetes Endpoint List    
Kubernetes Endpoint Watch    

Kubernetes Event Operations
Kubernetes Event Create    
Kubernetes Event Patch    

Kubernetes Ingress Operations
Kubernetes Ingress Get    
Kubernetes Ingress List    
Kubernetes Ingress Watch    

Kubernetes Ingress/status Operations
Kubernetes Ingress/status Update    

Kubernetes Pod Operations
Kubernetes Pod List    

Kubernetes Secret Operations
Kubernetes Secret Get    
Kubernetes Secret List    
Kubernetes Secret Watch    

Kubernetes Service Operations
Kubernetes Service Get    
Kubernetes Service List    
Kubernetes Service Watch    

  1. Create Role using nginx-ingress grants on nginx-ingress service account.

  2. Deploy Ingress Controller Deployment

kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-config
  namespace: nginx-ingress
data:
  server-names-hash-bucket-size: "64" # default value depends on the size of the processor’s cache line. See http://nginx.org/en/docs/http/ngx_http_core_module.html#server_names_hash_bucket_size
  server-names-hash-max-size: "1024" # default is "512". See http://nginx.org/en/docs/http/ngx_http_core_module.html#server_names_hash_max_size

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-ingress
  namespace: nginx-ingress
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-ingress
  template:
    metadata:
      labels:
        app: nginx-ingress
    spec:
      serviceAccountName: nginx-ingress
      containers:
      - image:  XXXXXXXXXX/nginx-ingress-plus:edge
        imagePullPolicy: Always
        name: nginx-plus-ingress
        ports:
        - name: http
          containerPort: 80
        - name: https
          containerPort: 443
        env:
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        args:
          - -nginx-plus
          - -nginx-configmaps=$(POD_NAMESPACE)/nginx-config
          - -default-server-tls-secret=$(POD_NAMESPACE)/default-server-secret
          - -v=3 # Enables extensive logging. Useful for trooublshooting.
         #- -report-ingress-status
         #- -external-service=nginx-ingress
         #- -enable-leader-election

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-ingress
  namespace: nginx-ingress
spec:
  type: NodePort 
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http
  - port: 443
    targetPort: 443
    protocol: TCP
    name: https
  selector:
    app: nginx-ingress

  1. Deploy Ingress Resource
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: colors-ingress
  annotations:
    nginx.com/sticky-cookie-services: "serviceName=red-svc red_svc_id expires=60s path=/;"
    nginx.com/health-checks: "true"
    nginx.org/rewrites: "serviceName=red-svc rewrite=/;"

spec:
  rules:
  - host: blue.example.com
    http:
      paths:
      - path: /red/
        backend:
          serviceName: red-svc
          servicePort: 80
      - backend:
          serviceName: blue-svc
          servicePort: 80
  - host: red.example.com
    http:
      paths:
      - backend:
          serviceName: red-svc
          servicePort: 80
  1. Show Ingress Resource
$ kubectl get ingress
NAME             HOSTS                              ADDRESS   PORTS     AGE
colors-ingress   blue.example.com,red.example.com             80        38m

Expected behavior
I expect to have a working ingress controller, but I can not get it running when deploying ingress resources.

Your environment

  • Version of the Ingress Controller - NGINX Ingress controller Version=edge GitCommit=8fe1653
  • Version of Kubernetes - v1.8.15-docker-1
  • Kubernetes platform - Docker Enterprise Edition 2.0.6
  • Using NGINX or NGINX Plus - NGINX Plus

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugAn issue reporting a potential bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions