3. Setting Up Your Robin Cluster¶
Before your cluster becomes fully operational, there are additional steps that need to be performed in order to configure Robin correctly.
3.1. Robin license activation¶
After installing Robin software on any platform, whenever you run a command a notice will appear stating that the Robin license will expire in approximately two days. This is an indication that the license is yet to be activated. In order to avoid a cluster lockdown you can activate your Robin cluster via one of the following methods.
If the license is not activated, your Robin cluster will be locked after the allocated time.
3.1.1. Web license activation¶
Activate your Robin license by clicking this link: https://get.robin.io/activate. After following the instructions detailed on the website your Robin license should be activated and your cluster ready to use.
Note
You will be asked to provide the Robin cluster ID when activating your license. This can be discovered by running the ‘robin license id’ command via the client or when you are connected to the Robin pod. In addition, you can apply the generated key via the command robin license apply <key>
.
3.1.2. CLI license activation¶
In order to activate your license via the CLI, first register here and retrieve your User ID. Next, run the following command:
# robin license activate <USERID>
This will activate your Robin license and ensure your cluster is ready to use.
Example:
# robin license activate demo1234
License has been applied successfully
3.2. Robin client¶
3.2.1. Obtaining Robin Client¶
Robin Client enables you to access the Robin cluster remotely from your client Linux or Mac laptops. You can download the Robin Client from the Robin Cluster.
Note
You must set up a Loadbalancer before installing a Robin client on your local laptop if you are using Robin Cloud Native Storage.
3.2.2. Setting Up Load Balancer¶
You must set up your loadbalancer before you download the Robin Client and setting the context.
To set up the load balancer, run the following steps:
Create a YAML file.
# vi lb.yaml
Copy and paste the following YAML definition of a Service into the file created above.
apiVersion: v1 kind: Service metadata: name: robin-admin namespace: robinio spec: ports: - name: rcmserver port: 29442 protocol: TCP targetPort: 29442 - name: rcmwatchdog port: 29444 protocol: TCP targetPort: 29444 selector: robin.io/robinrole: master type: LoadBalancer
Create the Service via
kubectl
.# kubectl apply -f lb.yaml
Verify that loadbalancer is set by running the following command:
# kubectl get services -A | grep -1 lb
The output should be similar to the following:
# kubectl get services -A | grep robin-master kube-system node-local-dns ClusterIP 172.21.158.45 <none> 53/UDP,53/TCP 27h kube-system public-crc0hmjr7f0mln1bhhsnm0 LoadBalancer 172.21.104.158 2261b520-eu-de.lb.appdomain.cloud 80:31042/TCP,443:31778/TCP 27h robinio csi-attacher-robin ClusterIP 172.21.156.151 <none> 12345/TCP 141m -- robinio csi-snapshotter-robin ClusterIP 172.21.63.185 <none> 12345/TCP 141m robinio robin-admin LoadBalancer 172.21.46.14 8ebbd553-eu-de.lb.appdomain.cloud 29442:31294/TCP,29444:31877/TCP 2m47s robinio robin-master ClusterIP 172.21.212.37 <none> 29442/TCP,29449/TCP,29445/TCP,29466/TCP,29467/TCP,29458/TCP,29451/TCP, 141m
3.2.3. Downloading Robin Client¶
You need to download the Robin client to access Robin Cluster from your Linux or Mac laptop.
Prerequisites
You must have your master cluster IP address to download Robin Client.
If you are running Cloud Native Storage, you must first set up the Loadbalancer. For more information, review the section detailed here.
Run the following command to download and set up Robin Client:
# curl -k https://<master_ip>:<port>/api/v3/robin_server/download?file=robincli&os=<os> -o robin
Note
If you are running Cloud Native Storage, you must use the IP address of the loadbalancer in place of the <master_ip>
variable. Refer to this section to see how you can set up Loadbalancer specific to your installation.
Example
# curl -k 'https://vnode42:29442/api/v3/robin_server/download?file=robincli&os=linux' -o robin
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 10.1M 100 10.1M 0 0 1421k 0 0:00:07 0:00:07 --:--:-- 1483k
# ls -lart
-rw-r--r-- 1 demo staff 10655536 Mar 26 14:12 robin
After running the curl command a file should have been downloaded to your current working directory. Make it an executable and setup the appropriate context based on the type of installation:
3.2.4. Accessing Robin Cluster Using Robin Client¶
The Robin Client enables you to access your Robin Cluster.
Prerequisite
The Robin Client should be installed on your Linux or Mac machine.
The following are the default credentials for the Robin Cluster:
Username: admin
Password: Robin123
To access the Robin cluster using the client, run the following command:
# ./robin login <username>
Enter the password when prompted.
3.2.5. Setting Context for Robin Client¶
Setting context is directing your client to access which Robin cluster when you run any command from the Robin client on your local laptop.
Note
For external access to highly available (HA) Robin Cloud Native Platform clusters, the robincp_mode
attribute must be enabled. In order to verify its status, run the following command: robin config list | grep "robincp_mode
. In addition, in order to enable the attribute issue the following command: # robin config update manager robincp_mode True
After you download and install the Robin client, you must set the context for your client. Issue the following command to do so:
# chmod +x robin
# ./robin client add-context <loadbalancer_ip> --port <port number> --file-port <port number> --event-port <port number> --set-current
Note
The variable loadbalancer_ip
can also be the IP address of your Robin master node.
3.3. Disk Management¶
ROBIN discovers the disks attached to the kuberenetes nodes and uses them for providing storage to the application.
To discover new disks attached to the hosts, run following command.
$ robin host probe [<hostname>|--all] --rediscover
To verify new disks are discovered, run following command
$ robin disk list
To add new disks to Robin storage, run
$ robin host add-role <hostnames> storage [--disks <disks>]
hostnames: List of comma seperated list of hostnames <Required> disks : List of comma seperated wwn of disks <Optional>. WWNs are listed as part of “robin disk list” output.
If no “–disks” parameters provided, robin will use all the newly discovered disks.
In addition ROBIN makes sure that re-attachable disks (Disks which can be attached to any host eg. SAN/EBS/GCP disks) are always accessible even in the event of kubernetes node failure. When a kuberenetes node goes down, ROBIN detaches the disk from failed node and attaches it to a healthy node so that application data remains accessible.
On Google Cloud Platform, you can attach disks to your instance via the UI or Google APIs and have them available for use by Robin by running the below command:
$ robin host probe <hostname> --rediscover
On the other hand you can utilize Robin to provision disks in GCP to use for application deployment. To create 100 GB disk in GCP, run following command:
$ robin disk create <hostname> --type <pd-standard | pd-ssd> --size 100
These disks will be attached automatically and auto discovered by Robin so they will be ready to use straightaway.
Note
Due to Robin’s advanced feature to make sure disks are always accessible, it needs the manage disks permission to be selected while deploying cluster on GCP.
On the Google Anthos platform, you can add disks to cluster VMs from vSphere and have them discovered for use by Robin by running the below command:
$ robin host probe <hostname> --rediscover
To verify the necessary disks are discovered, run the following command:
$ robin disk list
In order to initialize the disks so they can be utilized, run the following command:
$ robin host add-role <hostname> storage [--disks <disks>]
Note
The --disks
paramater is optional, and if no disks are provided then all newly discovered disks will be initialized.
On the other hand you can utilize Robin to provision virtual disks to use for application deployment. To create 100 GB disk for Anthos, run following command:
$ robin disk create <hostname> --type independent-persistent --size 100
These disks will be attached automatically and auto discovered by Robin so they will be ready to use straightaway.
Note
Due to Robin’s advanced feature to make sure disks are always accessible, it needs credentials, provided via Kubernetes secret, to have all cluster and disk level API privileges.
On AWS, you can attach disks to your EC2 instance via the UI or AWS CLI/APIs and have them discovered for use by Robin by running the below command:
$ robin host probe <hostname> --rediscover
To verify the necessary disks are discovered, run the following command:
$ robin disk list
In order to initialize the disks so they can be utilized, run the following command:
$ robin host add-role <hostname> storage [--disks <disks>]
Note
The --disks
paramater is optional, and if no disks are provided then all newly discovered disks will be initialized.
On the other hand you can utilize Robin to provision disks in AWS to use for application deployment. To create 100 GB disk in AWS, run following command:
$ robin disk create <hostname> --type <gp2 | io1 | st1> --size 100
These disks will be attached automatically to the EC2 instances and auto discovered by Robin so they will be ready to use straightaway.
Note
Due to Robin’s advanced feature to make sure disks are always accessible, IAM Profiles associated with the host (or permissions granted to a user) must contain all Volume write and list actions.
On IBM Cloud Platform, you can create and attach disks to your instance via the UI or IBM Cloud APIs and have them disco for use by Robin by running the below command:
$ robin host probe <hostname> --rediscover
To verify the necessary disks are discovered, run the following command:
$ robin disk list
In order to initialize the disks so they can be utilized, run the following command:
$ robin host add-role <hostname> storage [--disks <disks>]
Note
The --disks
paramater is optional, and if no disks are provided then all newly discovered disks will be initialized.
Alternatively you can utilize Robin utility to provision and attach disks in IBM Cloud to use for application deployment. To create 100 GB disk in IBM Cloud, run following command:
$ robin disk create <hostname> --type <general-purpose | 5iops-tier | 3iops-tier | custom > --size 100
These disks will be attached automatically and auto discovered by Robin so they will be ready to use straightaway.
3.4. User Management¶
You must be logged into the ROBIN cluster to take advantage of ROBIN CNS data management capabilities. You can log in as the cluster administrator (an admin
account is created during installation), or you can log in as a regular user (after the cluster administrator creates a user account for you). This is explained in more detail in the User Management section.
3.5. Importing Namespaces¶
In order to manage the applications, Robin needs to have access to the namespaces in which applications are created. Run the following command to import namespaces to Robin. More details on Namespaces and commands to manage them can be found here.
$ robin namespace add statefullapps --import-namespace
Namespace 'statefullapps' has been added for user 'admin' in tenant 'Administrators'
$ robin namespace list
+--------------------+----------------------+-------------------+
| Name | Owner/Tenant | Primary Namespace |
+--------------------+----------------------+-------------------+
| t001-u000003 | admin/Administrators | True |
| statefullapps | admin/Administrators | False |
+--------------------+----------------------+-------------------+
3.6. Disabling Telemetry¶
With every installation ROBIN collects usage statistics to improve overall user experience with the product. The telemetry data collected is strictly anonymous and does not contain any hostnames or application names.
Details such as the number of hosts in the ROBIN cluster and their individual configurations (CPU, memory and storage space statistics) are aggregated and collected. In addition information about the PVs and storage classes available on the cluster is saved. In order to disable telemetry data collection, run the following command:
$ robin config update cluster enable_telemetry False