kubernetes-retired / contrib

[EOL] This is a place for various components in the Kubernetes ecosystem that aren't part of the Kubernetes core.
Apache License 2.0
2.46k stars 1.68k forks source link

health_checks example failing #2848

Closed marekaf closed 6 years ago

marekaf commented 6 years ago

Hi, I'm trying to create a simple ingress with gce health checks from readiness probes. I tried this example

https://github.com/kubernetes/contrib/tree/master/ingress/controllers/gce/examples/health_checks

and the health checks are not being creates, readiness probes are ignored and the ingress has "Unknown" backend svcs

~ kubectl create -f health_check_app.yaml
~ kubectl describe ing echomap                                                                                                                                                                   
Name:             echomap
Namespace:        default
Address:          130.211.31.117
Default backend:  default-http-backend:80 (10.20.1.10:8080)
Rules:
  Host         Path  Backends
  ----         ----  --------
  foo.bar.com
               /foo   echoheadersx:80 (<none>)
  bar.baz.com
               /bar   echoheadersy:80 (<none>)
               /foo   echoheadersx:80 (<none>)
Annotations:
  target-proxy:     k8s-tp-default-echomap--17af70295d9b590a
  url-map:          k8s-um-default-echomap--17af70295d9b590a
  backends:         {"k8s-be-31387--17af70295d9b590a":"Unknown","k8s-be-31903--17af70295d9b590a":"Unknown","k8s-be-32710--17af70295d9b590a":"Unknown"}
  forwarding-rule:  k8s-fw-default-echomap--17af70295d9b590a
Events:
  Type    Reason   Age              From                     Message
  ----    ------   ----             ----                     -------
  Normal  ADD      5m               loadbalancer-controller  default/echomap
  Normal  CREATE   4m               loadbalancer-controller  ip: 130.211.31.117
  Normal  Service  4m (x3 over 5m)  loadbalancer-controller  no user specified default backend, using system default

~ curl 130.211.31.117/foo -H 'Host:foo.bar.com'                                                                                                                                                  
<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>502 Server Error</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Server Error</h1>
<h2>The server encountered a temporary error and could not complete your request.<p>Please try again in 30 seconds.</h2>
<h2></h2>
</body></html>
~ gcloud compute http-health-checks list                                                                                                                                                         
NAME                              HOST  PORT   REQUEST_PATH
nothing relevant
~ kubectl version                                                                                                                                                                                
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.6", GitCommit:"6260bb08c46c31eea6cb538b34a9ceb3e406689c", GitTreeState:"clean", BuildDate:"2017-12-21T06:34:11Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"7+", GitVersion:"v1.7.12-gke.0", GitCommit:"f4f0bedb82a57dc32b21b8f15fe01e0b8411356b", GitTreeState:"clean", BuildDate:"2018-01-05T03:35:43Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

Any idea what changed? I just need to be able to create a kube ingress with custom gce health checks (url paths and interval at the very least, custom headers would be awesome too...)

marekaf commented 6 years ago

oops, my pods were in pending state 🤦‍♂️