traefik/docs/configuration/backends/rancher.md

140 lines
5.7 KiB
Markdown
Raw Normal View History

# Rancher Backend
2017-09-11 17:10:04 +00:00
Træfik can be configured to use Rancher as a backend configuration.
## Global Configuration
```toml
################################################################
# Rancher configuration backend
################################################################
2017-09-11 17:10:04 +00:00
# Enable Rancher configuration backend.
[rancher]
# Default domain used.
# Can be overridden by setting the "traefik.domain" label on an service.
#
# Required
#
domain = "rancher.localhost"
2017-09-11 17:10:04 +00:00
# Enable watch Rancher changes.
#
# Optional
# Default: true
#
2017-09-05 13:58:03 +00:00
watch = true
2017-09-11 17:10:04 +00:00
# Polling interval (in seconds).
#
# Optional
2017-09-11 17:10:04 +00:00
# Default: 15
#
2017-09-05 13:58:03 +00:00
refreshSeconds = 15
2017-09-11 17:10:04 +00:00
# Expose Rancher services by default in Traefik.
#
# Optional
# Default: true
#
2017-09-05 13:58:03 +00:00
exposedByDefault = false
2017-09-11 17:10:04 +00:00
# Filter services with unhealthy states and inactive states.
#
# Optional
# Default: false
#
2017-09-05 13:58:03 +00:00
enableServiceHealthFilter = true
```
2017-09-11 17:10:04 +00:00
To enable constraints see [backend-specific constraints section](/configuration/commons/#backend-specific).
## Rancher Metadata Service
```toml
# Enable Rancher metadata service configuration backend instead of the API
2017-09-11 17:10:04 +00:00
# configuration backend.
#
# Optional
# Default: false
#
[rancher.metadata]
2017-09-11 17:10:04 +00:00
# Poll the Rancher metadata service for changes every `rancher.RefreshSeconds`.
# NOTE: this is less accurate than the default long polling technique which
# will provide near instantaneous updates to Traefik
#
# Optional
# Default: false
#
2017-09-05 13:58:03 +00:00
intervalPoll = true
2017-09-11 17:10:04 +00:00
# Prefix used for accessing the Rancher metadata service.
#
# Optional
# Default: "/latest"
#
2017-09-05 13:58:03 +00:00
prefix = "/2016-07-29"
```
## Rancher API
```toml
2017-09-11 17:10:04 +00:00
# Enable Rancher API configuration backend.
#
# Optional
# Default: true
#
[rancher.api]
2017-09-11 17:10:04 +00:00
# Endpoint to use when connecting to the Rancher API.
#
# Required
2017-09-05 13:58:03 +00:00
endpoint = "http://rancherserver.example.com/v1"
2017-09-11 17:10:04 +00:00
# AccessKey to use when connecting to the Rancher API.
#
# Required
2017-09-05 13:58:03 +00:00
accessKey = "XXXXXXXXXXXXXXXXXXXX"
2017-09-11 17:10:04 +00:00
# SecretKey to use when connecting to the Rancher API.
#
# Required
2017-09-05 13:58:03 +00:00
secretKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```
2017-08-28 12:33:07 +00:00
!!! note
If Traefik needs access to the Rancher API, you need to set the `endpoint`, `accesskey` and `secretkey` parameters.
2017-09-07 10:02:03 +00:00
2017-09-11 17:10:04 +00:00
To enable Traefik to fetch information about the Environment it's deployed in only, you need to create an `Environment API Key`.
2017-08-28 12:33:07 +00:00
This can be found within the API Key advanced options.
Add these labels to traefik docker deployment to autogenerated these values:
```
io.rancher.container.agent.role: environment
io.rancher.container.create_agent: true
```
2017-09-11 17:10:04 +00:00
## Labels: overriding default behaviour
Labels can be used on task containers to override default behaviour:
2017-12-15 10:48:03 +00:00
| Label | Description |
|-----------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|
| `traefik.protocol=https` | Override the default `http` protocol |
| `traefik.weight=10` | Assign this weight to the container |
| `traefik.enable=false` | Disable this container in Træfik |
| `traefik.frontend.rule=Host:test.traefik.io` | Override the default frontend rule (Default: `Host:{containerName}.{domain}`). |
| `traefik.frontend.passHostHeader=true` | Forward client `Host` header to the backend. |
| `traefik.frontend.priority=10` | Override default frontend priority |
| `traefik.frontend.entryPoints=http,https` | Assign this frontend to entry points `http` and `https`. Overrides `defaultEntryPoints`. |
| `traefik.frontend.auth.basic=EXPR` | Sets basic authentication for that frontend in CSV format: `User:Hash,User:Hash`. |
| `traefik.frontend.redirect.entryPoint=https` | Enables Redirect to another entryPoint for that frontend (e.g. HTTPS) |
| `traefik.frontend.redirect.regex: ^http://localhost/(.*)` | Redirect to another URL for that frontend.<br>Must be set with `traefik.frontend.redirect.replacement`. |
| `traefik.frontend.redirect.replacement: http://mydomain/$1` | Redirect to another URL for that frontend.<br>Must be set with `traefik.frontend.redirect.regex`. |
| `traefik.backend.circuitbreaker.expression=NetworkErrorRatio() > 0.5` | Create a [circuit breaker](/basics/#backends) to be used against the backend |
| `traefik.backend.loadbalancer.method=drr` | Override the default `wrr` load balancer algorithm |
| `traefik.backend.loadbalancer.stickiness=true` | Enable backend sticky sessions |
| `traefik.backend.loadbalancer.stickiness.cookieName=NAME` | Manually set the cookie name for sticky sessions |
| `traefik.backend.loadbalancer.sticky=true` | Enable backend sticky sessions (DEPRECATED) |