xDS Control Plane
services | ports | Protocol |
---|---|---|
xDS | 7800 | gRPC (IPv4 OR IPv6) |
For single-cluster integration, Quilkin provides a manage
service, that can be
used with a number of configuration discovery providers to provide cluster
configuration multiple proxy
s. With each provider automating the
complexity of a full xDS management control plane via integrations with popular
projects and common architecture patterns.
To view all the providers and options for the manage
subcommand, run:
$ quilkin manage --help
Runs Quilkin as a xDS management server, using `provider` as a configuration source
Usage: quilkin manage [OPTIONS] <COMMAND>
Commands:
agones Watches Agones' game server CRDs for `Allocated` game server endpoints, and for a `ConfigMap` that specifies the filter configuration
file Watches for changes to the file located at `path`
help Print this message or the help of the given subcommand(s)
Options:
-r, --relay <RELAY> One or more `quilkin relay` endpoints to push configuration changes to [env: QUILKIN_MANAGEMENT_SERVER=]
-p, --port <PORT> The TCP port to listen to, to serve discovery responses [env: QUILKIN_PORT=] [default: 7800]
--region <REGION> The `region` to set in the cluster map for any provider endpoints discovered [env: QUILKIN_REGION=]
--zone <ZONE> The `zone` in the `region` to set in the cluster map for any provider endpoints discovered [env: QUILKIN_ZONE=]
--sub-zone <SUB_ZONE> The `sub_zone` in the `zone` in the `region` to set in the cluster map for any provider endpoints discovered [env: QUILKIN_SUB_ZONE=]
-h, --help Print help
Overview
In addition to static configuration provided upon startup, a Quiklin proxy's configuration can also be updated at runtime. The proxy can be configured on startup to talk to a set of management servers which provide it with updates throughout its lifecycle.
Communication between the proxy and management server uses the xDS gRPC protocol, similar to an envoy proxy. xDS is one of the standard configuration mechanisms for software proxies and as a result, Quilkin can be setup to discover configuration resources from any API compatible server. Also, given that the protocol is well specified, it is similarly straight-forward to implement a custom server to suit any deployment's needs.
As described within the xDS-api documentation, the xDS API comprises a set of resource discovery APIs, each serving a specific set of configuration resource types, while the protocol itself comes in several variants. Quilkin implements the Aggregated Discovery Service (ADS) Incremental xDS variant with gRPC.
xDS Configuration Resources
Heavily influenced by xDS's Cluster Discovery Service, Endpoint Discovery Service, and Listener Discovery Service, Quilkin utilises its own custom Configuration xDS resources (reference) to enable dynamic configuration of Datacenters, Clusters, Endpoints and Filters through the Aggregated Discovery Service.
This above reference also provides documentation for all the ProtoBuf definitions for all Filters that are available in Quilkin.
Connecting to an xDS management server
Connecting a Quilkin proxy to an xDS management server can be implemented via providing one or more URLs to
the management_servers
command line.