Merge pull request #703 from jcmoraisjr/jm-haproxy-configmap
HAProxy deployment doc improvements
This commit is contained in:
commit
186615daf0
2 changed files with 31 additions and 13 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue