Home

Awesome

DEPRECATED

The contents of this repository is in this kubernetes/contrib repository

kube-haproxy-router

Replace nginx to avoid kube-proxy to reach a pod.

Internet-> Nginx -> iptables (VIP) -> kube-proxy -> go LB -> flannel -> docker bridge -> pod/s

with

Internet -> kube-haproxy -> flannel -> docker bridge -> pod/s

Changes:

This borrow ideas from #12111 and #11679 in github.com/GoogleCloudPlatform/kubernetes

Content type

Some applications, like a REST API always return json content. In this cases it makes sense to also return error (404,408,502,503 and 504) in the same format. Any kubernetes service with the label content=json will return a json response in case of an error.

docker run \
  --name kube-haproxy \
  --rm \
  -p 80:80 \
  -p 443:443 \
  -p 1936:1936 \
  -p 2222:2222 \
  -p 8081:8081 \
  -v /dev/log:/dev/log \
  aledbf/kube-haproxy-router:v0.0.1 \
  /kube-haproxy \
  --master http://$(etcdctl get /deis/scheduler/k8s/master):8080 \
  --domain=$(etcdctl get /deis/platform/domain) \
  --nodes=$(fleetctl list-machines -fields=ip -no-legend | xargs | sed -e 's/ /,/g')