ingress-nginx: Service "grafana" does not have any active endpoint

Hi, I am trying to make grafana available behind /logs on my ingress-nginx proxy.

NGINX Ingress controller version: Chart 1.33.1

Kubernetes version (use kubectl version): Server Version: version.Info{Major:“1”, Minor:“17”, GitVersion:“v1.17.3”, GitCommit:“06ad960bfd03b39c8310aaf92d1e7c12ce618213”, GitTreeState:“clean”, BuildDate:“2020-02-11T18:07:13Z”, GoVersion:“go1.13.6”, Compiler:“gc”, Platform:“linux/amd64”}

Environment:

  • Cloud provider or hardware configuration: scaleway
  • OS (e.g. from /etc/os-release): /
  • Kernel (e.g. uname -a): /
  • Install tools: helm
  • Others:

What happened:

-------------------------------------------------------------------------------
NGINX Ingress controller
  Release:       0.30.0
  Build:         git-7e65b90c4
  Repository:    https://github.com/kubernetes/ingress-nginx
  nginx version: nginx/1.17.8

-------------------------------------------------------------------------------

I0304 11:50:44.068569       8 flags.go:215] Watching for Ingress class: nginx
W0304 11:50:44.069134       8 flags.go:260] SSL certificate chain completion is disabled (--enable-ssl-chain-completion=false)
W0304 11:50:44.069296       8 client_config.go:543] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I0304 11:50:44.069622       8 main.go:193] Creating API client for https://10.32.0.1:443
I0304 11:50:44.109779       8 main.go:237] Running in Kubernetes cluster version v1.17 (v1.17.3) - git (clean) commit 06ad960bfd03b39c8310aaf92d1e7c12ce618213 - platform linux/amd64
I0304 11:50:44.368724       8 main.go:102] SSL fake certificate created /etc/ingress-controller/ssl/default-fake-certificate.pem
W0304 11:50:44.436578       8 store.go:628] Unexpected error reading configuration configmap: configmaps "nginx-ingress-nginx-controller" not found
I0304 11:50:44.471141       8 nginx.go:263] Starting NGINX Ingress controller
I0304 11:50:45.984621       8 event.go:281] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"logging", Name:"grafana", UID:"596b584d-a976-4329-a647-94cca13904a4", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"8299045716", FieldPath:""}): type: 'Normal' reason: 'CREATE' Ingress logging/grafana
I0304 11:50:46.072579       8 nginx.go:307] Starting NGINX process
I0304 11:50:46.072776       8 leaderelection.go:242] attempting to acquire leader lease  kube-system/ingress-controller-leader-nginx...
I0304 11:50:46.074977       8 controller.go:137] Configuration changes detected, backend reload required.
I0304 11:50:46.086845       8 status.go:86] new leader elected: nginx-ingress-nginx-controller-757d7d9c4c-25snq
I0304 11:50:46.240898       8 controller.go:153] Backend successfully reloaded.
I0304 11:50:46.240996       8 controller.go:162] Initial sync, sleeping for 1 second.
I0304 11:51:30.356738       8 leaderelection.go:252] successfully acquired lease kube-system/ingress-controller-leader-nginx
I0304 11:51:30.356813       8 status.go:86] new leader elected: nginx-ingress-nginx-controller-757d7d9c4c-cdvsg
I0304 12:39:12.478937       8 event.go:281] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"logging", Name:"grafana", UID:"596b584d-a976-4329-a647-94cca13904a4", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"8302883623", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress logging/grafana
I0304 12:39:12.479423       8 controller.go:137] Configuration changes detected, backend reload required.
I0304 12:39:12.832287       8 controller.go:153] Backend successfully reloaded.
W0304 12:39:15.810865       8 controller.go:899] Service "logging/grafana" does not have any active Endpoint.
W0304 12:39:22.713094       8 controller.go:899] Service "logging/grafana" does not have any active Endpoint.
W0304 12:39:26.046571       8 controller.go:899] Service "logging/grafana" does not have any active Endpoint.
I0304 12:43:18.211887       8 controller.go:137] Configuration changes detected, backend reload required.
I0304 12:43:18.212804       8 event.go:281] Event(v1.ObjectReference{Kind:"Ingress", Namespace:"logging", Name:"grafana", UID:"596b584d-a976-4329-a647-94cca13904a4", APIVersion:"networking.k8s.io/v1beta1", ResourceVersion:"8303045074", FieldPath:""}): type: 'Normal' reason: 'UPDATE' Ingress logging/grafana
I0304 12:43:18.424596       8 controller.go:153] Backend successfully reloaded.
W0304 12:43:21.545065       8 controller.go:899] Service "logging/grafana" does not have any active Endpoint.
W0304 12:43:29.491451       8 controller.go:899] Service "logging/grafana" does not have any active Endpoint.
W0304 12:43:32.824872       8 controller.go:899] Service "logging/grafana" does not have any active Endpoint.

What you expected to happen:

grafana made available behind /logs

How to reproduce it:

resource "helm_release" "nginx-ingress" {
  name        = "nginx-ingress"
  repository  = data.helm_repository.stable.metadata[0].name
  chart       = "stable/nginx-ingress"
  version     = var.nginx_version
  namespace   = var.nginx_namespace
  
  #atomic          = true
  cleanup_on_fail = true
  recreate_pods   = true
  verify          = false
  
  set {
      name  = "controller.name"
      value = "nginx-controller"
  }
  set { # internal use only since we use argo
      name  = "controller.service.type"
      value = "ClusterIP"
  }
  set {
      name  = "controller.service.enableHttps"
      value = false
  }
  set {
      name  = "defaultBackend.enabled"
      value = false
  }
}

# now install grafana for the gui bits
resource "helm_release" "loki_grafana" {
  name        = "grafana"
  repository  = data.helm_repository.stable.metadata[0].name
  chart       = "stable/grafana"
  version     = var.grafana_version
  namespace   = var.loki_namespace
  
  #atomic          = true
  #cleanup_on_fail = true
  recreate_pods   = true
  verify          = false
  
  set { # grafana should store some cached data
    name  = "persistence.enabled"
    value = "true"
  }
  set { # 10Gbit should be more than enough
    name  = "persistence.size"
    value = "10Gi"
  }
  set { # use k8s native storage
    name  = "persistence.type"
    value = "pvc"
  } 
  set {
    name  = "ingress.enabled"
    value = true
  }
  set_string {
    name  = "ingress.annotations.nginx\\.ingress\\.kubernetes\\.io/app-root"
    value = "/logs"
  }
  set_string {
    name  = "ingress.annotations.nginx\\.ingress\\.kubernetes\\.io/rewrite-target"
    value = "/"
  }
}

/kind bug

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 16 (8 by maintainers)

Most upvoted comments

LoadBalancer could be a pick, but I don’t want to expose any external addresses.

You can use an internal one.

Hmmm, didn’t see one yet, will look further into this.

A wildcard domain yes That’s what I feared.

Thanks for the help!