Consul on Kubernetes CLI Reference
The Consul on Kubernetes CLI, consul-k8s
, is a tool for managing Consul
that does not require direct interaction with Helm, the Consul CLI,
or kubectl
.
For guidance on how to install consul-k8s
, refer to the
Installing the Consul K8s CLI documentation.
This topic describes the commands and available options for using consul-k8s
.
Usage
The Consul on Kubernetes CLI uses the following syntax:
Commands
You can use the following commands with consul-k8s
.
config
: Interact with helm configuration.config read
: Read helm configuration of a Consul installation.
install
: Install Consul on Kubernetes.proxy
: Inspect Envoy proxies managed by Consul.proxy list
: List all Pods running proxies managed by Consul.proxy read
: Inspect the Envoy configuration for a given Pod.proxy log
: Inspect and modify the Envoy logging configuration for a given Pod.proxy stats
: View the Envoy cluster stats for a given Pod.
status
: Check the status of a Consul installation on Kubernetes.troubleshoot
: Troubleshoot Consul service mesh and networking issues from a given pod.uninstall
: Uninstall Consul deployment.upgrade
: Upgrade Consul on Kubernetes from an existing installation.version
: Print the version of the Consul on Kubernetes CLI.
config
The config
command exposes the read
subcommand that allows to read the helm configuration of a Consul installation.
config read
: Read helm configuration of a Consul installation.
config read
Flag | Description | Default |
---|---|---|
-all-namespaces , -A | Boolean List pods in all Kubernetes namespaces. | false |
-namespace , -n | String The Kubernetes namespace to list proxies in. | Current kubeconfig namespace. |
Refer to the Global Options for additional options that you can use when installing Consul on Kubernetes.
Example Commands
The following example command reads the Helm configuration in the myNS
namespace.
install
The install
command installs Consul on your Kubernetes cluster.
The following options are available.
Flag | Description | Default |
---|---|---|
-auto-approve | Boolean value that enables you to skip the installation confirmation prompt. | false |
-dry-run | Boolean value that validates the installation and returns a summary. | false |
-config-file | String value that specifies the path to a file containing custom installation configurations, e.g., Consul Helm chart values file. You can use the -config-file flag multiple times to specify multiple files. | none |
-namespace | String value that specifies the namespace of the Consul installation. | consul |
-preset | String value that installs Consul based on a preset configuration. You can specify the following values: demo : Installs a single replica server with sidecar injection enabled; useful for testing service mesh functionality. secure : Installs a single replica server with sidecar injection, ACLs, and TLS enabled; useful for testing service mesh functionality. | Configuration of the Consul Helm chart. |
-set | String value that enables you to set a customizable value. This flag is comparable to the helm install --set flag. You can use the -set flag multiple times to set multiple values. Consul Helm chart values are supported. | none |
-set-file | String value that specifies the name of an arbitrary config file. This flag is comparable to the helm install --set-file flag. The contents of the file will be used to set a customizable value. You can use the -set-file flag multiple times to specify multiple files. Consul Helm chart values are supported. | none |
-set-string | String value that enables you to set a customizable string value. This flag is comparable to the helm install --set-string flag. You can use the -set-string flag multiple times to specify multiple strings. Consul Helm chart values are supported. | none |
-timeout | Specifies how long to wait for the installation process to complete before timing out. The value is specified with an integer and string value indicating a unit of time. The following units are supported: ms (milliseconds)s (seconds)m (minutes) In the following example, installation will timeout after one minute: consul-k8s install -timeout 1m | 10m |
-wait | Boolean value that determines if Consul should wait for resources in the installation to be ready before exiting the command. | true |
-verbose , -v | Boolean value that specifies whether to output verbose logs from the install command with the status of resources being installed. | false |
-help , -h | Prints usage information for this option. | none |
See Global Options for additional commands that you can use when installing Consul on Kubernetes.
Example Commands
The following example command installs Consul in the myNS
namespace according to the secure
preset.
The following example commands install Consul on Kubernetes using custom values, files, or strings that are set via flags. The underlying Consul-on-Kubernetes Helm chart uses the flags to customize the installation. The flags are comparable to the helm install
flags.
proxy
The proxy
command exposes two subcommands for interacting with proxies managed by
Consul in your Kubernetes Cluster.
proxy list
: List all Pods running proxies managed by Consul.proxy read
: Inspect the Envoy configuration for a given Pod.proxy log
: Inspect and modify the Envoy logging configuration for a given Pod.proxy stats
: View the Envoy cluster stats for a given Pod.
proxy list
Flag | Description | Default |
---|---|---|
-all-namespaces , -A | Boolean List pods in all Kubernetes namespaces. | false |
-namespace , -n | String The Kubernetes namespace to list proxies in. | Current kubeconfig namespace. |
-output-format , -o | String If set to json, outputs the result in json format, else table format | table |
Refer to the Global Options for additional options that you can use when installing Consul on Kubernetes.
This command lists proxies and their Type
. Types of proxies include:
Sidecar
: The majority of pods in the cluster areSidecar
types. They run the proxy as a sidecar to connect the pod as a service in the mesh.API Gateway
: These pods run a proxy to manage connections with networks outside of the Consul cluster. Read more about API gateways.Ingress Gateway
: These pods run a proxy to manage ingress into the Kubernetes cluster. Read more about ingress gateways.Terminating Gateway
: These pods run a proxy to control connections to external services. Read more about terminating gateways.Mesh Gateway
: These pods run a proxy to manage connections between Consul clusters connected using mesh federation. Read more about Consul Mesh Federation.
Example Commands
Display all pods in the current Kubernetes namespace that run proxies managed by Consul.
Display all pods in the consul
Kubernetes namespace that run proxies managed
by Consul.
Display all Pods across all namespaces that run proxies managed by Consul.
Display all Pods across all namespaces that run proxies managed by Consul in JSON format
proxy read
The proxy read
command allows you to inspect the configuration of Envoy proxies running on a given Pod.
The command takes a required value, <PODNAME>
. This should be the full name
of a Kubernetes Pod. If a Pod is running more than one Envoy proxy managed by
Consul, as in the Multiport configuration,
configuration for all proxies in the Pod will be displayed.
The following options are available.
Flag | Description | Default |
---|---|---|
-namespace , -n | String The namespace where the target Pod can be found. | Current kubeconfig namespace. |
-output , -o | String Output the Envoy configuration as 'table', 'json', or 'raw'. | 'table' |
-clusters | Boolean Filter output to only show clusters. | false |
-endpoints | Boolean Filter output to only show endpoints. | false |
-listeners | Boolean Filter output to only show listeners. | false |
-routes | Boolean Filter output to only show routes. | false |
-secrets | Boolean Filter output to only show secrets. | false |
-address | String Filter clusters, endpoints, and listeners output to only those with endpoint addresses which contain the given value. | "" |
-fqdn | String Filter cluster output to only clusters with a fully qualified domain name which contains the given value. | "" |
-port | Int Filter endpoints output to only endpoints with the given port number. | -1 which does not filter by port |
Example commands
Get the configuration summary for the Envoy proxy running on the Pod
backend-658b679b45-d5xlb
.
Get the Envoy configuration summary for all clusters with a fully qualified
domain name that includes "default"
. Display only clusters and listeners.
Get the Envoy configuration summary in a JSON format. Note that this is not the same as the raw configuration dump from the admin API. This information is the same as what is displayed in the table output above, but in a JSON format.
Get the raw Envoy configuration dump and clusters information for the Envoy
proxy running on the Pod backend-658b679b45-d5xlb
. The example command returns
the raw configuration for each service as JSON. You can use the
JQ command line tool to index into
the configuration for the service you want to inspect.
Refer to the Envoy config dump documentation for more information on the structure of the config dump.
The following output is truncated for brevity.
proxy log
The proxy log
command allows you to inspect and modify the logging configuration of Envoy proxies running on a given Pod.
The command takes a required value, <PODNAME>
. This should be the full name
of a Kubernetes Pod. If a Pod is running more than one Envoy proxy managed by
Consul, as in the Multiport configuration,
the terminal displays configuration information for all proxies in the pod.
The following options are available.
Flag | Description | Default |
---|---|---|
-namespace , -n | String Specifies the namespace containing the target Pod. | Current kubeconfig namespace. |
-update-level , -u | String Specifies the logger (optional) and the level to update. Use the following format to configure the same level for loggers: You can also specify a comma-delineated list to configure levels for specific loggers, for example: | none |
-reset , -r | String Reset the log levels for all loggers back to the default of info | info |
Example commands
In the following example, Consul returns the log levels for all of an Envoy proxy's loggers in a pod with the ID server-697458b9f8-4vr29
:
The following command updates the log levels for all loggers of an Envoy proxy to warning
.
The following command updates the grpc
log level to error
, the http
log level to critical
, and the runtime
log level to debug
for pod ID server-697458b9f8-4vr29
The following command resets the log levels for all loggers of an Envoy proxy in pod server-697458b9f8-4vr29
to the default level of info
.
proxy stats
The proxy stats
command allows you to inspect the Envoy cluster stats for Envoy proxies running on a given Pod.
Flag | Description | Default |
---|---|---|
-namespace , -n | String The Kubernetes namespace to list proxies in. | Current kubeconfig namespace. |
Refer to the Global Options for additional options that you can use when installing Consul on Kubernetes.
Example Commands
Display the Envoy cluster stats in a given pod in default namespace.
Display the Envoy cluster stats in a given pod in different namespace.
status
The status
command provides an overall status summary of the Consul on Kubernetes installation. It also provides the configuration that was used to deploy Consul K8s and information about the health of Consul servers and clients. This command does not take in any flags.
Example Command
troubleshoot
The troubleshoot
command exposes two subcommands for troubleshooting Consul
service mesh and network issues from a given pod.
troubleshoot upstreams
: List all Envoy upstreams in Consul service mesh from the given pod.troubleshoot proxy
: Troubleshoot Consul service mesh configuration and network issues between the given pod and the given upstream.
troubleshoot upstreams
Flag | Description | Default |
---|---|---|
-namespace , -n | String The Kubernetes namespace to list proxies in. | Current kubeconfig namespace. |
Example Commands
The following example displays all transparent proxy upstreams in Consul service mesh from the given pod.
The following example displays all explicit upstreams from the given pod in the Consul service mesh.
troubleshoot proxy
Flag | Description | Default |
---|---|---|
-namespace , -n | String The Kubernetes namespace to list proxies in. | Current kubeconfig namespace. |
-upstream-ip | String The IP address of the upstream transparent proxy | |
-upstream-envoy-id | String The Envoy identifier of the upstream |
Example Commands
The following example troubleshoots the Consul service mesh configuration and network issues between the given pod and the given upstream IP.
The following example troubleshoots the Consul service mesh configuration and network issues between the given pod and the given upstream.
uninstall
The uninstall
command removes Consul from Kubernetes.
The following options are available.
Flag | Description | Default |
---|---|---|
-auto-approve | Boolean value that enables you to skip the removal confirmation prompt. | false |
-name | String value for the name of the installation to remove. | none |
-namespace | String value that specifies the namespace of the Consul installation to remove. | consul |
-timeout | Specifies how long to wait for the removal process to complete before timing out. The value is specified with an integer and string value indicating a unit of time. The following units are supported: ms (milliseconds)s (seconds)m (minutes) h (hours) In the following example, removal will timeout after one minute: consul-k8s uninstall -timeout 1m | 10m |
-wipe-data | Boolean value that deletes PVCs and secrets associated with the Consul installation during installation. Data will be removed without a verification prompt if the -auto-approve flag is set to true . | false Instructions for removing data will be printed to the console. |
--help | Prints usage information for this option. | none |
See Global Options for additional commands that you can use when uninstalling Consul from Kubernetes.
Example Command
The following example command immediately uninstalls Consul from the my-ns
namespace with the name my-consul
and removes PVCs and secrets associated with the installation without asking for verification:
upgrade
The upgrade
command upgrades the Consul on Kubernetes components to the current version of the consul-k8s
cli. Prior to running consul-k8s upgrade
, the consul-k8s
CLI should first be upgraded to the latest version as described Upgrade the Consul K8s CLI
The following options are available.
Flag | Description | Default |
---|---|---|
-auto-approve | Boolean value that enables you to skip the upgrade confirmation prompt. | false |
-dry-run | Boolean value that allows you to run pre-upgrade checks and returns a summary of the upgrade. | false |
-config-file | String value that specifies the path to a file containing custom upgrade configurations, e.g., Consul Helm chart values file. You can use the -config-file flag multiple times to specify multiple files. | none |
-namespace | String value that specifies the namespace of the Consul installation. | consul |
-preset | String value that upgrades Consul based on a preset configuration. | Configuration of the Consul Helm chart. |
-set | String value that enables you to set a customizable value. This flag is comparable to the helm upgrade --set flag. You can use the -set flag multiple times to set multiple values. Consul Helm chart values are supported. | none |
-set-file | String value that specifies the name of an arbitrary config file. This flag is comparable to the helm upgrade --set-file flag. The contents of the file will be used to set a customizable value. You can use the -set-file flag multiple times to specify multiple files. Consul Helm chart values are supported. | none |
-set-string | String value that enables you to set a customizable string value. This flag is comparable to the helm upgrade --set-string flag. You can use the -set-string flag multiple times to specify multiple strings. Consul Helm chart values are supported. | none |
-timeout | Specifies how long to wait for the upgrade process to complete before timing out. The value is specified with an integer and string value indicating a unit of time. The following units are supported: ms (milliseconds)s (seconds)m (minutes) In the following example, the upgrade will timeout after one minute: consul-k8s upgrade -timeout 1m | 10m |
-wait | Boolean value that determines if Consul should wait for resources in the upgrade to be ready before exiting the command. | true |
-verbose , -v | Boolean value that specifies whether to output verbose logs from the upgrade command with the status of resources being upgraded. | false |
--help | Prints usage information for this option. | none |
See Global Options for additional commands that you can use when installing Consul on Kubernetes.
version
The version
command prints the Consul on Kubernetes version. This command does not take any options.
You can also print the version with the --version
flag.
Global Options
The following global options are available.
Flag | Description | Default |
---|---|---|
-context | String value that sets the Kubernetes context to use for Consul K8s CLI operations. | none |
-kubeconfig , -c | String value that specifies the path to the kubeconfig file. | none |