Before installing a slice across your Kubernetes clusters, you must register your clusters with the KubeSlice backend using the details provided during Account Signup.
With minor changes for each cloud service, the following information will be required to create your cluster registration yaml file:
<api key> |
All |
This will be taken from the KubeSlice registration email. If you missed that step or misplaced those details simply follow KubeSlice Registration. |
<refresh token> |
All |
This will be taken from the KubeSlice registration email. If you missed that step or misplaced those details simply follow KubeSlice Registration. |
<cluster name> |
All |
The name of the cluster being registered. |
<site name> |
All |
The region the cluster is located in. |
<node ip> |
Azure, IBM |
The external IP address of the gateway node. |
<network interface> |
Google, Azure, IBM |
Name of the network interface traffic control will be set on. |
Below, we have templates for each cloud provider which can be used to register your cluster. For each cluster create a uniquely named cluster registration .yaml file using the corresponding template below:
Google Kubernetes Engine
backend:
environment: prod
endpoint: https://mesh.prod.aveshalabs.io
apiKey: <api key>
refreshToken: <refresh token>
cluster:
name: <cluster name>
siteName: <site name>
netop:
networkInterface: <network interface>
Amazon Elastic Kubernetes Service
backend:
environment: prod
endpoint: https://mesh.prod.aveshalabs.io
apiKey: <api key>
refreshToken: <refresh token>
cluster:
name: <cluster name>
siteName: <site name>
IBM Cloud Kubernetes Service
backend:
environment: prod
endpoint: https://mesh.prod.aveshalabs.io
apiKey: <api key>
refreshToken: <refresh token>
cluster:
name: <cluster name>
siteName: <site name>
nodeIp: <node ip>
netop:
networkInterface: <network interface>
Microsoft Azure Kubernetes Service
backend:
environment: prod
endpoint: https://mesh.prod.aveshalabs.io
apiKey: <api key>
refreshToken: <refresh token>
cluster:
name: <cluster name>
siteName: <site name>
nodeIp: <node ip>
netop:
networkInterface: <network interface>
These steps should be followed for all clusters you wish to include in the KubeSlice Slice.
First, switch contexts to the cluster you would like to register:
kubectx <cluster name>
Next, you will apply the configuration you created for the cluster:
helm install avesha-mesh avesha/avesha-mesh -n avesha-system -f <cluster registration>.yaml
Expected:
NAME: avesha-mesh
LAST DEPLOYED: Tue Feb 01 14:55:34 2022
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Avesha mesh setup successful
Cluster name: <cluster name>
First, switch contexts to the cluster you would like to register:
kubectx <cluster name>
Validate the KubeSlice pods were installed by checking the pods belonging to the avesha-system namespace in each cluster. Get the pods in the avesha-system namespace using the command:
kubectl get pods -n avesha-system
Here is the expected output of that command:
NAME READY STATUS RESTARTS AGE
avesha-mesh-controller-manager-5f795dbff5-dkxsz 2/2 Running 0 18m
avesha-netop-2w59s 1/1 Running 0 18m
avesha-netop-d55jq 1/1 Running 0 18m
jaeger-66cbb7994f-8l5z7 1/1 Running 0 18m
mesh-dns-659d4bf5b8-2dxfx 1/1 Running 0 18m
nsm-admission-webhook-c95d9c4b7-fjgnx 1/1 Running 0 18m
nsm-kernel-forwarder-dwl7h 1/1 Running 0 18m
nsm-kernel-forwarder-fbjfl 1/1 Running 0 18m
nsm-kernel-forwarder-kmh7z 1/1 Running 0 18m
nsm-kernel-forwarder-x9qjh 1/1 Running 0 18m
nsmgr-h85h6 3/3 Running 0 18m
nsmgr-jlnh6 3/3 Running 0 18m
nsmgr-mlrd9 3/3 Running 0 18m
nsmgr-xzx89 3/3 Running 0 18m
prefix-service-fbc844b46-86xb8 1/1 Running 0 18m
Awesome, now that your clusters are registered with KubeSlice, you are ready to install your first slice. Continue below to see KubeSlice at work: