Getting Started
With K10 already installed in each cluster, a simple bootstrapping process enables the K10 multi-cluster manager. Through the bootstrapping process, one cluster will be setup as the primary. Additional clusters are then bootstrapped as secondaries.
The bootstrapping process is accomplished via the k10multicluster
tool on a
system having access to the Kubernetes clusters being bootstrapped.
Clusters
In a multi-cluster setup, one cluster is designated as primary, while all others are designated as secondaries.
Tip
To get started, just setting up a primary can be a great way to go! Secondaries can be added at any time.
Primary
The cluster from which the K10 Multi-Cluster Manager will be accessed is designated as primary.
The primary cluster defines policies and other configuration centrally. Centrally defined policies and configuration can then be distributed to designated clusters to be enacted.
The primary cluster also aggregates metrics so that they may be reported centrally.
Secondary
Non-primary clusters are designated as secondaries.
The secondary clusters receive policies and other configuration from the primary cluster. Once policies are distributed to a secondary, the local K10 installation enacts the policy. This ensures that the policy will continue to be enforced, even if disconnected from the primary.
Cluster Requirements
The primary requirement for setting up the K10 Multi-Cluster Manager is having K10 installed. This is true for primary as well as secondary clusters. See Installing K10 for instructions.
Additional Secondary Requirements
- Network
Secondary K10's ingress must be accessible by the primary
Secondary API Server must be accessible by the primary
Bootstrapping Clusters
The k10multicluster
tool is used to setup primary cluster as a K10
Multi-Cluster Manager, and to add or remove secondary clusters. Additional
information, including how to download the tool, can be found on the
Bootstrapping Commands Reference page.
Note
The tool will use default values for things such as the K10 namespace, release name, and current Kubernetes context. These can be changed with additional flags.
The complete command reference can be found on the Bootstrapping Commands Reference page.
Tip
The k10multicluster
tool uses Kubernetes contexts available on the local
system. To see the contexts available, use the following command:
$ kubectl config get-contexts
Setup-Primary
To setup the primary cluster, use the setup-primary
command:
$ k10multicluster setup-primary \
--context=<primary_cluster_context_name> \
--name=<primary_cluster_name>
Note
Clusters can be given any name, but names must be unique to a cluster and be a valid Kubernetes name. Follow Kubernetes naming conventions while naming clusters.
At this point, the K10 Multi-Cluster Manager has been setup and can be accessed through the primary's K10 dashboard. See Dashboard Access for additional details.
Additional clusters may be added by following the bootstrapping directions for secondaries described below.
Bootstrap Secondary Cluster
To add a secondary cluster to the K10 Multi-Cluster Manager,
use the bootstrap
command.
$ k10multicluster bootstrap \
--primary-context=<primary_cluster_context_name> \
--primary-name=<primary_cluster_name> \
--secondary-context=<secondary_cluster_context_name> \
--secondary-name=<secondary_cluster_name> \
--secondary-cluster-ingress=<secondary_ingress>/<k10_endpoint>
Note
Clusters can be given any name, but names must be unique to a cluster and be a valid Kubernetes name. Follow Kubernetes naming conventions while naming clusters.
Note
The secondary ingress must be a full URL for the ingress. For example:
https://my-cluster.example.com/k10/
Disconnect Secondary Cluster
To remove a secondary cluster from K10 Multi-Cluster Manager, use the
disconnect
command.
$ k10multicluster disconnect \
--primary-context=<primary_cluster_context_name> \
--primary-name=<primary_cluster_name> \
--secondary-context=<secondary_cluster_context_name> \
--secondary-name=<secondary_cluster_name>