Add ucp 3.0 template to interlock docs

This commit is contained in:
Joao Fernandes 2017-12-21 14:11:59 -08:00 committed by Jim Galasyn
parent b083b2a923
commit 5313d79baa
21 changed files with 145 additions and 0 deletions

View File

@ -3,8 +3,13 @@ title: Configure Interlock
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
Interlock configuration is managed via file as [TOML](https://github.com/toml-lang/toml). Interlock configuration is managed via file as [TOML](https://github.com/toml-lang/toml).
The following will describe how to configure the various components of Interlock. The following will describe how to configure the various components of Interlock.
@ -85,3 +90,5 @@ PollInterval = "3s"
[Extensions.default.ProxyLabels] [Extensions.default.ProxyLabels]
proxy_name = "defaultProxy" proxy_name = "defaultProxy"
``` ```
{% endif %}

View File

@ -3,8 +3,13 @@ title: Interlock service labels
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
Applications that publish using Interlock use service labels to configure how they are published. Applications that publish using Interlock use service labels to configure how they are published.
The following table describes the available options and what they do. The following table describes the available options and what they do.
@ -25,3 +30,5 @@ The following table describes the available options and what they do.
| `com.docker.lb.sticky_session_cookie` | Cookie to use for sticky sessions | `none` | | `com.docker.lb.sticky_session_cookie` | Cookie to use for sticky sessions | `none` |
| `com.docker.lb.redirects` | Semi-colon separated list of redirects to add in the format of `<source>,<target>`. Example: (`http://old.example.com,http://new.example.com;`) | `none` | | `com.docker.lb.redirects` | Semi-colon separated list of redirects to add in the format of `<source>,<target>`. Example: (`http://old.example.com,http://new.example.com;`) | `none` |
| `com.docker.lb.ssl_passthrough` | Enable SSL passthrough | `false` | | `com.docker.lb.ssl_passthrough` | Enable SSL passthrough | `false` |
{% endif %}

View File

@ -3,8 +3,13 @@ title: Use HAProxy with Interlock
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
The following configuration options are available: The following configuration options are available:
| Option | Type | Description | | Option | Type | Description |
@ -26,3 +31,5 @@ The following configuration options are available:
When using SSL termination the certificate and key must be combined into a single certificate (i.e. `cat cert.pem key.pem > combined.pem`). The HAProxy extension When using SSL termination the certificate and key must be combined into a single certificate (i.e. `cat cert.pem key.pem > combined.pem`). The HAProxy extension
will use the certificate label only to configure SSL. will use the certificate label only to configure SSL.
{% endif %}

View File

@ -3,8 +3,13 @@ title: Use NGINX with Interlock
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
The following configuration options are available for the Nginx extension: The following configuration options are available for the Nginx extension:
| Option | Type | Description | | Option | Type | Description |
@ -28,3 +33,5 @@ The following configuration options are available for the Nginx extension:
| `ErrorLogPath` | string | Path to use for error logs (default: `/dev/stdout`) | | `ErrorLogPath` | string | Path to use for error logs (default: `/dev/stdout`) |
| `MainLogFormat` | string | [Format](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) to use for main logger | | `MainLogFormat` | string | [Format](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) to use for main logger |
| `TraceLogFormat` | string | [Format](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) to use for trace logger | | `TraceLogFormat` | string | [Format](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) to use for trace logger |
{% endif %}

View File

@ -3,8 +3,13 @@ title: Get started with Interlock
description: earn about Interlock, an application routing and load balancing system description: earn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
Docker Enterprise Edition has a routing mesh that allows you to make your Docker Enterprise Edition has a routing mesh that allows you to make your
services available to the outside world using a domain name. This is also services available to the outside world using a domain name. This is also
known as a layer 7 load balancer. known as a layer 7 load balancer.
@ -40,3 +45,5 @@ UCP web UI, navigate to the **Admin Settings** page, and click the
By default, the routing mesh service listens on port 80 for HTTP and port By default, the routing mesh service listens on port 80 for HTTP and port
8443 for HTTPS. Change the ports if you already have services that are using 8443 for HTTPS. Change the ports if you already have services that are using
them. them.
{% endif %}

View File

@ -3,8 +3,12 @@ title: Deploy Interlock manually
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
## Requirements ## Requirements
@ -80,3 +84,5 @@ sjpgq7h621ex interlock replicated 1/1
``` ```
The Interlock traffic layer is now deployed. Continue with the [Deploying Applications](/usage/index.md) to publish applications. The Interlock traffic layer is now deployed. Continue with the [Deploying Applications](/usage/index.md) to publish applications.
{% endif %}

View File

@ -3,8 +3,13 @@ title: Deploy Interlock offline
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
To install Interlock on a Docker cluster without internet access the Docker images will To install Interlock on a Docker cluster without internet access the Docker images will
need to be loaded. This guide will show how to export the images from a local Docker need to be loaded. This guide will show how to export the images from a local Docker
engine to then be loaded to the Docker Swarm cluster. engine to then be loaded to the Docker Swarm cluster.
@ -36,3 +41,5 @@ $> docker load < nginx:alpine.tar
After running on each node, you can continue to the [Deployment](index.md#deployment) section to After running on each node, you can continue to the [Deployment](index.md#deployment) section to
continue the installation. continue the installation.
{% endif %}

View File

@ -3,8 +3,13 @@ title: Deploy Interlock for Production
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
## Production Deployment ## Production Deployment
In this section you will find documentation on configuring Interlock In this section you will find documentation on configuring Interlock
for a production environment. If you have not yet deployed Interlock please for a production environment. If you have not yet deployed Interlock please
@ -82,3 +87,5 @@ addresses of the dedicated ingress workers. This will direct all traffic to the
You have now configured Interlock for a dedicated ingress production environment. See the [Configuration](/config/interlock/) section You have now configured Interlock for a dedicated ingress production environment. See the [Configuration](/config/interlock/) section
if you want to continue tuning. if you want to continue tuning.
{% endif %}

View File

@ -3,8 +3,13 @@ title: Interlock architecture
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
The following are definitions that are used: The following are definitions that are used:
- Cluster: A group of compute resources running Docker - Cluster: A group of compute resources running Docker
@ -37,3 +42,5 @@ are configured using the data created by the corresponding extension service.
Interlock manages both the extension and proxy service updates for both configuration changes Interlock manages both the extension and proxy service updates for both configuration changes
and application service deployments. There is no intervention from the operator required. and application service deployments. There is no intervention from the operator required.
{% endif %}

View File

@ -3,8 +3,13 @@ title: What is Interlock
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
Interlock is an application routing proxy service for Docker. Interlock is an application routing proxy service for Docker.
## Design Goals ## Design Goals
@ -58,3 +63,5 @@ balancing resources for uses such as region or organization based load balancing
Interlock supports (and recommends) being deployed where the load balancing Interlock supports (and recommends) being deployed where the load balancing
proxies do not need to be colocated with a Swarm manager. This makes the proxies do not need to be colocated with a Swarm manager. This makes the
deployment more secure by not exposing the Docker API access to the extension or proxy services. deployment more secure by not exposing the Docker API access to the extension or proxy services.
{% endif %}

View File

@ -3,8 +3,13 @@ title: Update Interlock
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
The following describes how to update Interlock. There are two parts The following describes how to update Interlock. There are two parts
to the upgrade. First, the Interlock configuration must be updated to the upgrade. First, the Interlock configuration must be updated
to specify the new extension and/or proxy image versions. Then the Interlock to specify the new extension and/or proxy image versions. Then the Interlock
@ -34,3 +39,5 @@ $> docker service update \
This will update the Interlock core service to use the `sha256:d173014908eb09e9a70d8e5ed845469a61f7cbf4032c28fad0ed9af3fc04ef51` This will update the Interlock core service to use the `sha256:d173014908eb09e9a70d8e5ed845469a61f7cbf4032c28fad0ed9af3fc04ef51`
version of Interlock. Interlock will start and check the config object which has the new extension version and will version of Interlock. Interlock will start and check the config object which has the new extension version and will
perform a rolling deploy to update all extensions. perform a rolling deploy to update all extensions.
{% endif %}

View File

@ -3,8 +3,13 @@ title: Tune Interlock
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
It is [recommended](/install/production/) to constrain the proxy service to multiple dedicated worker nodes. It is [recommended](/install/production/) to constrain the proxy service to multiple dedicated worker nodes.
Here are a few other tips for tuning: Here are a few other tips for tuning:
@ -33,3 +38,5 @@ thirty (30) seconds between updates you can use the following:
```bash ```bash
$> docker service update --update-delay=30s interlock=proxy $> docker service update --update-delay=30s interlock=proxy
``` ```
{% endif %}

View File

@ -3,8 +3,13 @@ title: Canary application instances
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
In this example we will publish a service and deploy an updated service as canary instances. In this example we will publish a service and deploy an updated service as canary instances.
First we will create an overlay network so that service traffic is isolated and secure: First we will create an overlay network so that service traffic is isolated and secure:
@ -105,3 +110,5 @@ demo-v1
This will route all application traffic to the new version. If you need to rollback, simply scale the v1 service This will route all application traffic to the new version. If you need to rollback, simply scale the v1 service
back up and v2 down. back up and v2 down.
{% endif %}

View File

@ -3,8 +3,13 @@ title: Context/path based routing
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
In this example we will publish a service using context or path based routing. In this example we will publish a service using context or path based routing.
First we will create an overlay network so that service traffic is isolated and secure: First we will create an overlay network so that service traffic is isolated and secure:
@ -55,3 +60,5 @@ $> curl -vs -H "Host: demo.local" http://127.0.0.1/app/
< x-upstream-response-time: 1510928717.306 < x-upstream-response-time: 1510928717.306
... ...
``` ```
{% endif %}

View File

@ -3,8 +3,13 @@ title: Host mode networking
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
In some scenarios operators cannot use the overlay networks. Interlock supports In some scenarios operators cannot use the overlay networks. Interlock supports
host mode networking in a variety of ways (proxy only, Interlock only, application only, hybrid). host mode networking in a variety of ways (proxy only, Interlock only, application only, hybrid).
@ -143,3 +148,5 @@ curl -vs -H "Host: demo.local" http://127.0.0.1/ping
< <
{"instance":"897d3c7b9e9c","version":"0.1","metadata":"demo","request_id":"e4180a8fc6ee15f8d46f11df67c24a7d"} {"instance":"897d3c7b9e9c","version":"0.1","metadata":"demo","request_id":"e4180a8fc6ee15f8d46f11df67c24a7d"}
``` ```
{% endif %}

View File

@ -3,8 +3,13 @@ title: Basic deployment
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
Once Interlock has been deployed you are now ready to launch and publish applications. Once Interlock has been deployed you are now ready to launch and publish applications.
Using [Service Labels](https://docs.docker.com/engine/reference/commandline/service_create/#set-metadata-on-a-service--l-label) Using [Service Labels](https://docs.docker.com/engine/reference/commandline/service_create/#set-metadata-on-a-service--l-label)
the service is configured to publish itself to the load balancer. the service is configured to publish itself to the load balancer.
@ -59,3 +64,5 @@ demo scaled to 4
The four service replicas will be configured as upstreams. The load balancer will balance traffic The four service replicas will be configured as upstreams. The load balancer will balance traffic
across all service replicas. across all service replicas.
{% endif %}

View File

@ -3,8 +3,13 @@ title: Application redirects
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
In this example we will publish a service and configure a redirect from `old.local` to `new.local`. In this example we will publish a service and configure a redirect from `old.local` to `new.local`.
First we will create an overlay network so that service traffic is isolated and secure: First we will create an overlay network so that service traffic is isolated and secure:
@ -62,3 +67,5 @@ $> curl -vs -H "Host: old.local" http://127.0.0.1
</body> </body>
</html> </html>
``` ```
{% endif %}

View File

@ -3,8 +3,12 @@ title: Service clusters
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
In this example we will configure an eight (8) node Swarm cluster that uses service clusters In this example we will configure an eight (8) node Swarm cluster that uses service clusters
to route traffic to different proxies. There are three (3) managers to route traffic to different proxies. There are three (3) managers
@ -198,3 +202,5 @@ $> curl -H "Host: demo-west.local" http://$(docker node inspect -f '{{ .Status.A
Application traffic is isolated to each service cluster. Interlock also ensures that a proxy will only be updated if it has corresponding updates Application traffic is isolated to each service cluster. Interlock also ensures that a proxy will only be updated if it has corresponding updates
to its designated service cluster. So in this example, updates to the `us-east` cluster will not affect the `us-west` cluster. If there is a problem to its designated service cluster. So in this example, updates to the `us-east` cluster will not affect the `us-west` cluster. If there is a problem
the others will not be affected. the others will not be affected.
{% endif %}

View File

@ -3,8 +3,13 @@ title: Persistent (sticky) sessions
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
In this example we will publish a service and configure the proxy for persistent (sticky) sessions. In this example we will publish a service and configure the proxy for persistent (sticky) sessions.
# Cookies # Cookies
@ -128,3 +133,5 @@ to a specific backend.
Note: due to the way the IP hashing works for extensions, you will notice a new upstream address when scaling replicas. This is Note: due to the way the IP hashing works for extensions, you will notice a new upstream address when scaling replicas. This is
expected as internally the proxy uses the new set of replicas to decide on a backend on which to pin. Once the upstreams are expected as internally the proxy uses the new set of replicas to decide on a backend on which to pin. Once the upstreams are
determined a new "sticky" backend will be chosen and that will be the dedicated upstream. determined a new "sticky" backend will be chosen and that will be the dedicated upstream.
{% endif %}

View File

@ -3,8 +3,13 @@ title: Applications with SSL
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
In this example we will publish a demo service to the host `demo.local` using SSL. In this example we will publish a demo service to the host `demo.local` using SSL.
# SSL Termination # SSL Termination
@ -218,3 +223,5 @@ $> curl -vsk https://demo.local/ping
Application traffic will travel securely fully encrypted from the request all the way to the application service. Application traffic will travel securely fully encrypted from the request all the way to the application service.
Notice that Interlock cannot add the metadata response headers (version info, request ID, etc) as this is using Notice that Interlock cannot add the metadata response headers (version info, request ID, etc) as this is using
TCP passthrough and cannot add the metadata. TCP passthrough and cannot add the metadata.
{% endif %}

View File

@ -3,8 +3,13 @@ title: Websockets
description: Learn about Interlock, an application routing and load balancing system description: Learn about Interlock, an application routing and load balancing system
for Docker Swarm. for Docker Swarm.
keywords: ucp, interlock, load balancing keywords: ucp, interlock, load balancing
ui_tabs:
- version: ucp-3.0
orhigher: false
--- ---
{% if include.version=="ucp-3.0" %}
In this example we will publish a service and configure support for websockets. In this example we will publish a service and configure support for websockets.
First we will create an overlay network so that service traffic is isolated and secure: First we will create an overlay network so that service traffic is isolated and secure:
@ -33,3 +38,5 @@ This uses the browser for websocket communication so you will need to have an en
Interlock will detect once the service is available and publish it. Once the tasks are running Interlock will detect once the service is available and publish it. Once the tasks are running
and the proxy service has been updated the application should be available via `http://demo.local`. Open and the proxy service has been updated the application should be available via `http://demo.local`. Open
two instances of your browser and you should see text on both instances as you type. two instances of your browser and you should see text on both instances as you type.
{% endif %}