Merge pull request #703 from jcmoraisjr/jm-haproxy-configmap

HAProxy deployment doc improvements
This commit is contained in:
Manuel Alejandro de Brito Fontes 2017-05-11 10:51:35 -03:00 committed by GitHub
commit 186615daf0
2 changed files with 31 additions and 13 deletions

View file

@ -12,18 +12,8 @@ they will fight for Ingresses. This includes any cloudprovider controller.
This document has also the following prerequisites: This document has also the following prerequisites:
* Deploy a [web app](/examples/PREREQUISITES.md#test-http-service) for testing
* Create a [TLS secret](/examples/PREREQUISITES.md#tls-certificates) named `tls-secret` to be used as default TLS certificate * Create a [TLS secret](/examples/PREREQUISITES.md#tls-certificates) named `tls-secret` to be used as default TLS certificate
* Optional: deploy a [web app](/examples/PREREQUISITES.md#test-http-service) for testing
The web app can be created as follow:
```console
$ kubectl run http-svc \
--image=gcr.io/google_containers/echoserver:1.3 \
--port=8080 \
--replicas=2 \
--expose
```
Creating the TLS secret: Creating the TLS secret:
@ -35,6 +25,16 @@ $ kubectl create secret tls tls-secret --cert=tls.crt --key=tls.key
$ rm -v tls.crt tls.key $ rm -v tls.crt tls.key
``` ```
The optional web app can be created as follow:
```console
$ kubectl run http-svc \
--image=gcr.io/google_containers/echoserver:1.3 \
--port=8080 \
--replicas=1 \
--expose
```
## Default backend ## Default backend
Deploy a default backend used to serve `404 Not Found` pages: Deploy a default backend used to serve `404 Not Found` pages:
@ -55,6 +55,21 @@ NAME READY STATUS RESTARTS AGE
ingress-default-backend-1110790216-gqr61 1/1 Running 0 10s ingress-default-backend-1110790216-gqr61 1/1 Running 0 10s
``` ```
## Configmap
Create a configmap named `haproxy-ingress`:
```console
$ kubectl create configmap haproxy-ingress
configmap "haproxy-ingress" created
```
A configmap is used to provide global or default configuration like
timeouts, SSL/TLS settings, a syslog service endpoint and so on. The
configmap can be edited or replaced later in order to apply new
configuration on a running ingress controller. All supported options
are [here](https://github.com/jcmoraisjr/haproxy-ingress#configmap).
## Controller ## Controller
Deploy HAProxy Ingress: Deploy HAProxy Ingress:
@ -73,7 +88,9 @@ ingress-default-backend-1110790216-gqr61 1/1 Running 0 3m
^C ^C
``` ```
Deploy the ingress resource of our already deployed web app: ## Testing
From now the optional web app should be deployed. Deploy an ingress resource to expose this app:
```console ```console
$ kubectl create -f - <<EOF $ kubectl create -f - <<EOF
@ -93,7 +110,7 @@ spec:
EOF EOF
``` ```
Exposing the controller as a `type=NodePort` service: Expose the Ingress controller as a `type=NodePort` service:
```console ```console
$ kubectl expose deploy/haproxy-ingress --type=NodePort $ kubectl expose deploy/haproxy-ingress --type=NodePort

View file

@ -20,6 +20,7 @@ spec:
args: args:
- --default-backend-service=default/ingress-default-backend - --default-backend-service=default/ingress-default-backend
- --default-ssl-certificate=default/tls-secret - --default-ssl-certificate=default/tls-secret
- --configmap=default/haproxy-ingress
ports: ports:
- name: http - name: http
containerPort: 80 containerPort: 80