Add note about health check in kubernetes
This commit is contained in:
parent
ac1657d86e
commit
148400ae0a
7 changed files with 15 additions and 58 deletions
|
@ -91,21 +91,11 @@ spec:
|
||||||
services:
|
services:
|
||||||
- name: s1
|
- name: s1
|
||||||
port: 80
|
port: 80
|
||||||
healthCheck:
|
|
||||||
path: /health
|
|
||||||
host: baz.com
|
|
||||||
intervalSeconds: 7
|
|
||||||
timeoutSeconds: 60
|
|
||||||
# strategy defines the load balancing strategy between the servers. It defaults
|
# strategy defines the load balancing strategy between the servers. It defaults
|
||||||
# to Round Robin, and for now only Round Robin is supported anyway.
|
# to Round Robin, and for now only Round Robin is supported anyway.
|
||||||
strategy: RoundRobin
|
strategy: RoundRobin
|
||||||
- name: s2
|
- name: s2
|
||||||
port: 433
|
port: 433
|
||||||
healthCheck:
|
|
||||||
path: /health
|
|
||||||
host: baz.com
|
|
||||||
intervalSeconds: 7
|
|
||||||
timeoutSeconds: 60
|
|
||||||
- match: PathPrefix(`/misc`)
|
- match: PathPrefix(`/misc`)
|
||||||
services:
|
services:
|
||||||
- name: s3
|
- name: s3
|
||||||
|
|
|
@ -106,13 +106,13 @@ HTTP configuration.
|
||||||
Default middlewares for the routers linked to the entry point.
|
Default middlewares for the routers linked to the entry point.
|
||||||
|
|
||||||
`--entrypoints.<name>.http.redirections.entrypoint.permanent`:
|
`--entrypoints.<name>.http.redirections.entrypoint.permanent`:
|
||||||
Applied a permanent redirection. Defaults to true. (Default: ```true```)
|
Applied a permanent redirection. (Default: ```true```)
|
||||||
|
|
||||||
`--entrypoints.<name>.http.redirections.entrypoint.priority`:
|
`--entrypoints.<name>.http.redirections.entrypoint.priority`:
|
||||||
Priority of the generated router. Defaults to 1. (Default: ```1```)
|
Priority of the generated router. (Default: ```2147483647```)
|
||||||
|
|
||||||
`--entrypoints.<name>.http.redirections.entrypoint.scheme`:
|
`--entrypoints.<name>.http.redirections.entrypoint.scheme`:
|
||||||
Scheme used for the redirection. Defaults to https. (Default: ```https```)
|
Scheme used for the redirection. (Default: ```https```)
|
||||||
|
|
||||||
`--entrypoints.<name>.http.redirections.entrypoint.to`:
|
`--entrypoints.<name>.http.redirections.entrypoint.to`:
|
||||||
Targeted entry point of the redirection.
|
Targeted entry point of the redirection.
|
||||||
|
|
|
@ -106,13 +106,13 @@ HTTP configuration.
|
||||||
Default middlewares for the routers linked to the entry point.
|
Default middlewares for the routers linked to the entry point.
|
||||||
|
|
||||||
`TRAEFIK_ENTRYPOINTS_<NAME>_HTTP_REDIRECTIONS_ENTRYPOINT_PERMANENT`:
|
`TRAEFIK_ENTRYPOINTS_<NAME>_HTTP_REDIRECTIONS_ENTRYPOINT_PERMANENT`:
|
||||||
Applied a permanent redirection. Defaults to true. (Default: ```true```)
|
Applied a permanent redirection. (Default: ```true```)
|
||||||
|
|
||||||
`TRAEFIK_ENTRYPOINTS_<NAME>_HTTP_REDIRECTIONS_ENTRYPOINT_PRIORITY`:
|
`TRAEFIK_ENTRYPOINTS_<NAME>_HTTP_REDIRECTIONS_ENTRYPOINT_PRIORITY`:
|
||||||
Priority of the generated router. Defaults to 1. (Default: ```1```)
|
Priority of the generated router. (Default: ```2147483647```)
|
||||||
|
|
||||||
`TRAEFIK_ENTRYPOINTS_<NAME>_HTTP_REDIRECTIONS_ENTRYPOINT_SCHEME`:
|
`TRAEFIK_ENTRYPOINTS_<NAME>_HTTP_REDIRECTIONS_ENTRYPOINT_SCHEME`:
|
||||||
Scheme used for the redirection. Defaults to https. (Default: ```https```)
|
Scheme used for the redirection. (Default: ```https```)
|
||||||
|
|
||||||
`TRAEFIK_ENTRYPOINTS_<NAME>_HTTP_REDIRECTIONS_ENTRYPOINT_TO`:
|
`TRAEFIK_ENTRYPOINTS_<NAME>_HTTP_REDIRECTIONS_ENTRYPOINT_TO`:
|
||||||
Targeted entry point of the redirection.
|
Targeted entry point of the redirection.
|
||||||
|
|
|
@ -334,6 +334,12 @@ Below are the available options for the health check mechanism:
|
||||||
Traefik keeps monitoring the health of unhealthy servers.
|
Traefik keeps monitoring the health of unhealthy servers.
|
||||||
If a server has recovered (returning `2xx` -> `3xx` responses again), it will be added back to the load balacer rotation pool.
|
If a server has recovered (returning `2xx` -> `3xx` responses again), it will be added back to the load balacer rotation pool.
|
||||||
|
|
||||||
|
!!! warning "Health check in Kubernetes"
|
||||||
|
|
||||||
|
The Traefik health check is not available for `kubernetesCRD` and `kubernetesIngress` providers because Kubernetes
|
||||||
|
has already an health check mecanism.
|
||||||
|
Unhealthy pods will be removed by kubernetes. (cf [liveness documentation](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-http-request))
|
||||||
|
|
||||||
??? example "Custom Interval & Timeout -- Using the [File Provider](../../providers/file.md)"
|
??? example "Custom Interval & Timeout -- Using the [File Provider](../../providers/file.md)"
|
||||||
|
|
||||||
```toml tab="TOML"
|
```toml tab="TOML"
|
||||||
|
|
|
@ -62,9 +62,9 @@ type Redirections struct {
|
||||||
// RedirectEntryPoint is the definition of an entry point redirection.
|
// RedirectEntryPoint is the definition of an entry point redirection.
|
||||||
type RedirectEntryPoint struct {
|
type RedirectEntryPoint struct {
|
||||||
To string `description:"Targeted entry point of the redirection." json:"to,omitempty" toml:"to,omitempty" yaml:"to,omitempty"`
|
To string `description:"Targeted entry point of the redirection." json:"to,omitempty" toml:"to,omitempty" yaml:"to,omitempty"`
|
||||||
Scheme string `description:"Scheme used for the redirection. Defaults to https." json:"https,omitempty" toml:"https,omitempty" yaml:"https,omitempty"`
|
Scheme string `description:"Scheme used for the redirection." json:"https,omitempty" toml:"https,omitempty" yaml:"https,omitempty"`
|
||||||
Permanent bool `description:"Applied a permanent redirection. Defaults to true." json:"permanent,omitempty" toml:"permanent,omitempty" yaml:"permanent,omitempty"`
|
Permanent bool `description:"Applied a permanent redirection." json:"permanent,omitempty" toml:"permanent,omitempty" yaml:"permanent,omitempty"`
|
||||||
Priority int `description:"Priority of the generated router. Defaults to 1." json:"priority,omitempty" toml:"priority,omitempty" yaml:"priority,omitempty"`
|
Priority int `description:"Priority of the generated router." json:"priority,omitempty" toml:"priority,omitempty" yaml:"priority,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetDefaults sets the default values.
|
// SetDefaults sets the default values.
|
||||||
|
|
|
@ -69,7 +69,6 @@ type LoadBalancerSpec struct {
|
||||||
// and therefore should only be specified when Name references a Kubernetes Service.
|
// and therefore should only be specified when Name references a Kubernetes Service.
|
||||||
Port int32 `json:"port"`
|
Port int32 `json:"port"`
|
||||||
Scheme string `json:"scheme,omitempty"`
|
Scheme string `json:"scheme,omitempty"`
|
||||||
HealthCheck *HealthCheck `json:"healthCheck,omitempty"`
|
|
||||||
Strategy string `json:"strategy,omitempty"`
|
Strategy string `json:"strategy,omitempty"`
|
||||||
PassHostHeader *bool `json:"passHostHeader,omitempty"`
|
PassHostHeader *bool `json:"passHostHeader,omitempty"`
|
||||||
ResponseForwarding *dynamic.ResponseForwarding `json:"responseForwarding,omitempty"`
|
ResponseForwarding *dynamic.ResponseForwarding `json:"responseForwarding,omitempty"`
|
||||||
|
@ -90,16 +89,6 @@ type MiddlewareRef struct {
|
||||||
Namespace string `json:"namespace"`
|
Namespace string `json:"namespace"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// HealthCheck is the HealthCheck definition.
|
|
||||||
type HealthCheck struct {
|
|
||||||
Path string `json:"path"`
|
|
||||||
Host string `json:"host,omitempty"`
|
|
||||||
Scheme string `json:"scheme"`
|
|
||||||
IntervalSeconds int64 `json:"intervalSeconds"`
|
|
||||||
TimeoutSeconds int64 `json:"timeoutSeconds"`
|
|
||||||
Headers map[string]string `json:"headers"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// +genclient
|
// +genclient
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
|
|
|
@ -188,29 +188,6 @@ func (in *ForwardAuth) DeepCopy() *ForwardAuth {
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *HealthCheck) DeepCopyInto(out *HealthCheck) {
|
|
||||||
*out = *in
|
|
||||||
if in.Headers != nil {
|
|
||||||
in, out := &in.Headers, &out.Headers
|
|
||||||
*out = make(map[string]string, len(*in))
|
|
||||||
for key, val := range *in {
|
|
||||||
(*out)[key] = val
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheck.
|
|
||||||
func (in *HealthCheck) DeepCopy() *HealthCheck {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(HealthCheck)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *IngressRoute) DeepCopyInto(out *IngressRoute) {
|
func (in *IngressRoute) DeepCopyInto(out *IngressRoute) {
|
||||||
*out = *in
|
*out = *in
|
||||||
|
@ -493,11 +470,6 @@ func (in *LoadBalancerSpec) DeepCopyInto(out *LoadBalancerSpec) {
|
||||||
*out = new(dynamic.Sticky)
|
*out = new(dynamic.Sticky)
|
||||||
(*in).DeepCopyInto(*out)
|
(*in).DeepCopyInto(*out)
|
||||||
}
|
}
|
||||||
if in.HealthCheck != nil {
|
|
||||||
in, out := &in.HealthCheck, &out.HealthCheck
|
|
||||||
*out = new(HealthCheck)
|
|
||||||
(*in).DeepCopyInto(*out)
|
|
||||||
}
|
|
||||||
if in.PassHostHeader != nil {
|
if in.PassHostHeader != nil {
|
||||||
in, out := &in.PassHostHeader, &out.PassHostHeader
|
in, out := &in.PassHostHeader, &out.PassHostHeader
|
||||||
*out = new(bool)
|
*out = new(bool)
|
||||||
|
|
Loading…
Reference in a new issue