Merge pull request #12024 from hashicorp/docs/update-links-to-avoid-redirects
docs: Avoid redirects by pointing links to new URLs
This commit is contained in:
commit
9625e783f0
|
@ -8,7 +8,7 @@ export default function Footer({ openConsentManager }) {
|
||||||
<Link href="/intro">
|
<Link href="/intro">
|
||||||
<a>Intro</a>
|
<a>Intro</a>
|
||||||
</Link>
|
</Link>
|
||||||
<Link href="/guides">
|
<Link href="/docs/guides">
|
||||||
<a>Guides</a>
|
<a>Guides</a>
|
||||||
</Link>
|
</Link>
|
||||||
<Link href="/docs">
|
<Link href="/docs">
|
||||||
|
|
|
@ -44,7 +44,7 @@ The corresponding CLI command is [`consul acl auth-method create`](/commands/acl
|
||||||
|
|
||||||
- `Type` `(string: <required>)` - The type of auth method being configured.
|
- `Type` `(string: <required>)` - The type of auth method being configured.
|
||||||
This field is immutable. For allowed values see the [auth method
|
This field is immutable. For allowed values see the [auth method
|
||||||
documentation](/docs/acl/auth-methods).
|
documentation](/docs/security/acl/auth-methods).
|
||||||
|
|
||||||
- `Description` `(string: "")` - Free form human readable description of the
|
- `Description` `(string: "")` - Free form human readable description of the
|
||||||
auth method.
|
auth method.
|
||||||
|
@ -69,7 +69,7 @@ The corresponding CLI command is [`consul acl auth-method create`](/commands/acl
|
||||||
- `Config` `(map[string]string: <required>)` - The raw configuration to use for
|
- `Config` `(map[string]string: <required>)` - The raw configuration to use for
|
||||||
the chosen auth method. Contents will vary depending upon the type chosen.
|
the chosen auth method. Contents will vary depending upon the type chosen.
|
||||||
For more information on configuring specific auth method types, see the [auth
|
For more information on configuring specific auth method types, see the [auth
|
||||||
method documentation](/docs/acl/auth-methods).
|
method documentation](/docs/security/acl/auth-methods).
|
||||||
|
|
||||||
- `Namespace` `(string: "")` <EnterpriseAlert inline /> - Specifies the namespace to
|
- `Namespace` `(string: "")` <EnterpriseAlert inline /> - Specifies the namespace to
|
||||||
create the auth method within. If not provided in the JSON body, the value of
|
create the auth method within. If not provided in the JSON body, the value of
|
||||||
|
@ -252,7 +252,7 @@ The corresponding CLI command is [`consul acl auth-method update`](/commands/acl
|
||||||
- `Config` `(map[string]string: <required>)` - The raw configuration to use for
|
- `Config` `(map[string]string: <required>)` - The raw configuration to use for
|
||||||
the chosen auth method. Contents will vary depending upon the type chosen.
|
the chosen auth method. Contents will vary depending upon the type chosen.
|
||||||
For more information on configuring specific auth method types, see the [auth
|
For more information on configuring specific auth method types, see the [auth
|
||||||
method documentation](/docs/acl/auth-methods).
|
method documentation](/docs/security/acl/auth-methods).
|
||||||
|
|
||||||
- `Namespace` `(string: "")` <EnterpriseAlert inline /> - Specifies the namespace of
|
- `Namespace` `(string: "")` <EnterpriseAlert inline /> - Specifies the namespace of
|
||||||
the auth method to update. If not provided in the JSON body, the value of
|
the auth method to update. If not provided in the JSON body, the value of
|
||||||
|
|
|
@ -276,7 +276,7 @@ agent_prefix "" {
|
||||||
## Login to Auth Method
|
## Login to Auth Method
|
||||||
|
|
||||||
This endpoint was added in Consul 1.5.0 and is used to exchange an [auth
|
This endpoint was added in Consul 1.5.0 and is used to exchange an [auth
|
||||||
method](/docs/acl/auth-methods) bearer token for a newly-created
|
method](/docs/security/acl/auth-methods) bearer token for a newly-created
|
||||||
Consul ACL token.
|
Consul ACL token.
|
||||||
|
|
||||||
| Method | Path | Produces |
|
| Method | Path | Produces |
|
||||||
|
@ -407,7 +407,7 @@ $ curl \
|
||||||
</EnterpriseAlert>
|
</EnterpriseAlert>
|
||||||
|
|
||||||
This endpoint was added in Consul 1.8.0 and is used to obtain an authorization
|
This endpoint was added in Consul 1.8.0 and is used to obtain an authorization
|
||||||
URL from Consul to start an [OIDC login flow](/docs/acl/auth-methods/oidc).
|
URL from Consul to start an [OIDC login flow](/docs/security/acl/auth-methods/oidc).
|
||||||
|
|
||||||
| Method | Path | Produces |
|
| Method | Path | Produces |
|
||||||
| ------ | -------------------- | ------------------ |
|
| ------ | -------------------- | ------------------ |
|
||||||
|
@ -433,10 +433,10 @@ replication enabled.
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
- `AuthMethod` `(string: <required>)` - The name of the auth method to use for
|
- `AuthMethod` `(string: <required>)` - The name of the auth method to use for
|
||||||
login. This must be of type [`oidc`](/docs/acl/auth-methods/oidc).
|
login. This must be of type [`oidc`](/docs/security/acl/auth-methods/oidc).
|
||||||
|
|
||||||
- `RedirectURI` `(string: <required>)` - See [Redirect
|
- `RedirectURI` `(string: <required>)` - See [Redirect
|
||||||
URIs](/docs/acl/auth-methods/oidc#redirect-uris) for more information.
|
URIs](/docs/security/acl/auth-methods/oidc#redirect-uris) for more information.
|
||||||
|
|
||||||
- `ClientNonce` `(string: "")` - Optional client-provided nonce that must match
|
- `ClientNonce` `(string: "")` - Optional client-provided nonce that must match
|
||||||
during callback, if present.
|
during callback, if present.
|
||||||
|
@ -513,7 +513,7 @@ replication enabled.
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
- `AuthMethod` `(string: <required>)` - The name of the auth method to use for
|
- `AuthMethod` `(string: <required>)` - The name of the auth method to use for
|
||||||
login. This must be of type [`oidc`](/docs/acl/auth-methods/oidc).
|
login. This must be of type [`oidc`](/docs/security/acl/auth-methods/oidc).
|
||||||
|
|
||||||
- `State` `(string: <required>)` - Opaque state ID that is part of the
|
- `State` `(string: <required>)` - Opaque state ID that is part of the
|
||||||
Authorization URL and will be included in the the redirect following
|
Authorization URL and will be included in the the redirect following
|
||||||
|
|
|
@ -45,7 +45,7 @@ The table below shows this endpoint's support for
|
||||||
are: `client` and `management`.
|
are: `client` and `management`.
|
||||||
|
|
||||||
- `Rules` `(string: "")` - Specifies rules for this ACL token. The format of the
|
- `Rules` `(string: "")` - Specifies rules for this ACL token. The format of the
|
||||||
`Rules` property is detailed in the [ACL Rule documentation](/docs/acl/acl-rules).
|
`Rules` property is detailed in the [ACL Rule documentation](/docs/security/acl/acl-rules).
|
||||||
|
|
||||||
### Sample Payload
|
### Sample Payload
|
||||||
|
|
||||||
|
@ -296,4 +296,4 @@ $ curl \
|
||||||
|
|
||||||
## Check ACL Replication
|
## Check ACL Replication
|
||||||
|
|
||||||
The check ACL replication endpoint has not changed between the legacy system and the new system. Review the [latest documentation](/api/acl/acl#check-acl-replication) to learn more about this endpoint.
|
The check ACL replication endpoint has not changed between the legacy system and the new system. Review the [latest documentation](/api-docs/acl#check-acl-replication) to learn more about this endpoint.
|
||||||
|
|
|
@ -44,7 +44,7 @@ The corresponding CLI command is [`consul acl policy create`](/commands/acl/poli
|
||||||
- `Description` `(string: "")` - Free form human readable description of the policy.
|
- `Description` `(string: "")` - Free form human readable description of the policy.
|
||||||
|
|
||||||
- `Rules` `(string: "")` - Specifies rules for the ACL policy. The format of the
|
- `Rules` `(string: "")` - Specifies rules for the ACL policy. The format of the
|
||||||
`Rules` property is detailed in the [ACL Rules documentation](/docs/acl/acl-rules).
|
`Rules` property is detailed in the [ACL Rules documentation](/docs/security/acl/acl-rules).
|
||||||
|
|
||||||
- `Datacenters` `(array<string>)` - Specifies the datacenters the policy is valid within.
|
- `Datacenters` `(array<string>)` - Specifies the datacenters the policy is valid within.
|
||||||
When no datacenters are provided the policy is valid in all datacenters including
|
When no datacenters are provided the policy is valid in all datacenters including
|
||||||
|
@ -227,7 +227,7 @@ The corresponding CLI command is [`consul acl policy update`](/commands/acl/poli
|
||||||
- `Description` `(string: "")` - Free form human readable description of this policy.
|
- `Description` `(string: "")` - Free form human readable description of this policy.
|
||||||
|
|
||||||
- `Rules` `(string: "")` - Specifies rules for this ACL policy. The format of the
|
- `Rules` `(string: "")` - Specifies rules for this ACL policy. The format of the
|
||||||
`Rules` property is detailed in the [ACL Rules documentation](/docs/acl/acl-rules).
|
`Rules` property is detailed in the [ACL Rules documentation](/docs/security/acl/acl-rules).
|
||||||
|
|
||||||
- `Datacenters` `(array<string>)` - Specifies the datacenters this policy is valid within.
|
- `Datacenters` `(array<string>)` - Specifies the datacenters this policy is valid within.
|
||||||
When no datacenters are provided the policy is valid in all datacenters including
|
When no datacenters are provided the policy is valid in all datacenters including
|
||||||
|
|
|
@ -50,7 +50,7 @@ The corresponding CLI command is [`consul acl role create`](/commands/acl/role/c
|
||||||
breaking tokens.
|
breaking tokens.
|
||||||
|
|
||||||
- `ServiceIdentities` `(array<ServiceIdentity>)` - The list of [service
|
- `ServiceIdentities` `(array<ServiceIdentity>)` - The list of [service
|
||||||
identities](/docs/acl/acl-system#acl-service-identities) that should be
|
identities](/docs/security/acl/acl-system#acl-service-identities) that should be
|
||||||
applied to the role. Added in Consul 1.5.0.
|
applied to the role. Added in Consul 1.5.0.
|
||||||
|
|
||||||
- `ServiceName` `(string: <required>)` - The name of the service. The name
|
- `ServiceName` `(string: <required>)` - The name of the service. The name
|
||||||
|
@ -64,7 +64,7 @@ The corresponding CLI command is [`consul acl role create`](/commands/acl/role/c
|
||||||
but may in the future.
|
but may in the future.
|
||||||
|
|
||||||
- `NodeIdentities` `(array<NodeIdentity>)` - The list of [node
|
- `NodeIdentities` `(array<NodeIdentity>)` - The list of [node
|
||||||
identities](/docs/acl/acl-system#acl-node-identities) that should be
|
identities](/docs/security/acl/acl-system#acl-node-identities) that should be
|
||||||
applied to the role. Added in Consul 1.8.1.
|
applied to the role. Added in Consul 1.8.1.
|
||||||
|
|
||||||
- `NodeName` `(string: <required>)` - The name of the node. The name
|
- `NodeName` `(string: <required>)` - The name of the node. The name
|
||||||
|
@ -339,11 +339,11 @@ The corresponding CLI command is [`consul acl role update`](/commands/acl/role/u
|
||||||
breaking tokens.
|
breaking tokens.
|
||||||
|
|
||||||
- `ServiceIdentities` `(array<ServiceIdentity>)` - The list of [service
|
- `ServiceIdentities` `(array<ServiceIdentity>)` - The list of [service
|
||||||
identities](/docs/acl/acl-system#acl-service-identities) that should be
|
identities](/docs/security/acl/acl-system#acl-service-identities) that should be
|
||||||
applied to the role. Added in Consul 1.5.0.
|
applied to the role. Added in Consul 1.5.0.
|
||||||
|
|
||||||
- `NodeIdentities` `(array<NodeIdentity>)` - The list of [node
|
- `NodeIdentities` `(array<NodeIdentity>)` - The list of [node
|
||||||
identities](/docs/acl/acl-system#acl-node-identities) that should be
|
identities](/docs/security/acl/acl-system#acl-node-identities) that should be
|
||||||
applied to the role. Added in Consul 1.8.1.
|
applied to the role. Added in Consul 1.8.1.
|
||||||
|
|
||||||
- `Namespace` `(string: "")` <EnterpriseAlert inline /> - Specifies the namespace of
|
- `Namespace` `(string: "")` <EnterpriseAlert inline /> - Specifies the namespace of
|
||||||
|
|
|
@ -62,7 +62,7 @@ The corresponding CLI command is [`consul acl token create`](/commands/acl/token
|
||||||
enables role renaming without breaking tokens. Added in Consul 1.5.0.
|
enables role renaming without breaking tokens. Added in Consul 1.5.0.
|
||||||
|
|
||||||
- `ServiceIdentities` `(array<ServiceIdentity>)` - The list of [service
|
- `ServiceIdentities` `(array<ServiceIdentity>)` - The list of [service
|
||||||
identities](/docs/acl/acl-system#acl-service-identities) that should be
|
identities](/docs/security/acl/acl-system#acl-service-identities) that should be
|
||||||
applied to the token. Added in Consul 1.5.0.
|
applied to the token. Added in Consul 1.5.0.
|
||||||
|
|
||||||
- `ServiceName` `(string: <required>)` - The name of the service. The name
|
- `ServiceName` `(string: <required>)` - The name of the service. The name
|
||||||
|
@ -76,7 +76,7 @@ The corresponding CLI command is [`consul acl token create`](/commands/acl/token
|
||||||
but may in the future.
|
but may in the future.
|
||||||
|
|
||||||
- `NodeIdentities` `(array<NodeIdentity>)` - The list of [node
|
- `NodeIdentities` `(array<NodeIdentity>)` - The list of [node
|
||||||
identities](/docs/acl/acl-system#acl-node-identities) that should be
|
identities](/docs/security/acl/acl-system#acl-node-identities) that should be
|
||||||
applied to the token. Added in Consul 1.8.1.
|
applied to the token. Added in Consul 1.8.1.
|
||||||
|
|
||||||
- `NodeName` `(string: <required>)` - The name of the node. The name
|
- `NodeName` `(string: <required>)` - The name of the node. The name
|
||||||
|
@ -329,7 +329,7 @@ The corresponding CLI command is [`consul acl token update`](/commands/acl/token
|
||||||
enables role renaming without breaking tokens.
|
enables role renaming without breaking tokens.
|
||||||
|
|
||||||
- `ServiceIdentities` `(array<ServiceIdentity>)` - The list of [service
|
- `ServiceIdentities` `(array<ServiceIdentity>)` - The list of [service
|
||||||
identities](/docs/acl/acl-system#acl-service-identities) that should be
|
identities](/docs/security/acl/acl-system#acl-service-identities) that should be
|
||||||
applied to the token. Added in Consul 1.5.0.
|
applied to the token. Added in Consul 1.5.0.
|
||||||
|
|
||||||
- `ServiceName` `(string: <required>)` - The name of the service. The name
|
- `ServiceName` `(string: <required>)` - The name of the service. The name
|
||||||
|
@ -343,7 +343,7 @@ The corresponding CLI command is [`consul acl token update`](/commands/acl/token
|
||||||
but may in the future.
|
but may in the future.
|
||||||
|
|
||||||
- `NodeIdentities` `(array<NodeIdentity>)` - The list of [node
|
- `NodeIdentities` `(array<NodeIdentity>)` - The list of [node
|
||||||
identities](/docs/acl/acl-system#acl-node-identities) that should be
|
identities](/docs/security/acl/acl-system#acl-node-identities) that should be
|
||||||
applied to the token. Added in Consul 1.8.1.
|
applied to the token. Added in Consul 1.8.1.
|
||||||
|
|
||||||
- `NodeName` `(string: <required>)` - The name of the node. The name
|
- `NodeName` `(string: <required>)` - The name of the node. The name
|
||||||
|
|
|
@ -18,7 +18,7 @@ using the HTTP API.
|
||||||
It is important to note that the checks known by the agent may be different from
|
It is important to note that the checks known by the agent may be different from
|
||||||
those reported by the catalog. This is usually due to changes being made while
|
those reported by the catalog. This is usually due to changes being made while
|
||||||
there is no leader elected. The agent performs active
|
there is no leader elected. The agent performs active
|
||||||
[anti-entropy](/docs/internals/anti-entropy), so in most situations
|
[anti-entropy](/docs/architecture/anti-entropy), so in most situations
|
||||||
everything will be in sync within a few seconds.
|
everything will be in sync within a few seconds.
|
||||||
|
|
||||||
| Method | Path | Produces |
|
| Method | Path | Produces |
|
||||||
|
|
|
@ -12,7 +12,7 @@ The `/agent` endpoints are used to interact with the local Consul agent.
|
||||||
Usually, services and checks are registered with an agent which then takes on
|
Usually, services and checks are registered with an agent which then takes on
|
||||||
the burden of keeping that data synchronized with the cluster. For example, the
|
the burden of keeping that data synchronized with the cluster. For example, the
|
||||||
agent registers services and checks with the Catalog and performs
|
agent registers services and checks with the Catalog and performs
|
||||||
[anti-entropy](/docs/internals/anti-entropy) to recover from outages.
|
[anti-entropy](/docs/architecture/anti-entropy) to recover from outages.
|
||||||
|
|
||||||
In addition to these endpoints, additional endpoints are grouped in the
|
In addition to these endpoints, additional endpoints are grouped in the
|
||||||
navigation for `Checks` and `Services`.
|
navigation for `Checks` and `Services`.
|
||||||
|
|
|
@ -20,7 +20,7 @@ or added dynamically using the HTTP API.
|
||||||
It is important to note that the services known by the agent may be different
|
It is important to note that the services known by the agent may be different
|
||||||
from those reported by the catalog. This is usually due to changes being made
|
from those reported by the catalog. This is usually due to changes being made
|
||||||
while there is no leader elected. The agent performs active
|
while there is no leader elected. The agent performs active
|
||||||
[anti-entropy](/docs/internals/anti-entropy), so in most situations
|
[anti-entropy](/docs/architecture/anti-entropy), so in most situations
|
||||||
everything will be in sync within a few seconds.
|
everything will be in sync within a few seconds.
|
||||||
|
|
||||||
| Method | Path | Produces |
|
| Method | Path | Produces |
|
||||||
|
@ -137,7 +137,7 @@ configuration that was registered with the instance.
|
||||||
It is important to note that the services known by the agent may be different
|
It is important to note that the services known by the agent may be different
|
||||||
from those reported by the catalog. This is usually due to changes being made
|
from those reported by the catalog. This is usually due to changes being made
|
||||||
while there is no leader elected. The agent performs active
|
while there is no leader elected. The agent performs active
|
||||||
[anti-entropy](/docs/internals/anti-entropy), so in most situations
|
[anti-entropy](/docs/architecture/anti-entropy), so in most situations
|
||||||
everything will be in sync within a few seconds.
|
everything will be in sync within a few seconds.
|
||||||
|
|
||||||
| Method | Path | Produces |
|
| Method | Path | Produces |
|
||||||
|
@ -231,7 +231,7 @@ $ curl \
|
||||||
```
|
```
|
||||||
|
|
||||||
The response has the same structure as the [service
|
The response has the same structure as the [service
|
||||||
definition](/docs/agent/services) with one extra field `ContentHash` which
|
definition](/docs/discovery/services) with one extra field `ContentHash` which
|
||||||
contains the [hash-based blocking
|
contains the [hash-based blocking
|
||||||
query](/api/features/blocking#hash-based-blocking-queries) hash for the result. The
|
query](/api/features/blocking#hash-based-blocking-queries) hash for the result. The
|
||||||
same hash is also present in `X-Consul-ContentHash`.
|
same hash is also present in `X-Consul-ContentHash`.
|
||||||
|
@ -601,13 +601,13 @@ The corresponding CLI command is [`consul services register`](/commands/services
|
||||||
|
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
Note that this endpoint, unlike most also [supports `snake_case`](/docs/agent/services#service-definition-parameter-case)
|
Note that this endpoint, unlike most also [supports `snake_case`](/docs/discovery/services#service-definition-parameter-case)
|
||||||
service definition keys for compatibility with the config file format.
|
service definition keys for compatibility with the config file format.
|
||||||
|
|
||||||
- `Name` `(string: <required>)` - Specifies the logical name of the service.
|
- `Name` `(string: <required>)` - Specifies the logical name of the service.
|
||||||
Many service instances may share the same logical service name. We recommend using
|
Many service instances may share the same logical service name. We recommend using
|
||||||
[valid DNS labels](https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_hostnames)
|
[valid DNS labels](https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_hostnames)
|
||||||
for [compatibility with external DNS](/docs/agent/services#service-and-tag-names-with-dns).
|
for [compatibility with external DNS](/docs/discovery/services#service-and-tag-names-with-dns).
|
||||||
|
|
||||||
- `ID` `(string: "")` - Specifies a unique ID for this service. This must be
|
- `ID` `(string: "")` - Specifies a unique ID for this service. This must be
|
||||||
unique per _agent_. This defaults to the `Name` parameter if not provided.
|
unique per _agent_. This defaults to the `Name` parameter if not provided.
|
||||||
|
@ -615,7 +615,7 @@ service definition keys for compatibility with the config file format.
|
||||||
- `Tags` `(array<string>: nil)` - Specifies a list of tags to assign to the
|
- `Tags` `(array<string>: nil)` - Specifies a list of tags to assign to the
|
||||||
service. These tags can be used for later filtering and are exposed via the APIs.
|
service. These tags can be used for later filtering and are exposed via the APIs.
|
||||||
We recommend using [valid DNS labels](https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_hostnames)
|
We recommend using [valid DNS labels](https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_hostnames)
|
||||||
for [compatibility with external DNS](/docs/agent/services#service-and-tag-names-with-dns)
|
for [compatibility with external DNS](/docs/discovery/services#service-and-tag-names-with-dns)
|
||||||
|
|
||||||
- `Address` `(string: "")` - Specifies the address of the service. If not
|
- `Address` `(string: "")` - Specifies the address of the service. If not
|
||||||
provided, the agent's address is used as the address for the service during
|
provided, the agent's address is used as the address for the service during
|
||||||
|
@ -639,9 +639,9 @@ service definition keys for compatibility with the config file format.
|
||||||
- `Kind` `(string: "")` - The kind of service. Defaults to "" which is a
|
- `Kind` `(string: "")` - The kind of service. Defaults to "" which is a
|
||||||
typical Consul service. This value may also be "connect-proxy" for
|
typical Consul service. This value may also be "connect-proxy" for
|
||||||
[Connect](/docs/connect) proxies representing another service,
|
[Connect](/docs/connect) proxies representing another service,
|
||||||
"mesh-gateway" for instances of a [mesh gateway](/docs/connect/mesh-gateway),
|
"mesh-gateway" for instances of a [mesh gateway](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters),
|
||||||
"terminating-gateway" for instances of a [terminating gateway](/docs/connect/terminating-gateway),
|
"terminating-gateway" for instances of a [terminating gateway](/docs/connect/gateways/terminating-gateway),
|
||||||
or "ingress-gateway" for instances of a [ingress gateway](/docs/connect/ingress-gateway).
|
or "ingress-gateway" for instances of a [ingress gateway](/docs/connect/gateways/ingress-gateway).
|
||||||
|
|
||||||
- `Proxy` `(Proxy: nil)` - From 1.2.3 on, specifies the configuration for a
|
- `Proxy` `(Proxy: nil)` - From 1.2.3 on, specifies the configuration for a
|
||||||
Connect service proxy instance. This is only valid if `Kind` defines a proxy or gateway.
|
Connect service proxy instance. This is only valid if `Kind` defines a proxy or gateway.
|
||||||
|
@ -681,7 +681,7 @@ service definition keys for compatibility with the config file format.
|
||||||
modifications would be lost.
|
modifications would be lost.
|
||||||
|
|
||||||
- `Weights` `(Weights: nil)` - Specifies weights for the service. Please see the
|
- `Weights` `(Weights: nil)` - Specifies weights for the service. Please see the
|
||||||
[service documentation](/docs/agent/services) for more information about
|
[service documentation](/docs/discovery/services) for more information about
|
||||||
weights. If this field is not provided weights will default to
|
weights. If this field is not provided weights will default to
|
||||||
`{"Passing": 1, "Warning": 1}`.
|
`{"Passing": 1, "Warning": 1}`.
|
||||||
|
|
||||||
|
@ -691,7 +691,7 @@ service definition keys for compatibility with the config file format.
|
||||||
are independent of one another. Updating the tags for the service registered
|
are independent of one another. Updating the tags for the service registered
|
||||||
on one node is independent of the same service (by name) registered on
|
on one node is independent of the same service (by name) registered on
|
||||||
another node. If `EnableTagOverride` is not specified the default value is
|
another node. If `EnableTagOverride` is not specified the default value is
|
||||||
`false`. See [anti-entropy syncs](/docs/internals/anti-entropy) for
|
`false`. See [anti-entropy syncs](/docs/architecture/anti-entropy) for
|
||||||
more info.
|
more info.
|
||||||
|
|
||||||
#### Connect Structure
|
#### Connect Structure
|
||||||
|
|
|
@ -17,7 +17,7 @@ API methods look similar.
|
||||||
This endpoint is a low-level mechanism for registering or updating
|
This endpoint is a low-level mechanism for registering or updating
|
||||||
entries in the catalog. It is usually preferable to instead use the
|
entries in the catalog. It is usually preferable to instead use the
|
||||||
[agent endpoints](/api/agent) for registration as they are simpler and
|
[agent endpoints](/api/agent) for registration as they are simpler and
|
||||||
perform [anti-entropy](/docs/internals/anti-entropy).
|
perform [anti-entropy](/docs/architecture/anti-entropy).
|
||||||
|
|
||||||
| Method | Path | Produces |
|
| Method | Path | Produces |
|
||||||
| ------ | ------------------- | ------------------ |
|
| ------ | ------------------- | ------------------ |
|
||||||
|
@ -54,7 +54,7 @@ The table below shows this endpoint's support for
|
||||||
provided, it will be defaulted to the value of the `Service.Service` property.
|
provided, it will be defaulted to the value of the `Service.Service` property.
|
||||||
Only one service with a given `ID` may be present per node. We recommend using
|
Only one service with a given `ID` may be present per node. We recommend using
|
||||||
[valid DNS labels](https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_hostnames)
|
[valid DNS labels](https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_hostnames)
|
||||||
for service definition names for [compatibility with external DNS](/docs/agent/services#service-and-tag-names-with-dns).
|
for service definition names for [compatibility with external DNS](/docs/discovery/services#service-and-tag-names-with-dns).
|
||||||
The service `Tags`, `Address`, `Meta`, and `Port` fields are all optional. For more
|
The service `Tags`, `Address`, `Meta`, and `Port` fields are all optional. For more
|
||||||
information about these fields and the implications of setting them,
|
information about these fields and the implications of setting them,
|
||||||
see the [Service - Agent API](/api/agent/service) page
|
see the [Service - Agent API](/api/agent/service) page
|
||||||
|
@ -74,7 +74,7 @@ The table below shows this endpoint's support for
|
||||||
check. The `Status` must be one of `passing`, `warning`, or `critical`.
|
check. The `Status` must be one of `passing`, `warning`, or `critical`.
|
||||||
|
|
||||||
The `Definition` field can be provided with details for a TCP or HTTP health
|
The `Definition` field can be provided with details for a TCP or HTTP health
|
||||||
check. For more information, see the [Health Checks](/docs/agent/checks) page.
|
check. For more information, see the [Health Checks](/docs/discovery/checks) page.
|
||||||
|
|
||||||
Multiple checks can be provided by replacing `Check` with `Checks` and
|
Multiple checks can be provided by replacing `Check` with `Checks` and
|
||||||
sending an array of `Check` objects.
|
sending an array of `Check` objects.
|
||||||
|
@ -168,7 +168,7 @@ $ curl \
|
||||||
This endpoint is a low-level mechanism for directly removing
|
This endpoint is a low-level mechanism for directly removing
|
||||||
entries from the Catalog. It is usually preferable to instead use the
|
entries from the Catalog. It is usually preferable to instead use the
|
||||||
[agent endpoints](/api/agent) for deregistration as they are simpler and
|
[agent endpoints](/api/agent) for deregistration as they are simpler and
|
||||||
perform [anti-entropy](/docs/internals/anti-entropy).
|
perform [anti-entropy](/docs/architecture/anti-entropy).
|
||||||
|
|
||||||
| Method | Path | Produces |
|
| Method | Path | Produces |
|
||||||
| ------ | --------------------- | ------------------ |
|
| ------ | --------------------- | ------------------ |
|
||||||
|
|
|
@ -13,7 +13,7 @@ The `/coordinate` endpoints query for the network coordinates for nodes in the
|
||||||
local datacenter as well as Consul servers in the local datacenter and remote
|
local datacenter as well as Consul servers in the local datacenter and remote
|
||||||
datacenters.
|
datacenters.
|
||||||
|
|
||||||
Please see the [Network Coordinates](/docs/internals/coordinates) internals
|
Please see the [Network Coordinates](/docs/architecture/coordinates) internals
|
||||||
guide for more information on how these coordinates are computed, and for
|
guide for more information on how these coordinates are computed, and for
|
||||||
details on how to perform calculations with them.
|
details on how to perform calculations with them.
|
||||||
|
|
||||||
|
|
|
@ -13,13 +13,13 @@ description: The /discovery-chain endpoints are for interacting with the discove
|
||||||
high-level proxy integration APIs may obviate the need for this API over time.
|
high-level proxy integration APIs may obviate the need for this API over time.
|
||||||
|
|
||||||
The `/discovery-chain` endpoint returns the compiled [discovery
|
The `/discovery-chain` endpoint returns the compiled [discovery
|
||||||
chain](/docs/internals/discovery-chain) for a service.
|
chain](/docs/connect/l7-traffic/discovery-chain) for a service.
|
||||||
|
|
||||||
This will fetch all related [configuration
|
This will fetch all related [configuration
|
||||||
entries](/docs/agent/config-entries) and render them into a form suitable
|
entries](/docs/agent/config-entries) and render them into a form suitable
|
||||||
for use by a [connect proxy](/docs/connect/proxies) implementation. This
|
for use by a [connect proxy](/docs/connect/proxies) implementation. This
|
||||||
is a key component of [L7 Traffic
|
is a key component of [L7 Traffic
|
||||||
Management](/docs/connect/l7-traffic-management).
|
Management](/docs/connect/l7-traffic).
|
||||||
|
|
||||||
## Read Compiled Discovery Chain
|
## Read Compiled Discovery Chain
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ The table below shows this endpoint's support for
|
||||||
parameter.
|
parameter.
|
||||||
|
|
||||||
- `OverrideMeshGateway` `(MeshGatewayConfig: <optional>)` - Overrides the final
|
- `OverrideMeshGateway` `(MeshGatewayConfig: <optional>)` - Overrides the final
|
||||||
[mesh gateway configuration](/docs/connect/mesh-gateway#connect-proxy-configuration)
|
[mesh gateway configuration](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters#connect-proxy-configuration)
|
||||||
for this any service resolved in the compiled chain.
|
for this any service resolved in the compiled chain.
|
||||||
|
|
||||||
This value comes from either the [proxy
|
This value comes from either the [proxy
|
||||||
|
@ -111,7 +111,7 @@ The table below shows this endpoint's support for
|
||||||
### Sample Compilations
|
### Sample Compilations
|
||||||
|
|
||||||
Full documentation for the output fields is found on the [discovery chain
|
Full documentation for the output fields is found on the [discovery chain
|
||||||
internals](/docs/internals/discovery-chain#compileddiscoverychain)
|
internals](/docs/connect/l7-traffic/discovery-chain#compileddiscoverychain)
|
||||||
page.
|
page.
|
||||||
|
|
||||||
#### Multi-Datacenter Failover
|
#### Multi-Datacenter Failover
|
||||||
|
|
|
@ -90,7 +90,7 @@ $ curl \
|
||||||
This endpoint returns the most recent events (up to 256) known by the agent. As a
|
This endpoint returns the most recent events (up to 256) known by the agent. As a
|
||||||
consequence of how the [event command](/commands/event) works, each
|
consequence of how the [event command](/commands/event) works, each
|
||||||
agent may have a different view of the events. Events are broadcast using the
|
agent may have a different view of the events. Events are broadcast using the
|
||||||
[gossip protocol](/docs/internals/gossip), so they have no global ordering
|
[gossip protocol](/docs/architecture/gossip), so they have no global ordering
|
||||||
nor do they make a promise of delivery.
|
nor do they make a promise of delivery.
|
||||||
|
|
||||||
| Method | Path | Produces |
|
| Method | Path | Produces |
|
||||||
|
@ -150,7 +150,7 @@ $ curl \
|
||||||
The semantics of this endpoint's blocking queries are slightly different. Most
|
The semantics of this endpoint's blocking queries are slightly different. Most
|
||||||
blocking queries provide a monotonic index and block until a newer index is
|
blocking queries provide a monotonic index and block until a newer index is
|
||||||
available. This can be supported as a consequence of the total ordering of the
|
available. This can be supported as a consequence of the total ordering of the
|
||||||
[consensus protocol](/docs/internals/consensus). With gossip, there is no
|
[consensus protocol](/docs/architecture/consensus). With gossip, there is no
|
||||||
ordering, and instead `X-Consul-Index` maps to the newest event that matches the
|
ordering, and instead `X-Consul-Index` maps to the newest event that matches the
|
||||||
query.
|
query.
|
||||||
|
|
||||||
|
|
|
@ -421,7 +421,7 @@ Parameters and response format are the same as
|
||||||
-> **1.8.0+:** This API is available in Consul versions 1.8.0 and later.
|
-> **1.8.0+:** This API is available in Consul versions 1.8.0 and later.
|
||||||
|
|
||||||
This endpoint returns the service instances providing an [ingress
|
This endpoint returns the service instances providing an [ingress
|
||||||
gateway](/docs/connect/ingress-gateway) for a service in a given datacenter.
|
gateway](/docs/connect/gateways/ingress-gateway) for a service in a given datacenter.
|
||||||
|
|
||||||
| Method | Path | Produces |
|
| Method | Path | Produces |
|
||||||
| ------ | -------------------------- | ------------------ |
|
| ------ | -------------------------- | ------------------ |
|
||||||
|
|
|
@ -40,7 +40,7 @@ Previously this was provided via a `?token=` query parameter. This functionality
|
||||||
exists on many endpoints for backwards compatibility, but its use is **highly
|
exists on many endpoints for backwards compatibility, but its use is **highly
|
||||||
discouraged**, since it can show up in access logs as part of the URL.
|
discouraged**, since it can show up in access logs as part of the URL.
|
||||||
|
|
||||||
To learn more about the ACL system read the [documentation](/docs/acl/acl-system).
|
To learn more about the ACL system read the [documentation](/docs/security/acl/acl-system).
|
||||||
|
|
||||||
## Version Prefix
|
## Version Prefix
|
||||||
|
|
||||||
|
|
|
@ -425,4 +425,4 @@ $ curl \
|
||||||
|
|
||||||
- `RTT` is an estimated network round trip time from the server answering the
|
- `RTT` is an estimated network round trip time from the server answering the
|
||||||
query to the given server, in nanoseconds. This is computed using [network
|
query to the given server, in nanoseconds. This is computed using [network
|
||||||
coordinates](/docs/internals/coordinates).
|
coordinates](/docs/architecture/coordinates).
|
||||||
|
|
|
@ -14,7 +14,7 @@ operations manually, please check the documentation for the
|
||||||
[`consul operator`](/commands/operator) command.
|
[`consul operator`](/commands/operator) command.
|
||||||
|
|
||||||
If ACLs are enabled then a token with operator privileges may be required in
|
If ACLs are enabled then a token with operator privileges may be required in
|
||||||
order to use this interface. Check the [ACL Rules documentation](/docs/acl/acl-rules#operator-rules)
|
order to use this interface. Check the [ACL Rules documentation](/docs/security/acl/acl-rules#operator-rules)
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
Check the [Outage Recovery](https://learn.hashicorp.com/tutorials/consul/recovery-outage) tutorial for some examples of
|
Check the [Outage Recovery](https://learn.hashicorp.com/tutorials/consul/recovery-outage) tutorial for some examples of
|
||||||
|
|
|
@ -9,7 +9,7 @@ description: |-
|
||||||
# Keyring Operator HTTP API
|
# Keyring Operator HTTP API
|
||||||
|
|
||||||
The `/operator/keyring` endpoints allow for management of the gossip encryption
|
The `/operator/keyring` endpoints allow for management of the gossip encryption
|
||||||
keyring. Please see the [Gossip Protocol Guide](/docs/internals/gossip) for
|
keyring. Please see the [Gossip Protocol Guide](/docs/architecture/gossip) for
|
||||||
more details on the gossip protocol and its use.
|
more details on the gossip protocol and its use.
|
||||||
|
|
||||||
## List Gossip Encryption Keys
|
## List Gossip Encryption Keys
|
||||||
|
@ -122,7 +122,7 @@ The table below shows this endpoint's support for
|
||||||
| ---------------- | ----------------- | ------------- | --------------- |
|
| ---------------- | ----------------- | ------------- | --------------- |
|
||||||
| `NO` | `none` | `none` | `keyring:write` |
|
| `NO` | `none` | `none` | `keyring:write` |
|
||||||
|
|
||||||
The corresponding CLI command is [`consul keyring -intstall`](/commands/keyring#install).
|
The corresponding CLI command is [`consul keyring -install`](/commands/keyring#install).
|
||||||
|
|
||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ description: |-
|
||||||
The `/operator/raft` endpoints provide tools for management of Raft the
|
The `/operator/raft` endpoints provide tools for management of Raft the
|
||||||
consensus subsystem and cluster quorum.
|
consensus subsystem and cluster quorum.
|
||||||
|
|
||||||
Please see the [Consensus Protocol Guide](/docs/internals/consensus) for
|
Please see the [Consensus Protocol Guide](/docs/architecture/consensus) for
|
||||||
more information about Raft consensus protocol and its use.
|
more information about Raft consensus protocol and its use.
|
||||||
|
|
||||||
## Read Configuration
|
## Read Configuration
|
||||||
|
|
|
@ -17,7 +17,7 @@ would be possible given the limited entry points exposed by DNS.
|
||||||
Check the [Geo Failover tutorial](https://learn.hashicorp.com/tutorials/consul/automate-geo-failover) for details and
|
Check the [Geo Failover tutorial](https://learn.hashicorp.com/tutorials/consul/automate-geo-failover) for details and
|
||||||
examples for using prepared queries to implement geo failover for services.
|
examples for using prepared queries to implement geo failover for services.
|
||||||
|
|
||||||
Check the [prepared query rules](/docs/agent/acl-rules#prepared-query-rules)
|
Check the [prepared query rules](/docs/security/acl/acl-rules#prepared-query-rules)
|
||||||
section of the agent ACL documentation for more details about how prepared
|
section of the agent ACL documentation for more details about how prepared
|
||||||
queries work with Consul's ACL system.
|
queries work with Consul's ACL system.
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ The table below shows this endpoint's support for
|
||||||
|
|
||||||
- `NearestN` `(int: 0)` - Specifies that the query will be forwarded to up
|
- `NearestN` `(int: 0)` - Specifies that the query will be forwarded to up
|
||||||
to `NearestN` other datacenters based on their estimated network round
|
to `NearestN` other datacenters based on their estimated network round
|
||||||
trip time using [Network Coordinates](/docs/internals/coordinates)
|
trip time using [Network Coordinates](/docs/architecture/coordinates)
|
||||||
from the WAN gossip pool. The median round trip time from the server
|
from the WAN gossip pool. The median round trip time from the server
|
||||||
handling the query to the servers in the remote datacenter is used to
|
handling the query to the servers in the remote datacenter is used to
|
||||||
determine the priority.
|
determine the priority.
|
||||||
|
@ -214,7 +214,7 @@ The table below shows this endpoint's support for
|
||||||
true, only nodes with checks in the passing state will be returned.
|
true, only nodes with checks in the passing state will be returned.
|
||||||
|
|
||||||
- `Near` `(string: "")` - Specifies a node to sort near based on distance
|
- `Near` `(string: "")` - Specifies a node to sort near based on distance
|
||||||
sorting using [Network Coordinates](/docs/internals/coordinates). The
|
sorting using [Network Coordinates](/docs/architecture/coordinates). The
|
||||||
nearest instance to the specified node will be returned first, and subsequent
|
nearest instance to the specified node will be returned first, and subsequent
|
||||||
nodes in the response will be sorted in ascending order of estimated
|
nodes in the response will be sorted in ascending order of estimated
|
||||||
round-trip times. If the node given does not exist, the nodes in the response
|
round-trip times. If the node given does not exist, the nodes in the response
|
||||||
|
|
|
@ -10,7 +10,7 @@ description: |-
|
||||||
|
|
||||||
The `/snapshot` endpoints save and restore the state of the Consul
|
The `/snapshot` endpoints save and restore the state of the Consul
|
||||||
servers for disaster recovery. Snapshots include all state managed by Consul's
|
servers for disaster recovery. Snapshots include all state managed by Consul's
|
||||||
Raft [consensus protocol](/docs/internals/consensus).
|
Raft [consensus protocol](/docs/architecture/consensus).
|
||||||
|
|
||||||
## Generate Snapshot
|
## Generate Snapshot
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ line. It exposes top-level commands for bootstrapping the ACL system,
|
||||||
managing tokens and policies, translating legacy rules, and setting the
|
managing tokens and policies, translating legacy rules, and setting the
|
||||||
tokens for use by an agent.
|
tokens for use by an agent.
|
||||||
|
|
||||||
ACLs are also accessible via the [HTTP API](/api/acl/acl).
|
ACLs are also accessible via the [HTTP API](/api-docs/acl).
|
||||||
|
|
||||||
Bootstrap Consul's ACLs:
|
Bootstrap Consul's ACLs:
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,6 @@ performs the important task of maintaining membership information,
|
||||||
running checks, announcing services, handling queries, etc.
|
running checks, announcing services, handling queries, etc.
|
||||||
|
|
||||||
Due to the power and flexibility of this command, the Consul agent
|
Due to the power and flexibility of this command, the Consul agent
|
||||||
is documented in its own section. See the [Consul Agent](/docs/agent/basics)
|
is documented in its own section. See the [Consul Agent](/docs/agent)
|
||||||
section for more information on how to use this command and the
|
section for more information on how to use this command and the
|
||||||
options it has.
|
options it has.
|
||||||
|
|
|
@ -14,7 +14,7 @@ Command: `consul connect expose`
|
||||||
The connect expose subcommand is used to expose a Connect-enabled service
|
The connect expose subcommand is used to expose a Connect-enabled service
|
||||||
through an Ingress gateway by modifying the gateway's configuration and adding
|
through an Ingress gateway by modifying the gateway's configuration and adding
|
||||||
an intention to allow traffic from the gateway to the service. See the
|
an intention to allow traffic from the gateway to the service. See the
|
||||||
[Ingress gateway documentation](/docs/connect/ingress-gateway) for more information
|
[Ingress gateway documentation](/docs/connect/gateways/ingress-gateway) for more information
|
||||||
about Ingress gateways.
|
about Ingress gateways.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
|
|
@ -19,14 +19,14 @@ The `event` command provides a mechanism to fire a custom user event to an
|
||||||
entire datacenter. These events are opaque to Consul, but they can be used
|
entire datacenter. These events are opaque to Consul, but they can be used
|
||||||
to build scripting infrastructure to do automated deploys, restart services,
|
to build scripting infrastructure to do automated deploys, restart services,
|
||||||
or perform any other orchestration action. Events can be handled by
|
or perform any other orchestration action. Events can be handled by
|
||||||
[using a watch](/docs/agent/watches).
|
[using a watch](/docs/dynamic-app-config/watches).
|
||||||
|
|
||||||
Under the hood, events are propagated using the [gossip protocol](/docs/internals/gossip).
|
Under the hood, events are propagated using the [gossip protocol](/docs/architecture/gossip).
|
||||||
|
|
||||||
While the details are not important for using events, an understanding of
|
While the details are not important for using events, an understanding of
|
||||||
the semantics is useful. The gossip layer will make a best-effort to deliver
|
the semantics is useful. The gossip layer will make a best-effort to deliver
|
||||||
the event, but there is **no guaranteed delivery**. Unlike most Consul data, which is
|
the event, but there is **no guaranteed delivery**. Unlike most Consul data, which is
|
||||||
replicated using [consensus](/docs/internals/consensus), event data
|
replicated using [consensus](/docs/architecture/consensus), event data
|
||||||
is purely peer-to-peer over gossip. This means it is not persisted and does
|
is purely peer-to-peer over gossip. This means it is not persisted and does
|
||||||
not have a total ordering. In practice, this means you cannot rely on the
|
not have a total ordering. In practice, this means you cannot rely on the
|
||||||
order of message delivery. An advantage however is that events can still
|
order of message delivery. An advantage however is that events can still
|
||||||
|
|
|
@ -17,7 +17,7 @@ the `web` service.
|
||||||
|
|
||||||
Remote execution works by specifying a job, which is stored in the KV store.
|
Remote execution works by specifying a job, which is stored in the KV store.
|
||||||
Agents are informed about the new job using the [event system](/commands/event),
|
Agents are informed about the new job using the [event system](/commands/event),
|
||||||
which propagates messages via the [gossip protocol](/docs/internals/gossip).
|
which propagates messages via the [gossip protocol](/docs/architecture/gossip).
|
||||||
As a result, delivery is best-effort, and there is **no guarantee** of execution.
|
As a result, delivery is best-effort, and there is **no guarantee** of execution.
|
||||||
|
|
||||||
While events are purely gossip driven, remote execution relies on the KV store
|
While events are purely gossip driven, remote execution relies on the KV store
|
||||||
|
|
|
@ -239,7 +239,7 @@ CONSUL_GRPC_ADDR=unix://var/run/consul_grpc.sock
|
||||||
```
|
```
|
||||||
|
|
||||||
If the agent is [configured with TLS
|
If the agent is [configured with TLS
|
||||||
certificates](/docs/agent/encryption#rpc-encryption-with-tls), then the
|
certificates](/docs/security/encryption#rpc-encryption-with-tls), then the
|
||||||
gRPC listener will require TLS and present the same certificate as the https
|
gRPC listener will require TLS and present the same certificate as the https
|
||||||
listener. As with `CONSUL_HTTP_ADDR`, if TLS is enabled either the `https://`
|
listener. As with `CONSUL_HTTP_ADDR`, if TLS is enabled either the `https://`
|
||||||
scheme should be used, or `CONSUL_HTTP_SSL` set.
|
scheme should be used, or `CONSUL_HTTP_SSL` set.
|
||||||
|
|
|
@ -19,9 +19,9 @@ There are currently the top-level keys for:
|
||||||
|
|
||||||
- agent: Provides information about the agent
|
- agent: Provides information about the agent
|
||||||
- consul: Information about the consul library (client or server)
|
- consul: Information about the consul library (client or server)
|
||||||
- raft: Provides info about the Raft [consensus library](/docs/internals/consensus)
|
- raft: Provides info about the Raft [consensus library](/docs/architecture/consensus)
|
||||||
- serf_lan: Provides info about the LAN [gossip pool](/docs/internals/gossip)
|
- serf_lan: Provides info about the LAN [gossip pool](/docs/architecture/gossip)
|
||||||
- serf_wan: Provides info about the WAN [gossip pool](/docs/internals/gossip)
|
- serf_wan: Provides info about the WAN [gossip pool](/docs/architecture/gossip)
|
||||||
|
|
||||||
Here is an example output:
|
Here is an example output:
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,6 @@ description: >-
|
||||||
Command: `consul keygen`
|
Command: `consul keygen`
|
||||||
|
|
||||||
The `keygen` command generates an encryption key that can be used for
|
The `keygen` command generates an encryption key that can be used for
|
||||||
[Consul agent traffic encryption](/docs/agent/encryption).
|
[Consul agent traffic encryption](/docs/security/encryption).
|
||||||
The keygen command uses a cryptographically
|
The keygen command uses a cryptographically
|
||||||
strong pseudo-random number generator to generate the key.
|
strong pseudo-random number generator to generate the key.
|
||||||
|
|
|
@ -10,7 +10,7 @@ Command: `consul keyring`
|
||||||
Corresponding HTTP API Endpoints: [\[VARIES\] /v1/operator/keyring](/api-docs/operator/keyring)
|
Corresponding HTTP API Endpoints: [\[VARIES\] /v1/operator/keyring](/api-docs/operator/keyring)
|
||||||
|
|
||||||
The `keyring` command is used to examine and modify the encryption keys used in
|
The `keyring` command is used to examine and modify the encryption keys used in
|
||||||
Consul's [Gossip Pools](/docs/internals/gossip). It is capable of
|
Consul's [Gossip Pools](/docs/architecture/gossip). It is capable of
|
||||||
distributing new encryption keys to the cluster, retiring old encryption keys,
|
distributing new encryption keys to the cluster, retiring old encryption keys,
|
||||||
and changing the keys used by the cluster to encrypt messages.
|
and changing the keys used by the cluster to encrypt messages.
|
||||||
|
|
||||||
|
|
|
@ -133,7 +133,7 @@ Success! Data written to: leaderboard/scores
|
||||||
|
|
||||||
~> **Warning**: For secret and sensitive values, you should consider using a
|
~> **Warning**: For secret and sensitive values, you should consider using a
|
||||||
secret management solution like **[HashiCorp's Vault](https://learn.hashicorp.com/tutorials/vault/static-secrets?in=vault/secrets-management)**.
|
secret management solution like **[HashiCorp's Vault](https://learn.hashicorp.com/tutorials/vault/static-secrets?in=vault/secrets-management)**.
|
||||||
While it is possible to encrpyt data before writing it to Consul's KV store,
|
While it is possible to encrypt data before writing it to Consul's KV store,
|
||||||
Consul provides no built-in support for encryption at-rest.
|
Consul provides no built-in support for encryption at-rest.
|
||||||
|
|
||||||
### Atomic Check-And-Set (CAS)
|
### Atomic Check-And-Set (CAS)
|
||||||
|
|
|
@ -269,7 +269,7 @@ spoken by the node.
|
||||||
|
|
||||||
`RTT` is an estimated network round trip time from the server answering the query
|
`RTT` is an estimated network round trip time from the server answering the query
|
||||||
to the given server, in a human-readable format. This is computed using
|
to the given server, in a human-readable format. This is computed using
|
||||||
[network coordinates](/docs/internals/coordinates).
|
[network coordinates](/docs/architecture/coordinates).
|
||||||
|
|
||||||
The return code will indicate success or failure.
|
The return code will indicate success or failure.
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ Corresponding HTTP API Endpoints: [\[GET\] /v1/coordinate/datacenters](/api-docs
|
||||||
The `rtt` command estimates the network round trip time between two nodes using
|
The `rtt` command estimates the network round trip time between two nodes using
|
||||||
Consul's network coordinate model of the cluster.
|
Consul's network coordinate model of the cluster.
|
||||||
|
|
||||||
See the [Network Coordinates](/docs/internals/coordinates) internals guide
|
See the [Network Coordinates](/docs/architecture/coordinates) internals guide
|
||||||
for more information on how these coordinates are computed.
|
for more information on how these coordinates are computed.
|
||||||
|
|
||||||
The table below shows this command's [required ACLs](/api#authentication). Configuration of
|
The table below shows this command's [required ACLs](/api#authentication). Configuration of
|
||||||
|
|
|
@ -17,7 +17,7 @@ be paired with `services register`.
|
||||||
This is just one method for service deregistration. If the service was
|
This is just one method for service deregistration. If the service was
|
||||||
registered with a configuration file, then deleting that file and
|
registered with a configuration file, then deleting that file and
|
||||||
[reloading](/commands/reload) Consul is the correct method to
|
[reloading](/commands/reload) Consul is the correct method to
|
||||||
deregister. See [Service Definition](/docs/agent/services) for more
|
deregister. See [Service Definition](/docs/discovery/services) for more
|
||||||
information about registering services generally.
|
information about registering services generally.
|
||||||
|
|
||||||
The table below shows this command's [required ACLs](/api#authentication). Configuration of
|
The table below shows this command's [required ACLs](/api#authentication). Configuration of
|
||||||
|
|
|
@ -8,7 +8,7 @@ page_title: 'Commands: Services'
|
||||||
Command: `consul services`
|
Command: `consul services`
|
||||||
|
|
||||||
The `services` command has subcommands for interacting with Consul services
|
The `services` command has subcommands for interacting with Consul services
|
||||||
registered with the [local agent](/docs/agent/basics). These provide
|
registered with the [local agent](/docs/agent). These provide
|
||||||
useful commands such as `register` and `deregister` for easily registering
|
useful commands such as `register` and `deregister` for easily registering
|
||||||
services in scripts, dev mode, etc.
|
services in scripts, dev mode, etc.
|
||||||
To view all services in the catalog, instead of only agent-local services,
|
To view all services in the catalog, instead of only agent-local services,
|
||||||
|
|
|
@ -15,7 +15,7 @@ service deregistration. This command simplifies service registration from
|
||||||
scripts, in dev mode, etc.
|
scripts, in dev mode, etc.
|
||||||
|
|
||||||
This is just one method of service registration. Services can also be
|
This is just one method of service registration. Services can also be
|
||||||
registered by placing a [service definition](/docs/agent/services)
|
registered by placing a [service definition](/docs/discovery/services)
|
||||||
in the Consul agent configuration directory and issuing a
|
in the Consul agent configuration directory and issuing a
|
||||||
[reload](/commands/reload). This approach is easiest for
|
[reload](/commands/reload). This approach is easiest for
|
||||||
configuration management systems that other systems that have access to
|
configuration management systems that other systems that have access to
|
||||||
|
@ -74,7 +74,7 @@ arguments are given, the flags below can be used to register a single
|
||||||
service.
|
service.
|
||||||
|
|
||||||
Note that the behavior of each of the fields below is exactly the same
|
Note that the behavior of each of the fields below is exactly the same
|
||||||
as when constructing a standard [service definition](/docs/agent/services).
|
as when constructing a standard [service definition](/docs/discovery/services).
|
||||||
Please refer to that documentation for full details.
|
Please refer to that documentation for full details.
|
||||||
|
|
||||||
- `-id` - The ID of the service. This will default to `-name` if not set.
|
- `-id` - The ID of the service. This will default to `-name` if not set.
|
||||||
|
|
|
@ -19,7 +19,7 @@ a process with the latest values of the view. If no process is specified,
|
||||||
the current values are dumped to STDOUT which can be a useful way to inspect
|
the current values are dumped to STDOUT which can be a useful way to inspect
|
||||||
data in Consul.
|
data in Consul.
|
||||||
|
|
||||||
There is more [documentation on watches here](/docs/agent/watches).
|
There is more [documentation on watches here](/docs/dynamic-app-config/watches).
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ Usage: `consul watch [options] [child...]`
|
||||||
The only required option is `-type` which specifies the particular
|
The only required option is `-type` which specifies the particular
|
||||||
data view. Depending on the type, various options may be required
|
data view. Depending on the type, various options may be required
|
||||||
or optionally provided. There is more documentation on watch
|
or optionally provided. There is more documentation on watch
|
||||||
[specifications here](/docs/agent/watches).
|
[specifications here](/docs/dynamic-app-config/watches).
|
||||||
|
|
||||||
#### API Options
|
#### API Options
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ Agents run in either client or server mode. Client nodes are lightweight process
|
||||||
They interface with the server nodes for most operations and maintain very little state of their own.
|
They interface with the server nodes for most operations and maintain very little state of their own.
|
||||||
Clients run on every node where services are running.
|
Clients run on every node where services are running.
|
||||||
|
|
||||||
In addition to the core agent operations, server nodes participate in the [consensus quorum](/docs/internals/consensus).
|
In addition to the core agent operations, server nodes participate in the [consensus quorum](/docs/architecture/consensus).
|
||||||
The quorum is based on the Raft protocol, which provides strong consistency and availability in the case of failure.
|
The quorum is based on the Raft protocol, which provides strong consistency and availability in the case of failure.
|
||||||
Server nodes should run on dedicated instances because they are more resource intensive than client nodes.
|
Server nodes should run on dedicated instances because they are more resource intensive than client nodes.
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ As a result, agent crashes are handled in the same manner is network failures.
|
||||||
Once a node is marked as failed, this information is updated in the service
|
Once a node is marked as failed, this information is updated in the service
|
||||||
catalog.
|
catalog.
|
||||||
|
|
||||||
-> **Note:** Updating the catalog is only possible if the servers can still [form a quorum](/docs/internals/consensus).
|
-> **Note:** Updating the catalog is only possible if the servers can still [form a quorum](/docs/architecture/consensus).
|
||||||
Once the network recovers or a crashed agent restarts, the cluster will repair itself and unmark a node as failed.
|
Once the network recovers or a crashed agent restarts, the cluster will repair itself and unmark a node as failed.
|
||||||
The health check in the catalog will also be updated to reflect the current state.
|
The health check in the catalog will also be updated to reflect the current state.
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ Environment variables **cannot** be used to configure the Consul client. They
|
||||||
_can_ be used when running other `consul` CLI commands that connect with a
|
_can_ be used when running other `consul` CLI commands that connect with a
|
||||||
running agent, e.g. `CONSUL_HTTP_ADDR=192.168.0.1:8500 consul members`.
|
running agent, e.g. `CONSUL_HTTP_ADDR=192.168.0.1:8500 consul members`.
|
||||||
|
|
||||||
See [Consul Commands](/docs/commands#environment-variables) for more
|
See [Consul Commands](/commands#environment-variables) for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
## Command-line Options ((#commandline_options))
|
## Command-line Options ((#commandline_options))
|
||||||
|
@ -260,7 +260,7 @@ The options below are all specified on the command-line.
|
||||||
PTR query responses will always use `-domain`, since the desired domain cannot be included in the query.
|
PTR query responses will always use `-domain`, since the desired domain cannot be included in the query.
|
||||||
|
|
||||||
- `-enable-script-checks` ((#\_enable_script_checks)) This controls whether
|
- `-enable-script-checks` ((#\_enable_script_checks)) This controls whether
|
||||||
[health checks that execute scripts](/docs/agent/checks) are enabled on this
|
[health checks that execute scripts](/docs/discovery/checks) are enabled on this
|
||||||
agent, and defaults to `false` so operators must opt-in to allowing these. This
|
agent, and defaults to `false` so operators must opt-in to allowing these. This
|
||||||
was added in Consul 0.9.0.
|
was added in Consul 0.9.0.
|
||||||
|
|
||||||
|
@ -414,7 +414,7 @@ The options below are all specified on the command-line.
|
||||||
As of Consul 0.9.1, `retry-join` accepts a unified interface using the
|
As of Consul 0.9.1, `retry-join` accepts a unified interface using the
|
||||||
[go-discover](https://github.com/hashicorp/go-discover) library for doing
|
[go-discover](https://github.com/hashicorp/go-discover) library for doing
|
||||||
automatic cluster joining using cloud metadata. For more information, see
|
automatic cluster joining using cloud metadata. For more information, see
|
||||||
the [Cloud Auto-join page](/docs/agent/cloud-auto-join).
|
the [Cloud Auto-join page](/docs/install/cloud-auto-join).
|
||||||
|
|
||||||
<CodeBlockConfig heading="Using Cloud Auto-Joining">
|
<CodeBlockConfig heading="Using Cloud Auto-Joining">
|
||||||
|
|
||||||
|
@ -506,7 +506,7 @@ The options below are all specified on the command-line.
|
||||||
|
|
||||||
- `-raft-protocol` ((#\_raft_protocol)) - This controls the internal version
|
- `-raft-protocol` ((#\_raft_protocol)) - This controls the internal version
|
||||||
of the Raft consensus protocol used for server communications. This must be set
|
of the Raft consensus protocol used for server communications. This must be set
|
||||||
to 3 in order to gain access to Autopilot features, with the exception of [`cleanup_dead_servers`](#cleanup_dead_servers). Defaults to 3 in Consul 1.0.0 and later (defaulted to 2 previously). See [Raft Protocol Version Compatibility](/docs/upgrade-specific#raft-protocol-version-compatibility) for more details.
|
to 3 in order to gain access to Autopilot features, with the exception of [`cleanup_dead_servers`](#cleanup_dead_servers). Defaults to 3 in Consul 1.0.0 and later (defaulted to 2 previously). See [Raft Protocol Version Compatibility](/docs/upgrading/upgrade-specific#raft-protocol-version-compatibility) for more details.
|
||||||
|
|
||||||
- `-recursor` ((#\_recursor)) - Specifies the address of an upstream DNS
|
- `-recursor` ((#\_recursor)) - Specifies the address of an upstream DNS
|
||||||
server. This option may be provided multiple times, and is functionally equivalent
|
server. This option may be provided multiple times, and is functionally equivalent
|
||||||
|
@ -686,7 +686,7 @@ Valid time units are 'ns', 'us' (or 'µs'), 'ms', 's', 'm', 'h'."
|
||||||
leader node, the down policy is applied. In "allow" mode, all actions are permitted,
|
leader node, the down policy is applied. In "allow" mode, all actions are permitted,
|
||||||
"deny" restricts all operations, and "extend-cache" allows any cached objects
|
"deny" restricts all operations, and "extend-cache" allows any cached objects
|
||||||
to be used, ignoring the expiry time of the cached entry. If the request uses an
|
to be used, ignoring the expiry time of the cached entry. If the request uses an
|
||||||
ACL that is not in the cache, "extend-cache" falls back to the behaviour of
|
ACL that is not in the cache, "extend-cache" falls back to the behavior of
|
||||||
`default_policy`.
|
`default_policy`.
|
||||||
The value "async-cache" acts the same way as "extend-cache"
|
The value "async-cache" acts the same way as "extend-cache"
|
||||||
but performs updates asynchronously when ACL is present but its TTL is expired,
|
but performs updates asynchronously when ACL is present but its TTL is expired,
|
||||||
|
@ -710,7 +710,7 @@ Valid time units are 'ns', 'us' (or 'µs'), 'ms', 's', 'm', 'h'."
|
||||||
secondary Consul datacenters will perform replication of only ACL policies and
|
secondary Consul datacenters will perform replication of only ACL policies and
|
||||||
roles. Setting this configuration will will enable ACL token replication and
|
roles. Setting this configuration will will enable ACL token replication and
|
||||||
allow for the creation of both [local tokens](/api/acl/tokens#local) and
|
allow for the creation of both [local tokens](/api/acl/tokens#local) and
|
||||||
[auth methods](/docs/acl/auth-methods) in connected secondary datacenters.
|
[auth methods](/docs/security/acl/auth-methods) in connected secondary datacenters.
|
||||||
|
|
||||||
~> **Warning:** When enabling ACL token replication on the secondary datacenter,
|
~> **Warning:** When enabling ACL token replication on the secondary datacenter,
|
||||||
global tokens already present in the secondary datacenter will be lost. For
|
global tokens already present in the secondary datacenter will be lost. For
|
||||||
|
@ -1102,7 +1102,7 @@ Valid time units are 'ns', 'us' (or 'µs'), 'ms', 's', 'm', 'h'."
|
||||||
|
|
||||||
- `static` This object controls configuring the static authorizer setup in the Consul
|
- `static` This object controls configuring the static authorizer setup in the Consul
|
||||||
configuration file. Almost all sub-keys are identical to those provided by the [JWT
|
configuration file. Almost all sub-keys are identical to those provided by the [JWT
|
||||||
Auth Method](/docs/acl/auth-methods/jwt).
|
Auth Method](/docs/security/acl/auth-methods/jwt).
|
||||||
|
|
||||||
- `jwt_validation_pub_keys` (Defaults to `[]`) A list of PEM-encoded public keys
|
- `jwt_validation_pub_keys` (Defaults to `[]`) A list of PEM-encoded public keys
|
||||||
to use to authenticate signatures locally.
|
to use to authenticate signatures locally.
|
||||||
|
@ -1634,13 +1634,13 @@ bind_addr = "{{ GetPrivateInterfaces | include \"network\" \"10.0.0.0/8\" | attr
|
||||||
- `encrypt_verify_incoming` - This is an optional
|
- `encrypt_verify_incoming` - This is an optional
|
||||||
parameter that can be used to disable enforcing encryption for incoming gossip
|
parameter that can be used to disable enforcing encryption for incoming gossip
|
||||||
in order to upshift from unencrypted to encrypted gossip on a running cluster.
|
in order to upshift from unencrypted to encrypted gossip on a running cluster.
|
||||||
See [this section](/docs/agent/encryption#configuring-gossip-encryption-on-an-existing-cluster)
|
See [this section](/docs/security/encryption#configuring-gossip-encryption-on-an-existing-cluster)
|
||||||
for more information. Defaults to true.
|
for more information. Defaults to true.
|
||||||
|
|
||||||
- `encrypt_verify_outgoing` - This is an optional
|
- `encrypt_verify_outgoing` - This is an optional
|
||||||
parameter that can be used to disable enforcing encryption for outgoing gossip
|
parameter that can be used to disable enforcing encryption for outgoing gossip
|
||||||
in order to upshift from unencrypted to encrypted gossip on a running cluster.
|
in order to upshift from unencrypted to encrypted gossip on a running cluster.
|
||||||
See [this section](/docs/agent/encryption#configuring-gossip-encryption-on-an-existing-cluster)
|
See [this section](/docs/security/encryption#configuring-gossip-encryption-on-an-existing-cluster)
|
||||||
for more information. Defaults to true.
|
for more information. Defaults to true.
|
||||||
|
|
||||||
- `disable_keyring_file` - Equivalent to the
|
- `disable_keyring_file` - Equivalent to the
|
||||||
|
@ -2068,7 +2068,7 @@ bind_addr = "{{ GetPrivateInterfaces | include \"network\" \"10.0.0.0/8\" | attr
|
||||||
|
|
||||||
- `read_replica` - Equivalent to the [`-read-replica` command-line flag](#_read_replica).
|
- `read_replica` - Equivalent to the [`-read-replica` command-line flag](#_read_replica).
|
||||||
|
|
||||||
- `session_ttl_min` The minimum allowed session TTL. This ensures sessions are not created with TTL's
|
- `session_ttl_min` The minimum allowed session TTL. This ensures sessions are not created with TTLs
|
||||||
shorter than the specified limit. It is recommended to keep this limit at or above
|
shorter than the specified limit. It is recommended to keep this limit at or above
|
||||||
the default to encourage clients to send infrequent heartbeats. Defaults to 10s.
|
the default to encourage clients to send infrequent heartbeats. Defaults to 10s.
|
||||||
|
|
||||||
|
@ -2423,7 +2423,7 @@ bind_addr = "{{ GetPrivateInterfaces | include \"network\" \"10.0.0.0/8\" | attr
|
||||||
|
|
||||||
- `watches` - Watches is a list of watch specifications which
|
- `watches` - Watches is a list of watch specifications which
|
||||||
allow an external process to be automatically invoked when a particular data view
|
allow an external process to be automatically invoked when a particular data view
|
||||||
is updated. See the [watch documentation](/docs/agent/watches) for more detail.
|
is updated. See the [watch documentation](/docs/dynamic-app-config/watches) for more detail.
|
||||||
Watches can be modified when the configuration is reloaded.
|
Watches can be modified when the configuration is reloaded.
|
||||||
|
|
||||||
## TLS Configuration Reference
|
## TLS Configuration Reference
|
||||||
|
|
|
@ -19,7 +19,7 @@ policies to support full conditional logic and integration with external systems
|
||||||
|
|
||||||
Sentinel policies are applied during writes to the KV Store.
|
Sentinel policies are applied during writes to the KV Store.
|
||||||
|
|
||||||
An optional `sentinel` field specifying code and enforcement level can be added to [ACL policy definitions](/docs/agent/acl-rules#sentinel-integration) for Consul KV. The following policy ensures that the value written during a KV update must end with "dc1".
|
An optional `sentinel` field specifying code and enforcement level can be added to [ACL policy definitions](/docs/security/acl/acl-rules#sentinel-integration) for Consul KV. The following policy ensures that the value written during a KV update must end with "dc1".
|
||||||
|
|
||||||
<CodeBlockConfig heading="Ensure values written during KV updates end in 'dc1'">
|
<CodeBlockConfig heading="Ensure values written during KV updates end in 'dc1'">
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ health checks and updating their local state.
|
||||||
Services and checks within the context of an agent have a rich set of
|
Services and checks within the context of an agent have a rich set of
|
||||||
configuration options available. This is because the agent is responsible for
|
configuration options available. This is because the agent is responsible for
|
||||||
generating information about its services and their health through the use of
|
generating information about its services and their health through the use of
|
||||||
[health checks](/docs/agent/checks).
|
[health checks](/docs/discovery/checks).
|
||||||
|
|
||||||
#### Catalog
|
#### Catalog
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ responsible for recording and returning information _about_ services, nodes, and
|
||||||
health.
|
health.
|
||||||
|
|
||||||
The catalog is maintained only by server nodes. This is because the catalog is
|
The catalog is maintained only by server nodes. This is because the catalog is
|
||||||
replicated via the [Raft log](/docs/internals/consensus) to provide a
|
replicated via the [Raft log](/docs/architecture/consensus) to provide a
|
||||||
consolidated and consistent view of the cluster.
|
consolidated and consistent view of the cluster.
|
||||||
|
|
||||||
### Anti-Entropy
|
### Anti-Entropy
|
||||||
|
@ -118,7 +118,7 @@ database and its monitoring service Redis Sentinel have this kind of
|
||||||
relationship. Redis instances are responsible for much of their
|
relationship. Redis instances are responsible for much of their
|
||||||
configuration, but Sentinels determine whether the Redis instance is a
|
configuration, but Sentinels determine whether the Redis instance is a
|
||||||
primary or a secondary. Using the Consul service configuration item
|
primary or a secondary. Using the Consul service configuration item
|
||||||
[enable_tag_override](/docs/agent/services) you can instruct the
|
[enable_tag_override](/docs/discovery/services) you can instruct the
|
||||||
Consul agent on which the Redis database is running to NOT update the
|
Consul agent on which the Redis database is running to NOT update the
|
||||||
tags during anti-entropy synchronization. For more information see
|
tags during anti-entropy synchronization. For more information see
|
||||||
[Services](/docs/agent/services#enable-tag-override-and-anti-entropy) page.
|
[Services](/docs/discovery/services#enable-tag-override-and-anti-entropy) page.
|
||||||
|
|
|
@ -14,7 +14,7 @@ users and developers of Consul form a mental model of how it works, this
|
||||||
page documents the system architecture.
|
page documents the system architecture.
|
||||||
|
|
||||||
-> Before describing the architecture, we recommend reading the
|
-> Before describing the architecture, we recommend reading the
|
||||||
[glossary](/docs/glossary) of terms to help
|
[glossary](/docs/install/glossary) of terms to help
|
||||||
clarify what is being discussed.
|
clarify what is being discussed.
|
||||||
|
|
||||||
The architecture concepts in this document can be used with the [Reference Architecture guide](https://learn.hashicorp.com/tutorials/consul/reference-architecture?utm_source=consul.io&utm_medium=docs) when deploying Consul in production.
|
The architecture concepts in this document can be used with the [Reference Architecture guide](https://learn.hashicorp.com/tutorials/consul/reference-architecture?utm_source=consul.io&utm_medium=docs) when deploying Consul in production.
|
||||||
|
@ -36,7 +36,7 @@ availability in the case of failure and performance, as consensus gets progressi
|
||||||
slower as more machines are added. However, there is no limit to the number of clients,
|
slower as more machines are added. However, there is no limit to the number of clients,
|
||||||
and they can easily scale into the thousands or tens of thousands.
|
and they can easily scale into the thousands or tens of thousands.
|
||||||
|
|
||||||
All the agents that are in a datacenter participate in a [gossip protocol](/docs/internals/gossip).
|
All the agents that are in a datacenter participate in a [gossip protocol](/docs/architecture/gossip).
|
||||||
This means there is a gossip pool that contains all the agents for a given datacenter. This serves
|
This means there is a gossip pool that contains all the agents for a given datacenter. This serves
|
||||||
a few purposes: first, there is no need to configure clients with the addresses of servers;
|
a few purposes: first, there is no need to configure clients with the addresses of servers;
|
||||||
discovery is done automatically. Second, the work of detecting agent failures
|
discovery is done automatically. Second, the work of detecting agent failures
|
||||||
|
@ -47,7 +47,7 @@ when important events such as leader election take place.
|
||||||
The servers in each datacenter are all part of a single Raft peer set. This means that
|
The servers in each datacenter are all part of a single Raft peer set. This means that
|
||||||
they work together to elect a single leader, a selected server which has extra duties. The leader
|
they work together to elect a single leader, a selected server which has extra duties. The leader
|
||||||
is responsible for processing all queries and transactions. Transactions must also be replicated to
|
is responsible for processing all queries and transactions. Transactions must also be replicated to
|
||||||
all peers as part of the [consensus protocol](/docs/internals/consensus). Because of this
|
all peers as part of the [consensus protocol](/docs/architecture/consensus). Because of this
|
||||||
requirement, when a non-leader server receives an RPC request, it forwards it to the cluster leader.
|
requirement, when a non-leader server receives an RPC request, it forwards it to the cluster leader.
|
||||||
|
|
||||||
The server agents also operate as part of a WAN gossip pool. This pool is different from the LAN pool
|
The server agents also operate as part of a WAN gossip pool. This pool is different from the LAN pool
|
||||||
|
@ -82,8 +82,8 @@ disrupted or the servers are temporarily unavailable.
|
||||||
## Getting in depth
|
## Getting in depth
|
||||||
|
|
||||||
At this point we've covered the high level architecture of Consul, but there are many
|
At this point we've covered the high level architecture of Consul, but there are many
|
||||||
more details for each of the subsystems. The [consensus protocol](/docs/internals/consensus) is
|
more details for each of the subsystems. The [consensus protocol](/docs/architecture/consensus) is
|
||||||
documented in detail as is the [gossip protocol](/docs/internals/gossip). The [documentation](/docs/internals/security)
|
documented in detail as is the [gossip protocol](/docs/architecture/gossip). The [documentation](/docs/security)
|
||||||
for the security model and protocols used are also available.
|
for the security model and protocols used are also available.
|
||||||
|
|
||||||
For other details, either consult the code, ask in IRC, or reach out to the mailing list.
|
For other details, either consult the code, ask in IRC, or reach out to the mailing list.
|
||||||
|
|
|
@ -1038,7 +1038,7 @@ You can specify the following parameters to configure ingress gateway configurat
|
||||||
type: 'string: ""',
|
type: 'string: ""',
|
||||||
description: `The name of the service that should be exposed
|
description: `The name of the service that should be exposed
|
||||||
through this listener. This can be either a service registered in the
|
through this listener. This can be either a service registered in the
|
||||||
catalog, or a service defined only by [other config entries](/docs/connect/l7-traffic-management). If the wildcard specifier,
|
catalog, or a service defined only by [other config entries](/docs/connect/l7-traffic). If the wildcard specifier,
|
||||||
\`*\`, is provided, then ALL services will be exposed through the listener.
|
\`*\`, is provided, then ALL services will be exposed through the listener.
|
||||||
This is not supported for listeners with protocol \`tcp\`.`,
|
This is not supported for listeners with protocol \`tcp\`.`,
|
||||||
},
|
},
|
||||||
|
|
|
@ -98,7 +98,7 @@ spec:
|
||||||
</Tab>
|
</Tab>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
||||||
Note that the Kuberetes example does not include a `partition` field. Configuration entries are applied on Kubernetes using [custom resource definitions (CRD)](/docs/k8s/crds), which can only be scoped to their own partition.
|
Note that the Kubernetes example does not include a `partition` field. Configuration entries are applied on Kubernetes using [custom resource definitions (CRD)](/docs/k8s/crds), which can only be scoped to their own partition.
|
||||||
|
|
||||||
## Available Fields
|
## Available Fields
|
||||||
|
|
||||||
|
|
|
@ -285,7 +285,7 @@ spec:
|
||||||
name: 'MeshGateway',
|
name: 'MeshGateway',
|
||||||
type: 'MeshGatewayConfig: <optional>',
|
type: 'MeshGatewayConfig: <optional>',
|
||||||
description: `Controls the default
|
description: `Controls the default
|
||||||
[mesh gateway configuration](/docs/connect/mesh-gateway#connect-proxy-configuration)
|
[mesh gateway configuration](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters#connect-proxy-configuration)
|
||||||
for all proxies. Added in v1.6.0.`,
|
for all proxies. Added in v1.6.0.`,
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
|
|
@ -359,7 +359,7 @@ spec:
|
||||||
[\`service-defaults\`](/docs/connect/config-entries/service-defaults)
|
[\`service-defaults\`](/docs/connect/config-entries/service-defaults)
|
||||||
config entry for the upstream destination service. Configuring it in a
|
config entry for the upstream destination service. Configuring it in a
|
||||||
proxy upstream config will not fully enable some
|
proxy upstream config will not fully enable some
|
||||||
[L7 features](/docs/connect/l7-traffic-management).
|
[L7 features](/docs/connect/l7-traffic).
|
||||||
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
@ -374,7 +374,7 @@ spec:
|
||||||
[\`service-resolver\`](/docs/connect/config-entries/service-resolver)
|
[\`service-resolver\`](/docs/connect/config-entries/service-resolver)
|
||||||
config entry for the upstream destination service.
|
config entry for the upstream destination service.
|
||||||
Configuring it in a proxy upstream config will not fully enable some
|
Configuring it in a proxy upstream config will not fully enable some
|
||||||
[L7 features](/docs/connect/l7-traffic-management).
|
[L7 features](/docs/connect/l7-traffic).
|
||||||
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
||||||
`,
|
`,
|
||||||
yaml: `The number of milliseconds to allow when making upstream connections before timing out.<br><br>
|
yaml: `The number of milliseconds to allow when making upstream connections before timing out.<br><br>
|
||||||
|
@ -384,7 +384,7 @@ spec:
|
||||||
[\`ServiceResolver\`](/docs/connect/config-entries/service-resolver)
|
[\`ServiceResolver\`](/docs/connect/config-entries/service-resolver)
|
||||||
CRD for the upstream destination service.
|
CRD for the upstream destination service.
|
||||||
Configuring it in a proxy upstream config will not fully enable some
|
Configuring it in a proxy upstream config will not fully enable some
|
||||||
[L7 features](/docs/connect/l7-traffic-management).
|
[L7 features](/docs/connect/l7-traffic).
|
||||||
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
@ -393,8 +393,8 @@ spec:
|
||||||
name: 'MeshGateway',
|
name: 'MeshGateway',
|
||||||
type: 'MeshGatewayConfig: <optional>',
|
type: 'MeshGatewayConfig: <optional>',
|
||||||
description: `Controls the default
|
description: `Controls the default
|
||||||
[mesh gateway configuration](/docs/connect/mesh-gateway#connect-proxy-configuration)
|
[mesh gateway configuration](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters#connect-proxy-configuration)
|
||||||
for this upstream.`,
|
for this upstream.`,
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
name: 'Mode',
|
name: 'Mode',
|
||||||
|
@ -480,7 +480,7 @@ spec:
|
||||||
[\`service-defaults\`](/docs/connect/config-entries/service-defaults)
|
[\`service-defaults\`](/docs/connect/config-entries/service-defaults)
|
||||||
config entry for the upstream destination service. Configuring it in a
|
config entry for the upstream destination service. Configuring it in a
|
||||||
proxy upstream config will not fully enable some
|
proxy upstream config will not fully enable some
|
||||||
[L7 features](/docs/connect/l7-traffic-management).
|
[L7 features](/docs/connect/l7-traffic).
|
||||||
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
||||||
`,
|
`,
|
||||||
yaml: `The protocol for the upstream listener.<br><br>
|
yaml: `The protocol for the upstream listener.<br><br>
|
||||||
|
@ -490,7 +490,7 @@ spec:
|
||||||
[\`ServiceDefaults\`](/docs/connect/config-entries/service-defaults)
|
[\`ServiceDefaults\`](/docs/connect/config-entries/service-defaults)
|
||||||
CRD for the upstream destination service. Configuring it in a
|
CRD for the upstream destination service. Configuring it in a
|
||||||
proxy upstream config will not fully enable some
|
proxy upstream config will not fully enable some
|
||||||
[L7 features](/docs/connect/l7-traffic-management).
|
[L7 features](/docs/connect/l7-traffic).
|
||||||
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
@ -506,7 +506,7 @@ spec:
|
||||||
[\`service-resolver\`](/docs/connect/config-entries/service-resolver)
|
[\`service-resolver\`](/docs/connect/config-entries/service-resolver)
|
||||||
config entry for the upstream destination service.
|
config entry for the upstream destination service.
|
||||||
Configuring it in a proxy upstream config will not fully enable some
|
Configuring it in a proxy upstream config will not fully enable some
|
||||||
[L7 features](/docs/connect/l7-traffic-management).
|
[L7 features](/docs/connect/l7-traffic).
|
||||||
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
||||||
`,
|
`,
|
||||||
yaml: `The number of milliseconds to allow when making upstream connections before timing out.<br><br>
|
yaml: `The number of milliseconds to allow when making upstream connections before timing out.<br><br>
|
||||||
|
@ -516,7 +516,7 @@ spec:
|
||||||
[\`ServiceResolver\`](/docs/connect/config-entries/service-resolver)
|
[\`ServiceResolver\`](/docs/connect/config-entries/service-resolver)
|
||||||
CRD for the upstream destination service.
|
CRD for the upstream destination service.
|
||||||
Configuring it in a proxy upstream config will not fully enable some
|
Configuring it in a proxy upstream config will not fully enable some
|
||||||
[L7 features](/docs/connect/l7-traffic-management).
|
[L7 features](/docs/connect/l7-traffic).
|
||||||
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
@ -525,7 +525,7 @@ spec:
|
||||||
name: 'MeshGateway',
|
name: 'MeshGateway',
|
||||||
type: 'MeshGatewayConfig: <optional>',
|
type: 'MeshGatewayConfig: <optional>',
|
||||||
description: `Controls the default
|
description: `Controls the default
|
||||||
[mesh gateway configuration](/docs/connect/mesh-gateway#connect-proxy-configuration)
|
[mesh gateway configuration](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters#connect-proxy-configuration)
|
||||||
for this upstream.`,
|
for this upstream.`,
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
@ -629,7 +629,7 @@ spec:
|
||||||
name: 'MeshGateway',
|
name: 'MeshGateway',
|
||||||
type: 'MeshGatewayConfig: <optional>',
|
type: 'MeshGatewayConfig: <optional>',
|
||||||
description: `Controls the default
|
description: `Controls the default
|
||||||
[mesh gateway configuration](/docs/connect/mesh-gateway#connect-proxy-configuration)
|
[mesh gateway configuration](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters#connect-proxy-configuration)
|
||||||
for this service. Added in v1.6.0.`,
|
for this service. Added in v1.6.0.`,
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
|
|
|
@ -21,7 +21,7 @@ and discovery terminates.
|
||||||
## Interaction with other Config Entries
|
## Interaction with other Config Entries
|
||||||
|
|
||||||
- Service resolver config entries are a component of [L7 Traffic
|
- Service resolver config entries are a component of [L7 Traffic
|
||||||
Management](/docs/connect/l7-traffic-management).
|
Management](/docs/connect/l7-traffic).
|
||||||
|
|
||||||
## UI
|
## UI
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ service of the same name.
|
||||||
## Interaction with other Config Entries
|
## Interaction with other Config Entries
|
||||||
|
|
||||||
- Service router config entries are a component of [L7 Traffic
|
- Service router config entries are a component of [L7 Traffic
|
||||||
Management](/docs/connect/l7-traffic-management).
|
Management](/docs/connect/l7-traffic).
|
||||||
|
|
||||||
- Service router config entries are restricted to only services that define
|
- Service router config entries are restricted to only services that define
|
||||||
their protocol as HTTP-based via a corresponding
|
their protocol as HTTP-based via a corresponding
|
||||||
|
|
|
@ -25,7 +25,7 @@ resolution stage.
|
||||||
## Interaction with other Config Entries
|
## Interaction with other Config Entries
|
||||||
|
|
||||||
- Service splitter config entries are a component of [L7 Traffic
|
- Service splitter config entries are a component of [L7 Traffic
|
||||||
Management](/docs/connect/l7-traffic-management).
|
Management](/docs/connect/l7-traffic).
|
||||||
|
|
||||||
- Service splitter config entries are restricted to only services that define
|
- Service splitter config entries are restricted to only services that define
|
||||||
their protocol as http-based via a corresponding
|
their protocol as http-based via a corresponding
|
||||||
|
|
|
@ -20,7 +20,7 @@ and will apply to all instances of the gateway with that name.
|
||||||
across all federated Consul datacenters. If terminating gateways in different Consul datacenters need to route to different
|
across all federated Consul datacenters. If terminating gateways in different Consul datacenters need to route to different
|
||||||
sets of services within their datacenter then the terminating gateways **must** be registered with different names.
|
sets of services within their datacenter then the terminating gateways **must** be registered with different names.
|
||||||
|
|
||||||
See [Terminating Gateway](/docs/connect/terminating-gateway) for more information.
|
See [Terminating Gateway](/docs/connect/gateways/terminating-gateway) for more information.
|
||||||
|
|
||||||
## TLS Origination
|
## TLS Origination
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ You can override centralized configurations for individual proxy instances in
|
||||||
their
|
their
|
||||||
[sidecar service definitions](/docs/connect/registration/sidecar-service),
|
[sidecar service definitions](/docs/connect/registration/sidecar-service),
|
||||||
and the default protocols for service instances in their [service
|
and the default protocols for service instances in their [service
|
||||||
registrations](/docs/agent/services).
|
registrations](/docs/discovery/services).
|
||||||
|
|
||||||
## Schedulers
|
## Schedulers
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ Connect can be used with Nomad to provide secure service-to-service
|
||||||
communication between Nomad jobs and task groups. The ability to use the dynamic
|
communication between Nomad jobs and task groups. The ability to use the dynamic
|
||||||
port feature of Nomad makes Connect particularly easy to use. Learn about how to
|
port feature of Nomad makes Connect particularly easy to use. Learn about how to
|
||||||
configure Connect on Nomad by reading the
|
configure Connect on Nomad by reading the
|
||||||
[integration documentation](/docs/connect/platform/nomad)
|
[integration documentation](/docs/connect/nomad)
|
||||||
|
|
||||||
### Kubernetes
|
### Kubernetes
|
||||||
|
|
||||||
|
|
|
@ -23,9 +23,9 @@ appropriate destination based on the server name requested. The data within the
|
||||||
the Gateway.
|
the Gateway.
|
||||||
|
|
||||||
As of Consul 1.8.0, mesh gateways can also forward gossip and RPC traffic between Consul servers.
|
As of Consul 1.8.0, mesh gateways can also forward gossip and RPC traffic between Consul servers.
|
||||||
This is enabled by [WAN federation via mesh gateways](/docs/connect/gateways/wan-federation-via-mesh-gateways).
|
This is enabled by [WAN federation via mesh gateways](/docs/connect/gateways/mesh-gateway/wan-federation-via-mesh-gateways).
|
||||||
|
|
||||||
For more information about mesh gateways, review the [complete documentation](/docs/connect/gateways/mesh-gateway)
|
For more information about mesh gateways, review the [complete documentation](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters)
|
||||||
and the [mesh gateway tutorial](https://learn.hashicorp.com/tutorials/consul/service-mesh-gateways).
|
and the [mesh gateway tutorial](https://learn.hashicorp.com/tutorials/consul/service-mesh-gateways).
|
||||||
|
|
||||||
![Mesh Gateway Architecture](/img/mesh-gateways.png)
|
![Mesh Gateway Architecture](/img/mesh-gateways.png)
|
||||||
|
|
|
@ -27,7 +27,7 @@ They operate by sniffing and extracting the server name indication (SNI) header
|
||||||
|
|
||||||
Mesh gateways enable the following scenarios:
|
Mesh gateways enable the following scenarios:
|
||||||
|
|
||||||
- **Federate multiple datacenters across a WAN**. Since Consul 1.8.0, mesh gateways can forward gossip and RPC traffic between Consul servers. See [WAN federation via mesh gateways](/docs/connect/gateways/wan-federation-via-mesh-gateways) for additional information.
|
* **Federate multiple datacenters across a WAN**. Since Consul 1.8.0, mesh gateways can forward gossip and RPC traffic between Consul servers. See [WAN federation via mesh gateways](/docs/connect/gateways/mesh-gateway/wan-federation-via-mesh-gateways) for additional information.
|
||||||
- **Service-to-service communication across datacenters**. Refer to [Enabling Service-to-service Traffic Across Datacenters](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters) for additional information.
|
- **Service-to-service communication across datacenters**. Refer to [Enabling Service-to-service Traffic Across Datacenters](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters) for additional information.
|
||||||
- **Service-to-service communication across admin partitions**. Since Consul 1.11.0, you can create administrative boundaries for single Consul deployments called "admin partitions". You can use mesh gateways to facilitate cross-partition communication. Refer to [Enabling Service-to-service Traffic Across Admin Partitions](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-partitions) for additional information.
|
- **Service-to-service communication across admin partitions**. Since Consul 1.11.0, you can create administrative boundaries for single Consul deployments called "admin partitions". You can use mesh gateways to facilitate cross-partition communication. Refer to [Enabling Service-to-service Traffic Across Admin Partitions](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-partitions) for additional information.
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ The following diagram describes the architecture for using mesh gateways for cro
|
||||||
|
|
||||||
Ensure that your Consul environment meets the following requirements.
|
Ensure that your Consul environment meets the following requirements.
|
||||||
|
|
||||||
### Consul
|
### Consul
|
||||||
|
|
||||||
* Consul version 1.6.0 or newer.
|
* Consul version 1.6.0 or newer.
|
||||||
* A local Consul agent is required to manage its configuration.
|
* A local Consul agent is required to manage its configuration.
|
||||||
|
@ -35,18 +35,18 @@ Ensure that your Consul environment meets the following requirements.
|
||||||
* Each datacenters must be [WAN joined](https://learn.hashicorp.com/tutorials/consul/federarion-gossip-wan).
|
* Each datacenters must be [WAN joined](https://learn.hashicorp.com/tutorials/consul/federarion-gossip-wan).
|
||||||
* The [primary datacenter](/docs/agent/options#primary_datacenter) must be set to the same value in both datacenters. This specifies which datacenter is the authority for Connect certificates and is required for services in all datacenters to establish mutual TLS with each other.
|
* The [primary datacenter](/docs/agent/options#primary_datacenter) must be set to the same value in both datacenters. This specifies which datacenter is the authority for Connect certificates and is required for services in all datacenters to establish mutual TLS with each other.
|
||||||
* [gRPC](/docs/agent/options#grpc_port) must be enabled.
|
* [gRPC](/docs/agent/options#grpc_port) must be enabled.
|
||||||
* If you want to [enable gateways globally](/docs/connect/mesh-gateway#enabling-gateways-globally) you must enable [centralized configuration](/docs/agent/options#enable_central_service_config).
|
* If you want to [enable gateways globally](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters#enabling-gateways-globally) you must enable [centralized configuration](/docs/agent/options#enable_central_service_config).
|
||||||
|
|
||||||
### Network
|
### Network
|
||||||
|
|
||||||
* General network connectivity to all services within its local Consul datacenter.
|
* General network connectivity to all services within its local Consul datacenter.
|
||||||
* General network connectivity to all mesh gateways within remote Consul datacenters.
|
* General network connectivity to all mesh gateways within remote Consul datacenters.
|
||||||
|
|
||||||
### Proxy
|
### Proxy
|
||||||
|
|
||||||
Envoy is the only proxy with mesh gateway capabilities in Consul.
|
Envoy is the only proxy with mesh gateway capabilities in Consul.
|
||||||
|
|
||||||
Mesh gateway proxies receive their configuration through Consul, which automatically generates it based on the proxy's registration.
|
Mesh gateway proxies receive their configuration through Consul, which automatically generates it based on the proxy's registration.
|
||||||
Consul can only translate mesh gateway registration information into Envoy configuration.
|
Consul can only translate mesh gateway registration information into Envoy configuration.
|
||||||
|
|
||||||
Sidecar proxies that send traffic to an upstream service through a gateway need to know the location of that gateway. They discover the gateway based on their sidecar proxy registrations. Consul can only translate the gateway registration information into Envoy configuration.
|
Sidecar proxies that send traffic to an upstream service through a gateway need to know the location of that gateway. They discover the gateway based on their sidecar proxy registrations. Consul can only translate the gateway registration information into Envoy configuration.
|
||||||
|
@ -264,4 +264,4 @@ service:
|
||||||
mesh_gateway:
|
mesh_gateway:
|
||||||
- mode: none
|
- mode: none
|
||||||
```
|
```
|
||||||
</CodeTabs>
|
</CodeTabs>
|
||||||
|
|
|
@ -25,10 +25,10 @@ Ensure that your Consul environment meets the following requirements.
|
||||||
* Consul Enterprise version 1.11.0 or newer.
|
* Consul Enterprise version 1.11.0 or newer.
|
||||||
* A local Consul agent is required to manage its configuration.
|
* A local Consul agent is required to manage its configuration.
|
||||||
* Consul service mesh must be enabled in all partitions. Refer to the [`connect` documentation](/docs/agent/options#connect) for details.
|
* Consul service mesh must be enabled in all partitions. Refer to the [`connect` documentation](/docs/agent/options#connect) for details.
|
||||||
* Each partition must have a unique name. Refer to the [admin partitions documentation](/docs/enteprise/admin-partitions) for details.
|
* Each partition must have a unique name. Refer to the [admin partitions documentation](/docs/enterprise/admin-partitions) for details.
|
||||||
* If you want to [enable gateways globally](/docs/connect/mesh-gateway#enabling-gateways-globally) you must enable [centralized configuration](/docs/agent/options#enable_central_service_config).
|
* If you want to [enable gateways globally](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters#enabling-gateways-globally) you must enable [centralized configuration](/docs/agent/options#enable_central_service_config).
|
||||||
|
|
||||||
### Proxy
|
### Proxy
|
||||||
|
|
||||||
Envoy is the only proxy with mesh gateway capabilities in Consul.
|
Envoy is the only proxy with mesh gateway capabilities in Consul.
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ description: |-
|
||||||
|
|
||||||
-> **1.8.0+:** This feature is available in Consul versions 1.8.0 and higher
|
-> **1.8.0+:** This feature is available in Consul versions 1.8.0 and higher
|
||||||
|
|
||||||
~> This topic requires familiarity with [mesh gateways](/docs/connect/gateways/mesh-gateway).
|
~> This topic requires familiarity with [mesh gateways](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters).
|
||||||
|
|
||||||
WAN federation via mesh gateways allows for Consul servers in different datacenters
|
WAN federation via mesh gateways allows for Consul servers in different datacenters
|
||||||
to be federated exclusively through mesh gateways.
|
to be federated exclusively through mesh gateways.
|
||||||
|
@ -38,7 +38,7 @@ Sometimes this prerequisite is difficult or undesirable to meet:
|
||||||
|
|
||||||
Operators looking to simplify their WAN deployment and minimize the exposed
|
Operators looking to simplify their WAN deployment and minimize the exposed
|
||||||
security surface area can elect to join these datacenters together using [mesh
|
security surface area can elect to join these datacenters together using [mesh
|
||||||
gateways](/docs/connect/gateways/mesh-gateway) to do so.
|
gateways](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters) to do so.
|
||||||
|
|
||||||
[![WAN federation with mesh gateways](/img/wan-federation-connectivity-mesh-gateways.png)](/img/wan-federation-connectivity-mesh-gateways.png)
|
[![WAN federation with mesh gateways](/img/wan-federation-connectivity-mesh-gateways.png)](/img/wan-federation-connectivity-mesh-gateways.png)
|
||||||
|
|
||||||
|
|
|
@ -22,14 +22,14 @@ For additional use cases and usage patterns, review the tutorial for
|
||||||
[understanding terminating gateways](https://learn.hashicorp.com/tutorials/consul/service-mesh-terminating-gateways).
|
[understanding terminating gateways](https://learn.hashicorp.com/tutorials/consul/service-mesh-terminating-gateways).
|
||||||
|
|
||||||
~> **Known limitations:** Terminating gateways currently do not support targeting service subsets with
|
~> **Known limitations:** Terminating gateways currently do not support targeting service subsets with
|
||||||
[L7 configuration](/docs/connect/l7-traffic-management). They route to all instances of a service with no capabilities
|
[L7 configuration](/docs/connect/l7-traffic). They route to all instances of a service with no capabilities
|
||||||
for filtering by instance.
|
for filtering by instance.
|
||||||
|
|
||||||
## Security Considerations
|
## Security Considerations
|
||||||
|
|
||||||
~> We recommend that terminating gateways are not exposed to the WAN or open internet. This is because terminating gateways
|
~> We recommend that terminating gateways are not exposed to the WAN or open internet. This is because terminating gateways
|
||||||
hold certificates to decrypt Consul Connect traffic directed at them and may be configured with credentials to connect
|
hold certificates to decrypt Consul Connect traffic directed at them and may be configured with credentials to connect
|
||||||
to linked services. Connections over the WAN or open internet should flow through [mesh gateways](/docs/connect/mesh-gateway)
|
to linked services. Connections over the WAN or open internet should flow through [mesh gateways](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters)
|
||||||
whenever possible since they are not capable of decrypting traffic or connecting directly to services.
|
whenever possible since they are not capable of decrypting traffic or connecting directly to services.
|
||||||
|
|
||||||
By specifying a path to a [CA file](/docs/connect/config-entries/terminating-gateway#cafile) connections
|
By specifying a path to a [CA file](/docs/connect/config-entries/terminating-gateway#cafile) connections
|
||||||
|
@ -120,7 +120,7 @@ All services registered in the Consul catalog must be associated with a node, ev
|
||||||
not managed by a Consul client agent. All agent-less services with the same address can be registered under the same node name and address.
|
not managed by a Consul client agent. All agent-less services with the same address can be registered under the same node name and address.
|
||||||
However, ensure that the [node name](/api/catalog#node) for external services registered directly in the catalog
|
However, ensure that the [node name](/api/catalog#node) for external services registered directly in the catalog
|
||||||
does not match the node name of any Consul client agent node. If the node name overlaps with the node name of a Consul client agent,
|
does not match the node name of any Consul client agent node. If the node name overlaps with the node name of a Consul client agent,
|
||||||
Consul's [anti-entropy sync](/docs/internals/anti-entropy) will delete the services registered via the `/catalog/register` HTTP API endpoint.
|
Consul's [anti-entropy sync](/docs/architecture/anti-entropy) will delete the services registered via the `/catalog/register` HTTP API endpoint.
|
||||||
|
|
||||||
For a complete example of how to register external services review the
|
For a complete example of how to register external services review the
|
||||||
[external services tutorial](https://learn.hashicorp.com/tutorials/consul/service-registration-external-services).
|
[external services tutorial](https://learn.hashicorp.com/tutorials/consul/service-registration-external-services).
|
||||||
|
|
|
@ -224,7 +224,7 @@ A single node in the compiled discovery chain.
|
||||||
be considered healthy.
|
be considered healthy.
|
||||||
|
|
||||||
- `MeshGateway` `(MeshGatewayConfig)` - The [mesh gateway
|
- `MeshGateway` `(MeshGatewayConfig)` - The [mesh gateway
|
||||||
configuration](/docs/connect/mesh-gateway#connect-proxy-configuration)
|
configuration](/docs/connect/gateways/mesh-gateway/service-to-service-traffic-datacenters#connect-proxy-configuration)
|
||||||
to use when connecting to this target's service instances.
|
to use when connecting to this target's service instances.
|
||||||
|
|
||||||
- `Mode` `(string: "")` - One of `none`, `local`, or `remote`.
|
- `Mode` `(string: "")` - One of `none`, `local`, or `remote`.
|
||||||
|
|
|
@ -138,7 +138,7 @@ natively. This enables the service to be returned as part of service
|
||||||
discovery for Connect-capable services, used by other Connect-native applications
|
discovery for Connect-capable services, used by other Connect-native applications
|
||||||
and client [proxies](/docs/connect/proxies).
|
and client [proxies](/docs/connect/proxies).
|
||||||
|
|
||||||
This can be specified directly in the [service definition](/docs/agent/services):
|
This can be specified directly in the [service definition](/docs/discovery/services):
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
|
|
@ -46,7 +46,7 @@ Find other possible metrics syncs in the [Connect Envoy documentation](/docs/con
|
||||||
|
|
||||||
You can specify the [service protocol](/docs/connect/config-entries/service-defaults#protocol)
|
You can specify the [service protocol](/docs/connect/config-entries/service-defaults#protocol)
|
||||||
in the `service-defaults` configuration entry. You can override it in the
|
in the `service-defaults` configuration entry. You can override it in the
|
||||||
[service registration](/docs/agent/services). By default, proxies only give
|
[service registration](/docs/discovery/services). By default, proxies only give
|
||||||
you L4 metrics. This protocol allows proxies to handle requests at the right L7
|
you L4 metrics. This protocol allows proxies to handle requests at the right L7
|
||||||
protocol and emit richer L7 metrics. It also allows proxies to make per-request
|
protocol and emit richer L7 metrics. It also allows proxies to make per-request
|
||||||
load balancing and routing decisions.
|
load balancing and routing decisions.
|
||||||
|
|
|
@ -23,7 +23,7 @@ Consul can configure Envoy sidecars to proxy traffic over the following protocol
|
||||||
|
|
||||||
On Consul 1.5.0 and older, Envoy proxies can only proxy TCP traffic at L4.
|
On Consul 1.5.0 and older, Envoy proxies can only proxy TCP traffic at L4.
|
||||||
|
|
||||||
Some [L7 features](/docs/connect/l7-traffic-management) can be configured using [configuration entries](/docs/agent/config-entries). You can add [custom Envoy configurations](#advanced-configuration) to the [proxy service definition](/docs/connect/registration/service-registration) to use Envoy features that are not currently exposed through configuration entries. Adding custom Envoy configurations to the service definition is an interim solution that enables you to use the more powerful features of Envoy.
|
Some [L7 features](/docs/connect/l7-traffic) can be configured using [configuration entries](/docs/agent/config-entries). You can add [custom Envoy configurations](#advanced-configuration) to the [proxy service definition](/docs/connect/registration/service-registration) to use Envoy features that are not currently exposed through configuration entries. Adding custom Envoy configurations to the service definition is an interim solution that enables you to use the more powerful features of Envoy.
|
||||||
|
|
||||||
~> **Note:** When using Envoy with Consul and not using the [`consul connect envoy` command](/commands/connect/envoy)
|
~> **Note:** When using Envoy with Consul and not using the [`consul connect envoy` command](/commands/connect/envoy)
|
||||||
Envoy must be run with the `--max-obj-name-len` option set to `256` or greater for Envoy versions prior to 1.11.0.
|
Envoy must be run with the `--max-obj-name-len` option set to `256` or greater for Envoy versions prior to 1.11.0.
|
||||||
|
@ -240,7 +240,7 @@ defaults that are inherited by all services.
|
||||||
[`service-defaults`](/docs/connect/config-entries/service-defaults)
|
[`service-defaults`](/docs/connect/config-entries/service-defaults)
|
||||||
config entry for the service. Configuring it in a
|
config entry for the service. Configuring it in a
|
||||||
proxy config will not fully enable some [L7
|
proxy config will not fully enable some [L7
|
||||||
features](/docs/connect/l7-traffic-management).
|
features](/docs/connect/l7-traffic).
|
||||||
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
||||||
|
|
||||||
- `bind_address` - Override the address Envoy's public listener binds to. By
|
- `bind_address` - Override the address Envoy's public listener binds to. By
|
||||||
|
@ -274,7 +274,7 @@ definition](/docs/connect/registration/service-registration) or
|
||||||
[`service-defaults`](/docs/connect/config-entries/service-defaults)
|
[`service-defaults`](/docs/connect/config-entries/service-defaults)
|
||||||
config entry for the upstream destination service. Configuring it in a
|
config entry for the upstream destination service. Configuring it in a
|
||||||
proxy upstream config will not fully enable some [L7
|
proxy upstream config will not fully enable some [L7
|
||||||
features](/docs/connect/l7-traffic-management).
|
features](/docs/connect/l7-traffic).
|
||||||
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
It is supported here for backwards compatibility with Consul versions prior to 1.6.0.
|
||||||
|
|
||||||
- `connect_timeout_ms` - The number of milliseconds to allow when making upstream
|
- `connect_timeout_ms` - The number of milliseconds to allow when making upstream
|
||||||
|
|
|
@ -127,7 +127,7 @@ If you are only implementing L4 support in your proxy, set the
|
||||||
fetching the discovery chain so that L7 features, such as HTTP routing rules, are
|
fetching the discovery chain so that L7 features, such as HTTP routing rules, are
|
||||||
not returned.
|
not returned.
|
||||||
|
|
||||||
For each [target](/docs/internals/discovery-chain#targets) in the resulting
|
For each [target](/docs/connect/l7-traffic/discovery-chain#targets) in the resulting
|
||||||
discovery chain, a list of healthy, Connect-capable endpoints may be fetched
|
discovery chain, a list of healthy, Connect-capable endpoints may be fetched
|
||||||
from the [`/v1/health/connect/:service_id`] API endpoint as described in the [Service
|
from the [`/v1/health/connect/:service_id`] API endpoint as described in the [Service
|
||||||
Discovery](#service-discovery) section.
|
Discovery](#service-discovery) section.
|
||||||
|
|
|
@ -18,7 +18,7 @@ definition.
|
||||||
!> **Consul 1.6.0 removes Managed Proxies completely.**
|
!> **Consul 1.6.0 removes Managed Proxies completely.**
|
||||||
This documentation is provided for prior versions only. You may consider using
|
This documentation is provided for prior versions only. You may consider using
|
||||||
[sidecar service
|
[sidecar service
|
||||||
registrations](/docs/connect/proxies/sidecar-service) instead.
|
registrations](/docs/connect/registration/sidecar-service) instead.
|
||||||
|
|
||||||
Managed proxies have been deprecated since Consul 1.3 and have been fully removed
|
Managed proxies have been deprecated since Consul 1.3 and have been fully removed
|
||||||
in Consul 1.6. Anyone using Managed Proxies should aim to change their workflow
|
in Consul 1.6. Anyone using Managed Proxies should aim to change their workflow
|
||||||
|
@ -42,7 +42,7 @@ with other workloads. So the high implementation cost of building robust process
|
||||||
supervision didn't actually benefit most real use-cases.
|
supervision didn't actually benefit most real use-cases.
|
||||||
|
|
||||||
Instead of this Connect 1.3.0 introduces the concept of [sidecar service
|
Instead of this Connect 1.3.0 introduces the concept of [sidecar service
|
||||||
registrations](/docs/connect/proxies/sidecar-service) which
|
registrations](/docs/connect/registration/sidecar-service) which
|
||||||
have almost all of the benefits of simpler configuration but without any of the
|
have almost all of the benefits of simpler configuration but without any of the
|
||||||
additional process management complexity. As a result they can be used to
|
additional process management complexity. As a result they can be used to
|
||||||
simplify configuration in both container-based and realistic production
|
simplify configuration in both container-based and realistic production
|
||||||
|
@ -55,7 +55,7 @@ page will document how they work in the interim.
|
||||||
|
|
||||||
-> **Deprecation Note:** It's _strongly_ recommended you do not build anything
|
-> **Deprecation Note:** It's _strongly_ recommended you do not build anything
|
||||||
using Managed proxies and consider using [sidecar service
|
using Managed proxies and consider using [sidecar service
|
||||||
registrations](/docs/connect/proxies/sidecar-service) instead.
|
registrations](/docs/connect/registration/sidecar-service) instead.
|
||||||
|
|
||||||
Managed proxies are given
|
Managed proxies are given
|
||||||
a unique proxy-specific ACL token that allows read-only access to Connect
|
a unique proxy-specific ACL token that allows read-only access to Connect
|
||||||
|
@ -103,7 +103,7 @@ to re-adopt them on restart.
|
||||||
### Minimal Configuration
|
### Minimal Configuration
|
||||||
|
|
||||||
Managed proxies are configured within a
|
Managed proxies are configured within a
|
||||||
[service definition](/docs/agent/services). The simplest possible
|
[service definition](/docs/discovery/services). The simplest possible
|
||||||
managed proxy configuration is an empty configuration. This enables the
|
managed proxy configuration is an empty configuration. This enables the
|
||||||
default managed proxy and starts a listener for that service:
|
default managed proxy and starts a listener for that service:
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ description: >-
|
||||||
# Proxy Registration
|
# Proxy Registration
|
||||||
|
|
||||||
To make Connect aware of proxies you will need to register them in a [service
|
To make Connect aware of proxies you will need to register them in a [service
|
||||||
definition](/docs/agent/services), just like you would register any other service with Consul. This section outlines your options for registering Connect proxies, either using independent registrations, or in nested sidecar registrations.
|
definition](/docs/discovery/services), just like you would register any other service with Consul. This section outlines your options for registering Connect proxies, either using independent registrations, or in nested sidecar registrations.
|
||||||
|
|
||||||
## Proxy Service Registration
|
## Proxy Service Registration
|
||||||
|
|
||||||
|
|
|
@ -193,7 +193,7 @@ You can configure the service mesh proxy to create listeners for upstream servic
|
||||||
|
|
||||||
Upstreams support multiple destination types. The following examples include information about each implementation.
|
Upstreams support multiple destination types. The following examples include information about each implementation.
|
||||||
|
|
||||||
-> **Snake case**: The examples in this topic use `snake_case` because the syntax is supported in configuration files and API registrations. See [Service Definition Parameter Case](/docs/agent/services#service-definition-parameter-case) for additional information.
|
-> **Snake case**: The examples in this topic use `snake_case` because the syntax is supported in configuration files and API registrations. See [Service Definition Parameter Case](/docs/discovery/services#service-definition-parameter-case) for additional information.
|
||||||
|
|
||||||
<CodeTabs heading="Example service destination upstream">
|
<CodeTabs heading="Example service destination upstream">
|
||||||
<CodeBlockConfig>
|
<CodeBlockConfig>
|
||||||
|
@ -306,7 +306,7 @@ The following examples show additional configuration for transparent proxies.
|
||||||
Added in v1.10.0.
|
Added in v1.10.0.
|
||||||
|
|
||||||
-> Note that `snake_case` is used here as it works in both [config file and API
|
-> Note that `snake_case` is used here as it works in both [config file and API
|
||||||
registrations](/docs/agent/services#service-definition-parameter-case).
|
registrations](/docs/discovery/services#service-definition-parameter-case).
|
||||||
|
|
||||||
#### Configure a proxy listener for outbound traffic on port 22500
|
#### Configure a proxy listener for outbound traffic on port 22500
|
||||||
|
|
||||||
|
@ -332,7 +332,7 @@ registrations](/docs/agent/services#service-definition-parameter-case).
|
||||||
The following examples show all possible mesh gateway configurations.
|
The following examples show all possible mesh gateway configurations.
|
||||||
|
|
||||||
-> Note that `snake_case` is used here as it works in both [config file and API
|
-> Note that `snake_case` is used here as it works in both [config file and API
|
||||||
registrations](/docs/agent/services#service-definition-parameter-case).
|
registrations](/docs/discovery/services#service-definition-parameter-case).
|
||||||
|
|
||||||
#### Using a Local/Egress Gateway in the Local Datacenter
|
#### Using a Local/Egress Gateway in the Local Datacenter
|
||||||
|
|
||||||
|
@ -390,7 +390,7 @@ non-Connect-enabled applications to contact an HTTP endpoint.
|
||||||
Some examples include: exposing a `/metrics` path for Prometheus or `/healthz` for kubelet liveness checks.
|
Some examples include: exposing a `/metrics` path for Prometheus or `/healthz` for kubelet liveness checks.
|
||||||
|
|
||||||
-> Note that `snake_case` is used here as it works in both [config file and API
|
-> Note that `snake_case` is used here as it works in both [config file and API
|
||||||
registrations](/docs/agent/services#service-definition-parameter-case).
|
registrations](/docs/discovery/services#service-definition-parameter-case).
|
||||||
|
|
||||||
#### Expose listeners in Envoy for HTTP and GRPC checks registered with the local Consul agent
|
#### Expose listeners in Envoy for HTTP and GRPC checks registered with the local Consul agent
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ the same VM or running as a separate container in the same network namespace.
|
||||||
|
|
||||||
To simplify the configuration experience when deploying a sidecar for a service
|
To simplify the configuration experience when deploying a sidecar for a service
|
||||||
instance, Consul 1.3 introduced a new field in the Connect block of the [service
|
instance, Consul 1.3 introduced a new field in the Connect block of the [service
|
||||||
definition](/docs/agent/services).
|
definition](/docs/discovery/services).
|
||||||
|
|
||||||
To deploy a service and sidecar proxy locally, complete the
|
To deploy a service and sidecar proxy locally, complete the
|
||||||
[Getting Started guide](https://learn.hashicorp.com/tutorials/consul/get-started-service-networking?utm_source=consul.io&utm_medium=docs).
|
[Getting Started guide](https://learn.hashicorp.com/tutorials/consul/get-started-service-networking?utm_source=consul.io&utm_medium=docs).
|
||||||
|
@ -136,7 +136,7 @@ proxy.
|
||||||
- `kind` - Defaults to `connect-proxy`. This can't be overridden currently.
|
- `kind` - Defaults to `connect-proxy`. This can't be overridden currently.
|
||||||
- `check`, `checks` - By default we add a TCP check on the local address and
|
- `check`, `checks` - By default we add a TCP check on the local address and
|
||||||
port for the proxy, and a [service alias
|
port for the proxy, and a [service alias
|
||||||
check](/docs/agent/checks#alias) for the parent service. If either
|
check](/docs/discovery/checks#alias) for the parent service. If either
|
||||||
`check` or `checks` fields are set, only the provided checks are registered.
|
`check` or `checks` fields are set, only the provided checks are registered.
|
||||||
- `proxy.destination_service_name` - Defaults to the parent service name.
|
- `proxy.destination_service_name` - Defaults to the parent service name.
|
||||||
- `proxy.destination_service_id` - Defaults to the parent service ID.
|
- `proxy.destination_service_id` - Defaults to the parent service ID.
|
||||||
|
@ -145,7 +145,7 @@ proxy.
|
||||||
|
|
||||||
## Limitations
|
## Limitations
|
||||||
|
|
||||||
Almost all fields in a [service definition](/docs/agent/services) may be
|
Almost all fields in a [service definition](/docs/discovery/services) may be
|
||||||
set on the `connect.sidecar_service` except for the following:
|
set on the `connect.sidecar_service` except for the following:
|
||||||
|
|
||||||
- `id` - Sidecar services get an ID assigned and it is an error to override
|
- `id` - Sidecar services get an ID assigned and it is an error to override
|
||||||
|
|
|
@ -13,7 +13,7 @@ Connect enables secure service-to-service communication over mutual TLS. This
|
||||||
provides both in-transit data encryption as well as authorization. This page
|
provides both in-transit data encryption as well as authorization. This page
|
||||||
will document how to secure Connect. To try Connect locally, complete the
|
will document how to secure Connect. To try Connect locally, complete the
|
||||||
[Getting Started guide](https://learn.hashicorp.com/tutorials/consul/service-mesh?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) or for a full security model reference,
|
[Getting Started guide](https://learn.hashicorp.com/tutorials/consul/service-mesh?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) or for a full security model reference,
|
||||||
see the dedicated [Consul security model](/docs/internals/security) page. When
|
see the dedicated [Consul security model](/docs/security) page. When
|
||||||
setting up Connect in production, review this [tutorial](https://learn.hashicorp.com/tutorials/consul/service-mesh-production-checklist?utm_source=consul.io&utm_medium=docs).
|
setting up Connect in production, review this [tutorial](https://learn.hashicorp.com/tutorials/consul/service-mesh-production-checklist?utm_source=consul.io&utm_medium=docs).
|
||||||
|
|
||||||
Connect will function in any Consul configuration. However, unless the checklist
|
Connect will function in any Consul configuration. However, unless the checklist
|
||||||
|
@ -22,7 +22,7 @@ built for. The checklist below can be incrementally adopted towards full
|
||||||
security if you prefer to operate in less secure models initially.
|
security if you prefer to operate in less secure models initially.
|
||||||
|
|
||||||
~> **Warning**: The checklist below should not be considered exhaustive. Please
|
~> **Warning**: The checklist below should not be considered exhaustive. Please
|
||||||
read and understand the [Consul security model](/docs/internals/security)
|
read and understand the [Consul security model](/docs/security)
|
||||||
in depth to assess whether your deployment satisfies the security requirements
|
in depth to assess whether your deployment satisfies the security requirements
|
||||||
of Consul.
|
of Consul.
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ to verify server authenticity with each server having a unique TLS certificate.
|
||||||
affect Connect since requests must also always contain a valid ACL token.
|
affect Connect since requests must also always contain a valid ACL token.
|
||||||
Clients calling Consul APIs should be forced over encrypted connections.
|
Clients calling Consul APIs should be forced over encrypted connections.
|
||||||
|
|
||||||
See the [Consul agent encryption page](/docs/agent/encryption) to
|
See the [Consul agent encryption page](/docs/security/encryption) to
|
||||||
learn more about configuring agent encryption.
|
learn more about configuring agent encryption.
|
||||||
|
|
||||||
**If encryption is not enabled**, a malicious actor can sniff network
|
**If encryption is not enabled**, a malicious actor can sniff network
|
||||||
|
@ -68,7 +68,7 @@ clients and servers should be protected from unauthorized access. This
|
||||||
protection must be done outside of Consul via access control systems provided
|
protection must be done outside of Consul via access control systems provided
|
||||||
by your target operating system.
|
by your target operating system.
|
||||||
|
|
||||||
The [full Consul security model](/docs/internals/security) explains the
|
The [full Consul security model](/docs/security) explains the
|
||||||
risk of unauthorized access for both client agents and server agents. In
|
risk of unauthorized access for both client agents and server agents. In
|
||||||
general, the blast radius of unauthorized access for client agent directories
|
general, the blast radius of unauthorized access for client agent directories
|
||||||
is much smaller than servers. However, both must be protected against
|
is much smaller than servers. However, both must be protected against
|
||||||
|
|
|
@ -136,7 +136,7 @@ transparent proxy's datacenter. Services can also dial explicit upstreams in oth
|
||||||
[annotation](/docs/k8s/connect#consul-hashicorp-com-connect-service-upstreams) such as
|
[annotation](/docs/k8s/connect#consul-hashicorp-com-connect-service-upstreams) such as
|
||||||
`"consul.hashicorp.com/connect-service-upstreams": "my-service:1234:dc2"` to reach an upstream service called `my-service`
|
`"consul.hashicorp.com/connect-service-upstreams": "my-service:1234:dc2"` to reach an upstream service called `my-service`
|
||||||
in the datacenter `dc2`.
|
in the datacenter `dc2`.
|
||||||
* In the deployment configuration where a [single Consul datacenter spans multiple Kubernetes clusters](https://www.consul.io/docs/k8s/installation/deployment-configurations/single-dc-multi-k8s), services in one Kubernetes cluster must explicitly dial a service in another Kubernetes cluster using the [consul.hashicorp.com/connect-service-upstreams](/docs/k8s/connect#consul-hashicorp-com-connect-service-upstreams) annotation. An example would be
|
* In the deployment configuration where a [single Consul datacenter spans multiple Kubernetes clusters](/docs/k8s/installation/deployment-configurations/single-dc-multi-k8s), services in one Kubernetes cluster must explicitly dial a service in another Kubernetes cluster using the [consul.hashicorp.com/connect-service-upstreams](/docs/k8s/connect#consul-hashicorp-com-connect-service-upstreams) annotation. An example would be
|
||||||
`"consul.hashicorp.com/connect-service-upstreams": "my-service:1234"`, where `my-service` is the service that exists in another Kubernetes cluster and is exposed on port `1234`. Although Transparent Proxy is enabled, KubeDNS is not utilized when communicating between services existing on separate Kubernetes clusters.
|
`"consul.hashicorp.com/connect-service-upstreams": "my-service:1234"`, where `my-service` is the service that exists in another Kubernetes cluster and is exposed on port `1234`. Although Transparent Proxy is enabled, KubeDNS is not utilized when communicating between services existing on separate Kubernetes clusters.
|
||||||
* When dialing headless services the request will be proxied using a plain TCP proxy with a 5s connection timeout.
|
* When dialing headless services the request will be proxied using a plain TCP proxy with a 5s connection timeout.
|
||||||
Currently the upstream's protocol and connection timeout are not considered.
|
Currently the upstream's protocol and connection timeout are not considered.
|
||||||
|
|
|
@ -420,7 +420,7 @@ updating a TTL check via the HTTP interface can set the `notes` value.
|
||||||
|
|
||||||
Checks may also contain a `token` field to provide an ACL token. This token is
|
Checks may also contain a `token` field to provide an ACL token. This token is
|
||||||
used for any interaction with the catalog for the check, including
|
used for any interaction with the catalog for the check, including
|
||||||
[anti-entropy syncs](/docs/internals/anti-entropy) and deregistration.
|
[anti-entropy syncs](/docs/architecture/anti-entropy) and deregistration.
|
||||||
For Alias checks, this token is used if a remote blocking query is necessary
|
For Alias checks, this token is used if a remote blocking query is necessary
|
||||||
to watch the state of the aliased node or service.
|
to watch the state of the aliased node or service.
|
||||||
|
|
||||||
|
|
|
@ -102,7 +102,7 @@ A service lookup is used to query for service providers. Service queries support
|
||||||
two lookup methods: standard and strict [RFC 2782](https://tools.ietf.org/html/rfc2782).
|
two lookup methods: standard and strict [RFC 2782](https://tools.ietf.org/html/rfc2782).
|
||||||
|
|
||||||
By default, SRV weights are all set at 1, but changing weights is supported using the
|
By default, SRV weights are all set at 1, but changing weights is supported using the
|
||||||
`Weights` attribute of the [service definition](/docs/agent/services).
|
`Weights` attribute of the [service definition](/docs/discovery/services).
|
||||||
|
|
||||||
Note that DNS is limited in size per request, even when performing DNS TCP
|
Note that DNS is limited in size per request, even when performing DNS TCP
|
||||||
queries.
|
queries.
|
||||||
|
@ -394,7 +394,7 @@ To find ingress-enabled services:
|
||||||
<service>.ingress.<domain>
|
<service>.ingress.<domain>
|
||||||
```
|
```
|
||||||
|
|
||||||
This will find all [ingress gateway](/docs/connect/ingress-gateway)
|
This will find all [ingress gateway](/docs/connect/gateways/ingress-gateway)
|
||||||
endpoints for the given `service`.
|
endpoints for the given `service`.
|
||||||
|
|
||||||
This endpoint currently only finds services within the same datacenter
|
This endpoint currently only finds services within the same datacenter
|
||||||
|
|
|
@ -212,7 +212,7 @@ This is the root-level parameter that defines the service. You can specify the p
|
||||||
| `tagged_addresses` | Tagged addresses are additional addresses that may be defined for a node or service. See [Tagged Addresses](#tagged-addresses) for details. | None | Optional |
|
| `tagged_addresses` | Tagged addresses are additional addresses that may be defined for a node or service. See [Tagged Addresses](#tagged-addresses) for details. | None | Optional |
|
||||||
| `port` | Integer value that specifies a service-specific port number. The port number should be specified when the `address` parameter is defined to improve service discoverability. | Optional |
|
| `port` | Integer value that specifies a service-specific port number. The port number should be specified when the `address` parameter is defined to improve service discoverability. | Optional |
|
||||||
| `socket_path` | String value that specifies the path to the service socket. <br/>Specify this parameter to expose the service to the mesh if the service listens on a Unix Domain socket. | None | Optional |
|
| `socket_path` | String value that specifies the path to the service socket. <br/>Specify this parameter to expose the service to the mesh if the service listens on a Unix Domain socket. | None | Optional |
|
||||||
| `enable_tag_override` | Boolean value that determines if the anti-entropy feature for the service is enabled. <br/> If set to `true`, then external agents can update this service in the catalog and modify the tags.<br/> Subsequent local sync operations by this agent will ignore the updated tags. <br/> This parameter only applies to the locally-registered service. If multiple nodes register the same service, the `enable_tag_override` configuration, and all other service configuration items, operate independently. <br/>Updating the tags for services registered on one node is independent from the same service (by name) registered on another node. <br/> See [anti-entropy syncs](/docs/internals/anti-entropy) for additional information.<br/> | False | Optional |
|
| `enable_tag_override` | Boolean value that determines if the anti-entropy feature for the service is enabled. <br/> If set to `true`, then external agents can update this service in the catalog and modify the tags.<br/> Subsequent local sync operations by this agent will ignore the updated tags. <br/> This parameter only applies to the locally-registered service. If multiple nodes register the same service, the `enable_tag_override` configuration, and all other service configuration items, operate independently. <br/>Updating the tags for services registered on one node is independent from the same service (by name) registered on another node. <br/> See [anti-entropy syncs](/docs/architecture/anti-entropy) for additional information.<br/> | False | Optional |
|
||||||
| `checks` | Array of objects that define health checks for the service. See [Health Checks](#health-checks) for details. | None | Optional |
|
| `checks` | Array of objects that define health checks for the service. See [Health Checks](#health-checks) for details. | None | Optional |
|
||||||
| `kind` | String value that identifies the service as a Connect proxy. See [Connect](#connect) for details. | None | Optional |
|
| `kind` | String value that identifies the service as a Connect proxy. See [Connect](#connect) for details. | None | Optional |
|
||||||
| `proxy_destination` | String value that specifies the _name_ of the destination service that the service currently being configured proxies to. <br/>This parameter is deprecated. Use `proxy.destination_service` instead. <br/>See [Connect](#connect) for additional information. | None | Optional |
|
| `proxy_destination` | String value that specifies the _name_ of the destination service that the service currently being configured proxies to. <br/>This parameter is deprecated. Use `proxy.destination_service` instead. <br/>See [Connect](#connect) for additional information. | None | Optional |
|
||||||
|
@ -233,7 +233,7 @@ You can add semantic meta data to the service using the `meta` parameter. This p
|
||||||
### Security Configurations
|
### Security Configurations
|
||||||
|
|
||||||
If the ACL system is enabled, specify a value for the `token` parameter to provide an ACL token. This token is
|
If the ACL system is enabled, specify a value for the `token` parameter to provide an ACL token. This token is
|
||||||
used for any interaction with the catalog for the service, including [anti-entropy syncs](/docs/internals/anti-entropy) and deregistration.
|
used for any interaction with the catalog for the service, including [anti-entropy syncs](/docs/architecture/anti-entropy) and deregistration.
|
||||||
|
|
||||||
Services registered in Consul clusters where both [Consul Namespaces](/docs/enterprise/namespaces)<EnterpriseAlert inline />
|
Services registered in Consul clusters where both [Consul Namespaces](/docs/enterprise/namespaces)<EnterpriseAlert inline />
|
||||||
and the ACL system are enabled can be registered to specific namespaces that are associated with
|
and the ACL system are enabled can be registered to specific namespaces that are associated with
|
||||||
|
@ -252,7 +252,7 @@ The health check name is automatically generated as `service:<service-id>`. If t
|
||||||
registered, the ID will be generated as `service:<service-id>:<num>` where
|
registered, the ID will be generated as `service:<service-id>:<num>` where
|
||||||
`<num>` is an incrementing number starting from `1`.
|
`<num>` is an incrementing number starting from `1`.
|
||||||
|
|
||||||
Consul includes several check types with different options. Refer to the [health checks documentation](/docs/agent/checks) for details.
|
Consul includes several check types with different options. Refer to the [health checks documentation](/docs/discovery/checks) for details.
|
||||||
|
|
||||||
### Proxy
|
### Proxy
|
||||||
|
|
||||||
|
@ -319,7 +319,7 @@ is present in the agent DNS configuration or the `passing` query parameter is us
|
||||||
|
|
||||||
Services may also contain a `token` field to provide an ACL token. This token is
|
Services may also contain a `token` field to provide an ACL token. This token is
|
||||||
used for any interaction with the catalog for the service, including
|
used for any interaction with the catalog for the service, including
|
||||||
[anti-entropy syncs](/docs/internals/anti-entropy) and deregistration.
|
[anti-entropy syncs](/docs/architecture/anti-entropy) and deregistration.
|
||||||
|
|
||||||
You can optionally disable the anti-entropy feature for this service using the
|
You can optionally disable the anti-entropy feature for this service using the
|
||||||
`enable_tag_override` flag. External agents can modify tags on services in the
|
`enable_tag_override` flag. External agents can modify tags on services in the
|
||||||
|
@ -336,7 +336,7 @@ configuration items are independent of one another. Updating the tags
|
||||||
for the service registered on one node is independent of the same
|
for the service registered on one node is independent of the same
|
||||||
service (by name) registered on another node. If `enable_tag_override` is
|
service (by name) registered on another node. If `enable_tag_override` is
|
||||||
not specified the default value is false. See [anti-entropy
|
not specified the default value is false. See [anti-entropy
|
||||||
syncs](/docs/internals/anti-entropy) for more info.
|
syncs](/docs/architecture/anti-entropy) for more info.
|
||||||
|
|
||||||
For Consul 0.9.3 and earlier you need to use `enableTagOverride`. Consul 1.0
|
For Consul 0.9.3 and earlier you need to use `enableTagOverride`. Consul 1.0
|
||||||
supports both `enable_tag_override` and `enableTagOverride` but the latter is
|
supports both `enable_tag_override` and `enableTagOverride` but the latter is
|
||||||
|
|
|
@ -15,7 +15,7 @@ similarities to one.
|
||||||
|
|
||||||
The Consul KV datastore is located on the servers, but can be accessed by any
|
The Consul KV datastore is located on the servers, but can be accessed by any
|
||||||
agent (client or server). The natively integrated [RPC
|
agent (client or server). The natively integrated [RPC
|
||||||
functionality](/docs/internals/architecture) allows clients to forward
|
functionality](/docs/architecture) allows clients to forward
|
||||||
requests to servers, including key/value reads and writes. Part of Consul’s
|
requests to servers, including key/value reads and writes. Part of Consul’s
|
||||||
core design allows data to be replicated automatically across all the servers.
|
core design allows data to be replicated automatically across all the servers.
|
||||||
Having a quorum of servers will decrease the risk of data loss if an outage
|
Having a quorum of servers will decrease the risk of data loss if an outage
|
||||||
|
@ -32,7 +32,7 @@ subcommands](/commands/kv), [HTTP API](/api/kv), and Consul UI.
|
||||||
To restrict access, enable and configure
|
To restrict access, enable and configure
|
||||||
[ACLs](https://learn.hashicorp.com/tutorials/consul/access-control-setup-production).
|
[ACLs](https://learn.hashicorp.com/tutorials/consul/access-control-setup-production).
|
||||||
Once the ACL system has been bootstrapped, users and services, will need a
|
Once the ACL system has been bootstrapped, users and services, will need a
|
||||||
valid token with KV [privileges](/docs/agent/acl-rules#key-value-rules) to
|
valid token with KV [privileges](/docs/security/acl/acl-rules#key-value-rules) to
|
||||||
access the the data store, this includes even reads. We recommend creating a
|
access the the data store, this includes even reads. We recommend creating a
|
||||||
token with limited privileges, for example, you could create a token with write
|
token with limited privileges, for example, you could create a token with write
|
||||||
privileges on one key for developers to update the value related to their
|
privileges on one key for developers to update the value related to their
|
||||||
|
@ -75,9 +75,9 @@ to be initiated on value changes to a Consul key.
|
||||||
### Watches
|
### Watches
|
||||||
|
|
||||||
Consul KV can also be extended with the use of watches.
|
Consul KV can also be extended with the use of watches.
|
||||||
[Watches](/docs/agent/watches) are a way to monitor data for updates. When
|
[Watches](/docs/dynamic-app-config/watches) are a way to monitor data for updates. When
|
||||||
an update is detected, an external handler is invoked. To use watches with the
|
an update is detected, an external handler is invoked. To use watches with the
|
||||||
KV store the [key](/docs/agent/watches#key) watch type should be used.
|
KV store the [key](/docs/dynamic-app-config/watches#key) watch type should be used.
|
||||||
|
|
||||||
### Consul Sessions
|
### Consul Sessions
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ API supports an `acquire` and `release` operation. The `acquire` operation acts
|
||||||
like a Check-And-Set operation. On success, there is a key update and an
|
like a Check-And-Set operation. On success, there is a key update and an
|
||||||
increment to the `LockIndex` and the session value is updated to reflect the
|
increment to the `LockIndex` and the session value is updated to reflect the
|
||||||
session holding the lock. Review the session documentation for more information
|
session holding the lock. Review the session documentation for more information
|
||||||
on the [integration](/docs/internals/sessions#k-v-integration).
|
on the [integration](/docs/dynamic-app-config/sessions#k-v-integration).
|
||||||
|
|
||||||
Review the following tutorials to learn how to use Consul sessions for [application leader election](https://learn.hashicorp.com/tutorials/consul/application-leader-elections) and
|
Review the following tutorials to learn how to use Consul sessions for [application leader election](https://learn.hashicorp.com/tutorials/consul/application-leader-elections) and
|
||||||
to [build distributed semaphores](https://learn.hashicorp.com/tutorials/consul/distributed-semaphore).
|
to [build distributed semaphores](https://learn.hashicorp.com/tutorials/consul/distributed-semaphore).
|
||||||
|
|
|
@ -51,7 +51,7 @@ deleted by Consul.
|
||||||
|
|
||||||
While this is a simple design, it enables a multitude of usage
|
While this is a simple design, it enables a multitude of usage
|
||||||
patterns. By default, the
|
patterns. By default, the
|
||||||
[gossip based failure detector](/docs/internals/gossip)
|
[gossip based failure detector](/docs/architecture/gossip)
|
||||||
is used as the associated health check. This failure detector allows
|
is used as the associated health check. This failure detector allows
|
||||||
Consul to detect when a node that is holding a lock has failed and
|
Consul to detect when a node that is holding a lock has failed and
|
||||||
to automatically release the lock. This ability provides **liveness** to
|
to automatically release the lock. This ability provides **liveness** to
|
||||||
|
|
|
@ -25,7 +25,7 @@ For more experience leveraging Consul's audit logging functionality, explore our
|
||||||
HashiCorp Learn tutorial [Capture Consul Events with Audit Logging](https://learn.hashicorp.com/tutorials/consul/audit-logging).
|
HashiCorp Learn tutorial [Capture Consul Events with Audit Logging](https://learn.hashicorp.com/tutorials/consul/audit-logging).
|
||||||
|
|
||||||
For detailed configuration information on configuring the Consul Enterprise's audit
|
For detailed configuration information on configuring the Consul Enterprise's audit
|
||||||
logging, review the Consul [Audit Log](https://www.consul.io/docs/agent/options#audit)
|
logging, review the Consul [Audit Log](/docs/agent/options#audit)
|
||||||
documentation.
|
documentation.
|
||||||
|
|
||||||
## Example Configuration
|
## Example Configuration
|
||||||
|
|
|
@ -23,7 +23,7 @@ Features include:
|
||||||
- [Namespaces](/docs/enterprise/namespaces)
|
- [Namespaces](/docs/enterprise/namespaces)
|
||||||
- [NIA with Terraform Enterprise](/docs/nia/enterprise)
|
- [NIA with Terraform Enterprise](/docs/nia/enterprise)
|
||||||
- [Sentinel](/docs/enterprise/sentinel)
|
- [Sentinel](/docs/enterprise/sentinel)
|
||||||
- [OIDC Auth Method](/docs/acl/auth-methods/oidc)
|
- [OIDC Auth Method](/docs/security/acl/auth-methods/oidc)
|
||||||
|
|
||||||
These features are part of [Consul
|
These features are part of [Consul
|
||||||
Enterprise](https://www.hashicorp.com/consul).
|
Enterprise](https://www.hashicorp.com/consul).
|
||||||
|
|
|
@ -35,9 +35,9 @@ Please visit the [Enterprise License Tutorial](https://learn.hashicorp.com/tutor
|
||||||
|
|
||||||
The list below is a great starting point for learning more about the license changes introduced in Consul Enterprise 1.10.0+ent.
|
The list below is a great starting point for learning more about the license changes introduced in Consul Enterprise 1.10.0+ent.
|
||||||
|
|
||||||
- [Consul Enterprise Upgrade Documentation](https://www.consul.io/docs/enterprise/upgrades)
|
- [Consul Enterprise Upgrade Documentation](/docs/enterprise/upgrades)
|
||||||
|
|
||||||
- [Consul License Documentation](/docs/enterprise/license)
|
- [Consul License Documentation](/docs/enterprise/license/overview)
|
||||||
|
|
||||||
- [License configuration values documentation](/docs/enterprise/license/overview#binaries-without-built-in-licenses)
|
- [License configuration values documentation](/docs/enterprise/license/overview#binaries-without-built-in-licenses)
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ Consul snapshot agents will attempt to retrieve the license from servers if cert
|
||||||
|
|
||||||
## Q: Where can users get a trial license for Consul Enterprise?
|
## Q: Where can users get a trial license for Consul Enterprise?
|
||||||
|
|
||||||
Visit https://www.consul.io/trial for a free 30-day trial license.
|
Visit [consul.io/trial](/trial) for a free 30-day trial license.
|
||||||
|
|
||||||
## Q: Are the license files locked to a specific cluster?
|
## Q: Are the license files locked to a specific cluster?
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@ segments are:
|
||||||
|
|
||||||
Each client agent can only be a member of one segment at a time. This will be the
|
Each client agent can only be a member of one segment at a time. This will be the
|
||||||
`<default>` segment unless otherwise specified in the agent's
|
`<default>` segment unless otherwise specified in the agent's
|
||||||
[`segment`](/docs/agent/options.html#_segment) agent configuration option.
|
[`segment`](/docs/agent/options#_segment) agent configuration option.
|
||||||
|
|
||||||
### Join a Client to a Segment ((#join_a_client_to_a_segment))
|
### Join a Client to a Segment ((#join_a_client_to_a_segment))
|
||||||
|
|
||||||
|
|
|
@ -12,18 +12,18 @@ description: >-
|
||||||
# Bootstrapping a Datacenter
|
# Bootstrapping a Datacenter
|
||||||
|
|
||||||
An agent can run in either client or server mode. Server nodes are responsible for running the
|
An agent can run in either client or server mode. Server nodes are responsible for running the
|
||||||
[consensus protocol](/docs/internals/consensus) and storing the cluster state.
|
[consensus protocol](/docs/architecture/consensus) and storing the cluster state.
|
||||||
The client nodes are mostly stateless and rely heavily on the server nodes.
|
The client nodes are mostly stateless and rely heavily on the server nodes.
|
||||||
|
|
||||||
Before a Consul cluster can begin to service requests,
|
Before a Consul cluster can begin to service requests,
|
||||||
a server node must be elected leader. Bootstrapping is the process
|
a server node must be elected leader. Bootstrapping is the process
|
||||||
of joining these initial server nodes into a cluster. Read the
|
of joining these initial server nodes into a cluster. Read the
|
||||||
[architecture documentation](/docs/internals/architecture) to learn more about
|
[architecture documentation](/docs/architecture) to learn more about
|
||||||
the internals of Consul.
|
the internals of Consul.
|
||||||
|
|
||||||
It is recommended to have three or five total servers per datacenter. A single server deployment is _highly_ discouraged
|
It is recommended to have three or five total servers per datacenter. A single server deployment is _highly_ discouraged
|
||||||
as data loss is inevitable in a failure scenario. Please refer to the
|
as data loss is inevitable in a failure scenario. Please refer to the
|
||||||
[deployment table](/docs/internals/consensus#deployment-table) for more detail.
|
[deployment table](/docs/architecture/consensus#deployment-table) for more detail.
|
||||||
|
|
||||||
~> **Note**: In versions of Consul prior to 0.4, bootstrapping was a manual process. For details on using the `-bootstrap` flag directly, see the
|
~> **Note**: In versions of Consul prior to 0.4, bootstrapping was a manual process. For details on using the `-bootstrap` flag directly, see the
|
||||||
[manual bootstrapping documentation](/docs/install/bootstrapping#manually-join-the-servers).
|
[manual bootstrapping documentation](/docs/install/bootstrapping#manually-join-the-servers).
|
||||||
|
|
|
@ -48,14 +48,14 @@ transactions are applied to a
|
||||||
[finite-state machine](https://en.wikipedia.org/wiki/Finite-state_machine), our definition
|
[finite-state machine](https://en.wikipedia.org/wiki/Finite-state_machine), our definition
|
||||||
of consensus implies the consistency of a replicated state machine. Consensus is described
|
of consensus implies the consistency of a replicated state machine. Consensus is described
|
||||||
in more detail on [Wikipedia](<https://en.wikipedia.org/wiki/Consensus_(computer_science)>),
|
in more detail on [Wikipedia](<https://en.wikipedia.org/wiki/Consensus_(computer_science)>),
|
||||||
and our implementation is described [here](/docs/internals/consensus).
|
and our implementation is described [here](/docs/architecture/consensus).
|
||||||
|
|
||||||
## Gossip
|
## Gossip
|
||||||
|
|
||||||
Consul is built on top of [Serf](https://www.serf.io/) which provides a full
|
Consul is built on top of [Serf](https://www.serf.io/) which provides a full
|
||||||
[gossip protocol](https://en.wikipedia.org/wiki/Gossip_protocol) that is used for multiple purposes.
|
[gossip protocol](https://en.wikipedia.org/wiki/Gossip_protocol) that is used for multiple purposes.
|
||||||
Serf provides membership, failure detection, and event broadcast. Our use of these
|
Serf provides membership, failure detection, and event broadcast. Our use of these
|
||||||
is described more in the [gossip documentation](/docs/internals/gossip). It is enough to know
|
is described more in the [gossip documentation](/docs/architecture/gossip). It is enough to know
|
||||||
that gossip involves random node-to-node communication, primarily over UDP.
|
that gossip involves random node-to-node communication, primarily over UDP.
|
||||||
|
|
||||||
## LAN Gossip
|
## LAN Gossip
|
||||||
|
@ -83,9 +83,9 @@ An Access Control List (ACL) is a list of user permissions for a file, folder, o
|
||||||
other object. It defines what users and groups can access the object and what
|
other object. It defines what users and groups can access the object and what
|
||||||
operations they can perform.
|
operations they can perform.
|
||||||
|
|
||||||
Consul uses Access Control Lists (ACLs) to secure the UI, API, CLI, service
|
Consul uses Access Control Lists (ACLs) to secure the UI, API, CLI, service
|
||||||
communications, and agent communications.
|
communications, and agent communications.
|
||||||
Visit [Consul ACL Documentation and Guides](https://www.consul.io/docs/acl)
|
Visit [Consul ACL Documentation and Guides](/docs/security/acl)
|
||||||
|
|
||||||
## API Gateway
|
## API Gateway
|
||||||
An Application Programming Interface (API) is a common software interface that
|
An Application Programming Interface (API) is a common software interface that
|
||||||
|
|
|
@ -79,4 +79,4 @@ $ consul version
|
||||||
|
|
||||||
Consul currently supports all 'evergreen' browsers, as they are generally on
|
Consul currently supports all 'evergreen' browsers, as they are generally on
|
||||||
up-to-date versions. For more information on supported browsers, please see our
|
up-to-date versions. For more information on supported browsers, please see our
|
||||||
[FAQ](/docs/faq)
|
[FAQ](/docs/troubleshoot/faq)
|
||||||
|
|
|
@ -12,13 +12,13 @@ description: >-
|
||||||
|
|
||||||
When deploying Consul to a datacenter for the first time, there is an initial
|
When deploying Consul to a datacenter for the first time, there is an initial
|
||||||
bootstrapping that must be done. As of Consul 0.4, an
|
bootstrapping that must be done. As of Consul 0.4, an
|
||||||
[automatic bootstrapping](/docs/guides/bootstrapping) is available and is
|
[automatic bootstrapping](/docs/install/bootstrapping) is available and is
|
||||||
the recommended approach. However, older versions only support a manual
|
the recommended approach. However, older versions only support a manual
|
||||||
bootstrap that is documented here.
|
bootstrap that is documented here.
|
||||||
|
|
||||||
Generally, the first nodes that are started are the server nodes. Remember that
|
Generally, the first nodes that are started are the server nodes. Remember that
|
||||||
an agent can run in both client and server mode. Server nodes are responsible
|
an agent can run in both client and server mode. Server nodes are responsible
|
||||||
for running the [consensus protocol](/docs/internals/consensus), and
|
for running the [consensus protocol](/docs/architecture/consensus), and
|
||||||
storing the cluster state. The client nodes are mostly stateless and rely on the
|
storing the cluster state. The client nodes are mostly stateless and rely on the
|
||||||
server nodes, so they can be started easily.
|
server nodes, so they can be started easily.
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ something like the following will be logged:
|
||||||
```
|
```
|
||||||
|
|
||||||
Once `Node A` is running, we can start the next set of servers. There is a
|
Once `Node A` is running, we can start the next set of servers. There is a
|
||||||
[deployment table](/docs/internals/consensus#toc_4) that covers various
|
[deployment table](/docs/architecture/consensus#deployment_table) that covers various
|
||||||
options, but it is recommended to have 3 or 5 total servers per datacenter. A
|
options, but it is recommended to have 3 or 5 total servers per datacenter. A
|
||||||
single server deployment is _**highly**_ discouraged as data loss is inevitable
|
single server deployment is _**highly**_ discouraged as data loss is inevitable
|
||||||
in a failure scenario. We start the next servers **without** specifying
|
in a failure scenario. We start the next servers **without** specifying
|
||||||
|
|
|
@ -9,7 +9,7 @@ description: >-
|
||||||
|
|
||||||
# Server Performance
|
# Server Performance
|
||||||
|
|
||||||
Since Consul servers run a [consensus protocol](/docs/internals/consensus) to
|
Since Consul servers run a [consensus protocol](/docs/architecture/consensus) to
|
||||||
process all write operations and are contacted on nearly all read operations, server
|
process all write operations and are contacted on nearly all read operations, server
|
||||||
performance is critical for overall throughput and health of a Consul cluster. Servers
|
performance is critical for overall throughput and health of a Consul cluster. Servers
|
||||||
are generally I/O bound for writes because the underlying Raft log store performs a sync
|
are generally I/O bound for writes because the underlying Raft log store performs a sync
|
||||||
|
|
|
@ -33,7 +33,7 @@ By leveraging Consul’s RESTful HTTP API system, prospective partners are able
|
||||||
|
|
||||||
**Infrastructure**: There are two integration options in this category: natively through a direct integration with Consul or via Consul-Terraform-Sync (CTS). By leveraging Consul’s powerful **Network Infrastructure Automation (NIA)*** capabilities through CTS, changes in an infrastructure are seamlessly automated when Consul detects a change in its service catalog. For example, these integrations could be used to automate IP updates of load balancers or firewall security policies by leveraging Consul service discovery.
|
**Infrastructure**: There are two integration options in this category: natively through a direct integration with Consul or via Consul-Terraform-Sync (CTS). By leveraging Consul’s powerful **Network Infrastructure Automation (NIA)*** capabilities through CTS, changes in an infrastructure are seamlessly automated when Consul detects a change in its service catalog. For example, these integrations could be used to automate IP updates of load balancers or firewall security policies by leveraging Consul service discovery.
|
||||||
|
|
||||||
-> **Network Infrastructure Automation (NIA)***: These integrations leverage Consul’s service catalog to seamlessly integrate with Consul-Terraform-Sync (CTS) to automate changes in network infrastructure via a publisher-subscriber method. More details can be found [here](https://www.consul.io/docs/integrate/nia-integration).
|
-> **Network Infrastructure Automation (NIA)***: These integrations leverage Consul’s service catalog to seamlessly integrate with Consul-Terraform-Sync (CTS) to automate changes in network infrastructure via a publisher-subscriber method. More details can be found [here](/docs/integrate/nia-integration).
|
||||||
|
|
||||||
## Development Process
|
## Development Process
|
||||||
|
|
||||||
|
|
|
@ -12,5 +12,5 @@ description: >-
|
||||||
|
|
||||||
This content has been moved into the [ACL Guide](https://learn.hashicorp.com/tutorials/consul/access-control-setup-production).
|
This content has been moved into the [ACL Guide](https://learn.hashicorp.com/tutorials/consul/access-control-setup-production).
|
||||||
|
|
||||||
See [Complete ACL Coverage in Consul 0.8](/docs/acl/acl-legacy) for details
|
See [Complete ACL Coverage in Consul 0.8](/docs/security/acl/acl-legacy) for details
|
||||||
about ACL changes in Consul 0.8 and later.
|
about ACL changes in Consul 0.8 and later.
|
||||||
|
|
|
@ -13,14 +13,14 @@ use it in production.
|
||||||
|
|
||||||
Please review the following documentation to understand how Consul works.
|
Please review the following documentation to understand how Consul works.
|
||||||
|
|
||||||
- [Architecture](/docs/internals/architecture)
|
- [Architecture](/docs/architecture)
|
||||||
- [Consensus Protocol](/docs/internals/consensus)
|
- [Consensus Protocol](/docs/architecture/consensus)
|
||||||
- [Gossip Protocol](/docs/internals/gossip)
|
- [Gossip Protocol](/docs/architecture/gossip)
|
||||||
- [Network Coordinates](/docs/internals/coordinates)
|
- [Network Coordinates](/docs/architecture/coordinates)
|
||||||
- [Sessions](/docs/internals/sessions)
|
- [Sessions](/docs/security/acl/auth-methods/oidc)
|
||||||
- [Anti-Entropy](/docs/internals/anti-entropy)
|
- [Anti-Entropy](/docs/architecture/anti-entropy)
|
||||||
- [Security Model](/docs/internals/security)
|
- [Security Model](/docs/security)
|
||||||
- [Discovery Chain](/docs/internals/discovery-chain)
|
- [Discovery Chain](/docs/connect/l7-traffic/discovery-chain)
|
||||||
|
|
||||||
You should also be familiar with [Jepsen testing](/docs/internals/jepsen), before deploying
|
You should also be familiar with [Jepsen testing](/docs/architecture/jepsen), before deploying
|
||||||
a production datacenter.
|
a production datacenter.
|
||||||
|
|
|
@ -86,7 +86,7 @@ application developers, making it perfect for modern, elastic infrastructures.
|
||||||
Consul is a distributed, highly available system. This section will cover the
|
Consul is a distributed, highly available system. This section will cover the
|
||||||
basics, purposely omitting some unnecessary detail, so you can get a quick
|
basics, purposely omitting some unnecessary detail, so you can get a quick
|
||||||
understanding of how Consul works. For more detail, please refer to the
|
understanding of how Consul works. For more detail, please refer to the
|
||||||
[in-depth architecture overview](/docs/internals/architecture).
|
[in-depth architecture overview](/docs/architecture).
|
||||||
|
|
||||||
Every node that provides services to Consul runs a _Consul agent_. Running
|
Every node that provides services to Consul runs a _Consul agent_. Running
|
||||||
an agent is not required for discovering other services or getting/setting
|
an agent is not required for discovering other services or getting/setting
|
||||||
|
@ -103,7 +103,7 @@ The servers maintain a _catalog_, which is formed by aggregating information
|
||||||
submitted by the agents. The catalog maintains the high-level view of the cluster,
|
submitted by the agents. The catalog maintains the high-level view of the cluster,
|
||||||
including which services are available, which nodes run those services, health
|
including which services are available, which nodes run those services, health
|
||||||
information, and more. How agents and the catalog interact can be found
|
information, and more. How agents and the catalog interact can be found
|
||||||
[here](/docs/internals/anti-entropy#catalog).
|
[here](/docs/architecture/anti-entropy#catalog).
|
||||||
|
|
||||||
Components of your infrastructure that need to discover other services
|
Components of your infrastructure that need to discover other services
|
||||||
or nodes can query any of the Consul servers _or_ any of the Consul agents.
|
or nodes can query any of the Consul servers _or_ any of the Consul agents.
|
||||||
|
@ -115,7 +115,7 @@ forward the request to the remote datacenter and return the result.
|
||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
- See [how Consul compares to other software](/intro/vs) to assess how it fits into your
|
- See [how Consul compares to other software](/docs/intro/vs) to assess how it fits into your
|
||||||
existing infrastructure.
|
existing infrastructure.
|
||||||
- Continue onwards with [HashiCorp Learn](https://learn.hashicorp.com/tutorials/consul/get-started-install)
|
- Continue onwards with [HashiCorp Learn](https://learn.hashicorp.com/tutorials/consul/get-started-install)
|
||||||
to learn more about Consul and how to get Consul up and running.
|
to learn more about Consul and how to get Consul up and running.
|
||||||
|
|
|
@ -32,9 +32,9 @@ most applications to be Consul unaware, performing the service registration via
|
||||||
files and discovery via DNS or load balancer sidecars.
|
files and discovery via DNS or load balancer sidecars.
|
||||||
|
|
||||||
Consul provides a strong consistency guarantee, since servers replicate state using the
|
Consul provides a strong consistency guarantee, since servers replicate state using the
|
||||||
[Raft protocol](/docs/internals/consensus). Consul supports a rich set of health checks
|
[Raft protocol](/docs/architecture/consensus). Consul supports a rich set of health checks
|
||||||
including TCP, HTTP, Nagios/Sensu compatible scripts, or TTL based like Eureka. Client nodes
|
including TCP, HTTP, Nagios/Sensu compatible scripts, or TTL based like Eureka. Client nodes
|
||||||
participate in a [gossip based health check](/docs/internals/gossip), which distributes
|
participate in a [gossip based health check](/docs/architecture/gossip), which distributes
|
||||||
the work of health checking, unlike centralized heartbeating which becomes a scalability challenge.
|
the work of health checking, unlike centralized heartbeating which becomes a scalability challenge.
|
||||||
Discovery requests are routed to the elected Consul leader which allows them to be strongly consistent
|
Discovery requests are routed to the elected Consul leader which allows them to be strongly consistent
|
||||||
by default. Clients that allow for stale reads enable any server to process their request allowing
|
by default. Clients that allow for stale reads enable any server to process their request allowing
|
||||||
|
|
|
@ -36,8 +36,8 @@ allowing the system to be much more scalable.
|
||||||
An astute reader may notice that if a Consul agent dies, then no edge triggered
|
An astute reader may notice that if a Consul agent dies, then no edge triggered
|
||||||
updates will occur. From the perspective of other nodes, all checks will appear
|
updates will occur. From the perspective of other nodes, all checks will appear
|
||||||
to be in a steady state. However, Consul guards against this as well. The
|
to be in a steady state. However, Consul guards against this as well. The
|
||||||
[gossip protocol](/docs/internals/gossip) used between clients and servers
|
[gossip protocol](/docs/architecture/gossip) used between clients and servers
|
||||||
integrates a distributed failure detector. This means that if a Consul agent fails,
|
integrates a distributed failure detector. This means that if a Consul agent fails,
|
||||||
the failure will be detected, and thus all checks being run by that node can be
|
the failure will be detected, and thus all checks being run by that node can be
|
||||||
assumed failed. This failure detector distributes the work among the entire cluster
|
assumed failed. This failure detector distributes the work among the entire cluster
|
||||||
while, most importantly, enabling the edge triggered architecture to work.
|
while, most importantly, enabling the edge triggered architecture to work.
|
||||||
|
|
|
@ -21,7 +21,7 @@ Serf does not provide any high-level features such as service discovery, health
|
||||||
checking or key/value storage. Consul is a complete system providing all of those
|
checking or key/value storage. Consul is a complete system providing all of those
|
||||||
features.
|
features.
|
||||||
|
|
||||||
The internal [gossip protocol](/docs/internals/gossip) used within Consul is in
|
The internal [gossip protocol](/docs/architecture/gossip) used within Consul is in
|
||||||
fact powered by the Serf library: Consul leverages the membership and failure detection
|
fact powered by the Serf library: Consul leverages the membership and failure detection
|
||||||
features and builds upon them to add service discovery. By contrast, the discovery
|
features and builds upon them to add service discovery. By contrast, the discovery
|
||||||
feature of Serf is at a node level, while Consul provides a service and node level
|
feature of Serf is at a node level, while Consul provides a service and node level
|
||||||
|
@ -42,7 +42,7 @@ catalog while Serf is only eventually-consistent.
|
||||||
In addition to the service level abstraction and improved health checking,
|
In addition to the service level abstraction and improved health checking,
|
||||||
Consul provides a key/value store and support for multiple datacenters.
|
Consul provides a key/value store and support for multiple datacenters.
|
||||||
Serf can run across the WAN but with degraded performance. Consul makes use
|
Serf can run across the WAN but with degraded performance. Consul makes use
|
||||||
of [multiple gossip pools](/docs/internals/architecture) so that
|
of [multiple gossip pools](/docs/architecture) so that
|
||||||
the performance of Serf over a LAN can be retained while still using it over
|
the performance of Serf over a LAN can be retained while still using it over
|
||||||
a WAN for linking together multiple datacenters.
|
a WAN for linking together multiple datacenters.
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ and dynamically configures HAProxy. Finally, clients speak to HAProxy, which doe
|
||||||
health checking and load balancing across service providers.
|
health checking and load balancing across service providers.
|
||||||
|
|
||||||
Consul is a much simpler and more contained system as it does not rely on any external
|
Consul is a much simpler and more contained system as it does not rely on any external
|
||||||
components. Consul uses an integrated [gossip protocol](/docs/internals/gossip)
|
components. Consul uses an integrated [gossip protocol](/docs/architecture/gossip)
|
||||||
to track all nodes and perform server discovery. This means that server addresses
|
to track all nodes and perform server discovery. This means that server addresses
|
||||||
do not need to be hardcoded and updated fleet-wide on changes, unlike SmartStack.
|
do not need to be hardcoded and updated fleet-wide on changes, unlike SmartStack.
|
||||||
|
|
||||||
|
|
|
@ -8,10 +8,10 @@ description: Configuring Ingress Gateways on Kubernetes
|
||||||
|
|
||||||
-> 1.9.0+: This feature is available in Consul versions 1.9.0 and higher
|
-> 1.9.0+: This feature is available in Consul versions 1.9.0 and higher
|
||||||
|
|
||||||
~> This topic requires familiarity with [Ingress Gateways](/docs/connect/ingress-gateway).
|
~> This topic requires familiarity with [Ingress Gateways](/docs/connect/gateways/ingress-gateway).
|
||||||
|
|
||||||
This page describes how to enable external access to Connect Service Mesh services running inside Kubernetes using Consul ingress gateways.
|
This page describes how to enable external access to Connect Service Mesh services running inside Kubernetes using Consul ingress gateways.
|
||||||
See [Ingress Gateways](/docs/connect/ingress-gateway) for more information on use-cases and how it works.
|
See [Ingress Gateways](/docs/connect/gateways/ingress-gateway) for more information on use-cases and how it works.
|
||||||
|
|
||||||
Adding an ingress gateway is a multi-step process that consists of the following steps:
|
Adding an ingress gateway is a multi-step process that consists of the following steps:
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ description: Configuring Terminating Gateways on Kubernetes
|
||||||
|
|
||||||
-> 1.9.0+: This feature is available in Consul versions 1.9.0 and higher
|
-> 1.9.0+: This feature is available in Consul versions 1.9.0 and higher
|
||||||
|
|
||||||
~> This topic requires familiarity with [Terminating Gateways](/docs/connect/terminating-gateway).
|
~> This topic requires familiarity with [Terminating Gateways](/docs/connect/gateways/terminating-gateway).
|
||||||
|
|
||||||
Adding a terminating gateway is a multi-step process:
|
Adding a terminating gateway is a multi-step process:
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ Kubernetes can choose to leverage Consul.
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
Consul runs on Kubernetes with the same
|
Consul runs on Kubernetes with the same
|
||||||
[architecture](/docs/internals/architecture)
|
[architecture](/docs/architecture)
|
||||||
as other platforms. There are some benefits Kubernetes can provide
|
as other platforms. There are some benefits Kubernetes can provide
|
||||||
that eases operating a Consul cluster and we document those below. The standard
|
that eases operating a Consul cluster and we document those below. The standard
|
||||||
[production deployment guide](https://learn.hashicorp.com/consul/datacenter-deploy/deployment-guide) is still an
|
[production deployment guide](https://learn.hashicorp.com/consul/datacenter-deploy/deployment-guide) is still an
|
||||||
|
|
|
@ -4,15 +4,15 @@ page_title: Compatibility Matrix
|
||||||
description: Compatibility Matrix for Consul Kubernetes
|
description: Compatibility Matrix for Consul Kubernetes
|
||||||
---
|
---
|
||||||
|
|
||||||
# Compatibility Matrix for Consul on Kubernetes
|
# Compatibility Matrix for Consul on Kubernetes
|
||||||
|
|
||||||
For every release of Consul on Kubernetes, a Helm chart, `consul-k8s-control-plane` binary and a `consul-k8s` CLI binary is built and distributed through a single version. When deploying via Helm, the recommended best path for upgrading Consul on Kubernetes, is to upgrade using the same `consul-k8s-control-plane` version as the Helm Chart, as the Helm Chart and Control Plane binary are tightly coupled.
|
For every release of Consul on Kubernetes, a Helm chart, `consul-k8s-control-plane` binary and a `consul-k8s` CLI binary is built and distributed through a single version. When deploying via Helm, the recommended best path for upgrading Consul on Kubernetes, is to upgrade using the same `consul-k8s-control-plane` version as the Helm Chart, as the Helm Chart and Control Plane binary are tightly coupled.
|
||||||
|
|
||||||
## Supported Consul versions
|
## Supported Consul versions
|
||||||
|
|
||||||
### Version 0.33.0 and above
|
### Version 0.33.0 and above
|
||||||
|
|
||||||
Starting with Consul Kubernetes 0.33.0, Consul Kubernetes versions all of its components (`consul-k8s` CLI, `consul-k8s-control-plane`, and Helm chart) with a single semantic version.
|
Starting with Consul Kubernetes 0.33.0, Consul Kubernetes versions all of its components (`consul-k8s` CLI, `consul-k8s-control-plane`, and Helm chart) with a single semantic version.
|
||||||
|
|
||||||
| Consul Version | Compatible consul-k8s Versions |
|
| Consul Version | Compatible consul-k8s Versions |
|
||||||
| -------------- | ------------------------------- |
|
| -------------- | ------------------------------- |
|
||||||
|
@ -21,7 +21,7 @@ Starting with Consul Kubernetes 0.33.0, Consul Kubernetes versions all of its co
|
||||||
|
|
||||||
### Prior to version 0.33.0
|
### Prior to version 0.33.0
|
||||||
|
|
||||||
Prior to Consul Kubernetes 0.33.0, a separately versioned Consul Helm chart was distributed to deploy the Consul on Kubernetes binary. The default version of the `consul-k8s` binary specified by the Helm chart should be used to ensure proper compatibility, since the Helm chart is designed and tested with the default `consul-k8s` version. To find the default version for the appropriate Helm chart version, navigate to the corresponding tag (i.e. 0.32.1) in [`values.yaml`](https://github.com/hashicorp/consul-helm/blob/v0.32.1/values.yaml) and retrieve the `imageK8S` global value.
|
Prior to Consul Kubernetes 0.33.0, a separately versioned Consul Helm chart was distributed to deploy the Consul on Kubernetes binary. The default version of the `consul-k8s` binary specified by the Helm chart should be used to ensure proper compatibility, since the Helm chart is designed and tested with the default `consul-k8s` version. To find the default version for the appropriate Helm chart version, navigate to the corresponding tag (i.e. 0.32.1) in [`values.yaml`](https://github.com/hashicorp/consul-helm/blob/v0.32.1/values.yaml) and retrieve the `imageK8S` global value.
|
||||||
|
|
||||||
| Consul Version | Compatible Consul Helm Versions (default `consul-k8s` image) |
|
| Consul Version | Compatible Consul Helm Versions (default `consul-k8s` image) |
|
||||||
| -------------- | -----------------------------------------------------------|
|
| -------------- | -----------------------------------------------------------|
|
||||||
|
@ -33,20 +33,20 @@ Prior to Consul Kubernetes 0.33.0, a separately versioned Consul Helm chart was
|
||||||
|
|
||||||
## Supported Envoy versions
|
## Supported Envoy versions
|
||||||
|
|
||||||
Supported versions of Envoy for Consul versions are also found in [Envoy - Supported Versions](https://www.consul.io/docs/connect/proxies/envoy#supported-versions). The recommended best practice is to use the default version of Envoy that is provided in the Helm values.yml file, as that is the version that has been tested with the default Consul and Consul Kubernetes binaries for a given Helm chart.
|
Supported versions of Envoy for Consul versions are also found in [Envoy - Supported Versions](/docs/connect/proxies/envoy#supported-versions). The recommended best practice is to use the default version of Envoy that is provided in the Helm values.yml file, as that is the version that has been tested with the default Consul and Consul Kubernetes binaries for a given Helm chart.
|
||||||
|
|
||||||
## Red Hat OpenShift compatability
|
## Red Hat OpenShift compatibility
|
||||||
|
|
||||||
Consul Kubernetes delivered Red Hat OpenShift support starting with Consul Helm chart version 0.25.0 for Consul 1.8.4. Please note the following details regarding OpenShift support.
|
Consul Kubernetes delivered Red Hat OpenShift support starting with Consul Helm chart version 0.25.0 for Consul 1.8.4. Please note the following details regarding OpenShift support.
|
||||||
|
|
||||||
- Red Hat OpenShift is only supported for OpenShift 4.4.x and above.
|
- Red Hat OpenShift is only supported for OpenShift 4.4.x and above.
|
||||||
- Only the default CNI Plugin, [OpenShift SDN CNI Plugin](https://docs.openshift.com/container-platform/4.9/networking/openshift_sdn/about-openshift-sdn.html) is currently supported.
|
- Only the default CNI Plugin, [OpenShift SDN CNI Plugin](https://docs.openshift.com/container-platform/4.9/networking/openshift_sdn/about-openshift-sdn.html) is currently supported.
|
||||||
|
|
||||||
## Vault as a Secrets Backend compatibility
|
## Vault as a Secrets Backend compatibility
|
||||||
|
|
||||||
Starting with Consul K8s 0.39.0 and Consul 1.11.x, Consul Kubernetes supports the ability to utilize Vault as the secrets backend for all the secrets utilized by Consul on Kubernetes.
|
Starting with Consul K8s 0.39.0 and Consul 1.11.x, Consul Kubernetes supports the ability to utilize Vault as the secrets backend for all the secrets utilized by Consul on Kubernetes.
|
||||||
|
|
||||||
| `consul-k8s` Versions | Compatible Vault Versions | Compatible `vault-k8s` Versions |
|
| `consul-k8s` Versions | Compatible Vault Versions | Compatible `vault-k8s` Versions |
|
||||||
| ------------------------ | --------------------------| ----------------------------- |
|
| ------------------------ | --------------------------| ----------------------------- |
|
||||||
| 0.39.0 - latest | 1.9.0 - latest | 0.14.0 - latest |
|
| 0.39.0 - latest | 1.9.0 - latest | 0.14.0 - latest |
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ with the server pod or host IP addresses.
|
||||||
|
|
||||||
## Auto-join
|
## Auto-join
|
||||||
The recommended way to join a cluster running within Kubernetes is to
|
The recommended way to join a cluster running within Kubernetes is to
|
||||||
use the ["k8s" cloud auto-join provider](/docs/agent/cloud-auto-join#kubernetes-k8s).
|
use the ["k8s" cloud auto-join provider](/docs/install/cloud-auto-join#kubernetes-k8s).
|
||||||
|
|
||||||
The auto-join provider dynamically discovers IP addresses to join using
|
The auto-join provider dynamically discovers IP addresses to join using
|
||||||
the Kubernetes API. It authenticates with Kubernetes using a standard
|
the Kubernetes API. It authenticates with Kubernetes using a standard
|
||||||
|
|
|
@ -23,7 +23,7 @@ their pod IPs (`false`).
|
||||||
|
|
||||||
Finally, `client.join` is set to an array of valid
|
Finally, `client.join` is set to an array of valid
|
||||||
[`-retry-join` values](/docs/agent/options#retry-join). In the
|
[`-retry-join` values](/docs/agent/options#retry-join). In the
|
||||||
example above, a fake [cloud auto-join](/docs/agent/cloud-auto-join)
|
example above, a fake [cloud auto-join](/docs/install/cloud-auto-join)
|
||||||
value is specified. This should be set to resolve to the proper addresses of
|
value is specified. This should be set to resolve to the proper addresses of
|
||||||
your existing Consul cluster.
|
your existing Consul cluster.
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ You may also consider adopting Consul Enterprise for
|
||||||
-> **Note:** Consul on Kubernetes currently does not support external servers that require mutual authentication
|
-> **Note:** Consul on Kubernetes currently does not support external servers that require mutual authentication
|
||||||
for the HTTPS clients of the Consul servers, that is when servers have either
|
for the HTTPS clients of the Consul servers, that is when servers have either
|
||||||
`verify_incoming` or `verify_incoming_https` set to `true`.
|
`verify_incoming` or `verify_incoming_https` set to `true`.
|
||||||
As noted in the [Security Model](/docs/internals/security#secure-configuration),
|
As noted in the [Security Model](/docs/security#secure-configuration),
|
||||||
that setting isn't strictly necessary to support Consul's threat model as it is recommended that
|
that setting isn't strictly necessary to support Consul's threat model as it is recommended that
|
||||||
all requests contain a valid ACL token.
|
all requests contain a valid ACL token.
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ to help initialize ACL tokens for Consul clients and consul-k8s components for y
|
||||||
|
|
||||||
### Manually Bootstrapping ACLs
|
### Manually Bootstrapping ACLs
|
||||||
|
|
||||||
If you would like to call the [ACL bootstrapping API](/api/acl/acl#bootstrap-acls) yourself or if your cluster has already been bootstrapped with ACLs,
|
If you would like to call the [ACL bootstrapping API](/api-docs/acl#bootstrap-acls) yourself or if your cluster has already been bootstrapped with ACLs,
|
||||||
you can provide the bootstrap token to the Helm chart. The Helm chart will then use this token to configure ACLs
|
you can provide the bootstrap token to the Helm chart. The Helm chart will then use this token to configure ACLs
|
||||||
for Consul clients and any consul-k8s components you are enabling.
|
for Consul clients and any consul-k8s components you are enabling.
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ The bootstrap token requires the following minimal permissions:
|
||||||
Next, configure external servers. The Helm chart will use this configuration to talk to the Consul server's API
|
Next, configure external servers. The Helm chart will use this configuration to talk to the Consul server's API
|
||||||
to create policies, tokens, and an auth method. If you are [enabling Consul Connect](/docs/k8s/connect),
|
to create policies, tokens, and an auth method. If you are [enabling Consul Connect](/docs/k8s/connect),
|
||||||
`k8sAuthMethodHost` should be set to the address of your Kubernetes API server
|
`k8sAuthMethodHost` should be set to the address of your Kubernetes API server
|
||||||
so that the Consul servers can validate a Kubernetes service account token when using the [Kubernetes auth method](/docs/acl/auth-methods/kubernetes)
|
so that the Consul servers can validate a Kubernetes service account token when using the [Kubernetes auth method](/docs/security/acl/auth-methods/kubernetes)
|
||||||
with `consul login`.
|
with `consul login`.
|
||||||
|
|
||||||
<CodeBlockConfig filename="config.yaml">
|
<CodeBlockConfig filename="config.yaml">
|
||||||
|
|
|
@ -169,7 +169,7 @@ the value of `cluster.server` for the second cluster.
|
||||||
|
|
||||||
Lastly, we need to set up the clients so that they can discover the servers in the first cluster.
|
Lastly, we need to set up the clients so that they can discover the servers in the first cluster.
|
||||||
For this, we will use Consul's cloud auto-join feature
|
For this, we will use Consul's cloud auto-join feature
|
||||||
for the [Kubernetes provider](https://www.consul.io/docs/install/cloud-auto-join#kubernetes-k8s).
|
for the [Kubernetes provider](/docs/install/cloud-auto-join#kubernetes-k8s).
|
||||||
To use it we need to provide a way for the Consul clients to reach the first Kubernetes cluster.
|
To use it we need to provide a way for the Consul clients to reach the first Kubernetes cluster.
|
||||||
To do that, we need to save the `kubeconfig` for the first cluster as a Kubernetes secret in the second cluster
|
To do that, we need to save the `kubeconfig` for the first cluster as a Kubernetes secret in the second cluster
|
||||||
and reference it in the `clients.join` value. Note that we're making that secret available to the client pods
|
and reference it in the `clients.join` value. Note that we're making that secret available to the client pods
|
||||||
|
@ -177,7 +177,7 @@ by setting it in `client.extraVolumes`.
|
||||||
|
|
||||||
~> **Note:** The kubeconfig you're providing to the client should have minimal permissions.
|
~> **Note:** The kubeconfig you're providing to the client should have minimal permissions.
|
||||||
The cloud auto-join provider will only need permission to read pods.
|
The cloud auto-join provider will only need permission to read pods.
|
||||||
Please see [Kubernetes Cloud auto-join](https://www.consul.io/docs/install/cloud-auto-join#kubernetes-k8s)
|
Please see [Kubernetes Cloud auto-join](/docs/install/cloud-auto-join#kubernetes-k8s)
|
||||||
for more details.
|
for more details.
|
||||||
|
|
||||||
Now we're ready to install!
|
Now we're ready to install!
|
||||||
|
@ -188,7 +188,7 @@ $ helm install cluster2 --values cluster2-config.yaml hashicorp/consul
|
||||||
|
|
||||||
## Verifying the Consul Service Mesh works
|
## Verifying the Consul Service Mesh works
|
||||||
|
|
||||||
~> When Transparent proxy is enabled, services in one Kubernetes cluster that need to communicate with a service in another Kubernetes cluster must have a explicit upstream configured through the ["consul.hashicorp.com/connect-service-upstreams"](https://www.consul.io/docs/k8s/connect#consul-hashicorp-com-connect-service-upstreams) annotation.
|
~> When Transparent proxy is enabled, services in one Kubernetes cluster that need to communicate with a service in another Kubernetes cluster must have a explicit upstream configured through the ["consul.hashicorp.com/connect-service-upstreams"](/docs/k8s/connect#consul-hashicorp-com-connect-service-upstreams) annotation.
|
||||||
|
|
||||||
Now that we have our Consul cluster in multiple k8s clusters up and running, we will
|
Now that we have our Consul cluster in multiple k8s clusters up and running, we will
|
||||||
deploy two services and verify that they can connect to each other.
|
deploy two services and verify that they can connect to each other.
|
||||||
|
|
|
@ -98,7 +98,7 @@ cluster with default configurations. We strongly recommend [learning about the c
|
||||||
of Consul. This provides a less complicated out-of-box experience for new users,
|
of Consul. This provides a less complicated out-of-box experience for new users,
|
||||||
but is not appropriate for a production setup. We strongly recommend using
|
but is not appropriate for a production setup. We strongly recommend using
|
||||||
a properly-secured Kubernetes cluster or making sure that you understand and enable
|
a properly-secured Kubernetes cluster or making sure that you understand and enable
|
||||||
the [recommended security features](/docs/internals/security). Currently,
|
the [recommended security features](/docs/security). Currently,
|
||||||
some of these features are not supported in the Helm chart and require additional
|
some of these features are not supported in the Helm chart and require additional
|
||||||
manual configuration.
|
manual configuration.
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ NAME: consul
|
||||||
```
|
```
|
||||||
|
|
||||||
If you've already installed Consul and want to make changes, you'll need to run
|
If you've already installed Consul and want to make changes, you'll need to run
|
||||||
`helm upgrade`. See [Upgrading](/docs/k8s/operations/upgrading) for more details.
|
`helm upgrade`. See [Upgrading](/docs/k8s/upgrade) for more details.
|
||||||
|
|
||||||
## Viewing the Consul UI
|
## Viewing the Consul UI
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ with one another. This enables the following features:
|
||||||
|
|
||||||
- Services on all clusters can make calls to each other through Consul Service Mesh.
|
- Services on all clusters can make calls to each other through Consul Service Mesh.
|
||||||
- [Intentions](/docs/connect/intentions) can be used to enforce rules about which services can communicate across all clusters.
|
- [Intentions](/docs/connect/intentions) can be used to enforce rules about which services can communicate across all clusters.
|
||||||
- [L7 Routing Rules](/docs/connect/l7-traffic-management) can enable multi-cluster failover
|
- [L7 Routing Rules](/docs/connect/l7-traffic) can enable multi-cluster failover
|
||||||
and traffic splitting.
|
and traffic splitting.
|
||||||
- The Consul UI has a drop-down menu that lets you navigate between datacenters.
|
- The Consul UI has a drop-down menu that lets you navigate between datacenters.
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue