Pulse Single Node Rancher Based Deployment

This document explains the process of deploying Pulse on a single node Kubernetes (K8s). This deployment is performed by using Rancher.

Prerequisites

  • All the servers must be part of the same network.

  • You must manually set the hostname of the servers you create.

  • You must peform ssh copy-id in all the list of IPs which is provided from datacenter.

    • If you do not have a key pair in your system, you must execute the command ssh-keygen.
    • ssh-copy-id root@<IP address>>
  • Install Kubectl from the official Kubernetes documentation.

Rancher Cluster Setup in K8s

To set up a rancher based cluster:

  1. Clone the GIT repository git@bitbucket.org:acceldata/ad-platform-infrastructure.git.
  2. Copy the public key to the internal_infra folder. You can navigate to this folder by executing the following command. You must use the same key pair that was generated above.
Bash
Copy
  1. Edit the docker.yml content. You must replace the id_rsa.pub with the name of the file as shown in the following code block:
Bash
Copy
  1. Edit the docker password as shown in the following block.
Bash
Copy
  1. Save and exit the docker.yml file.
  2. Edit the hosts.ini file with the fully qualified domain name (FQDN), Internet Protocol (IP), and update the key. You can accomplish this by executing the following:
Bash
Copy
  1. Test if the ping command works, based on the group name provided by running the following command:
Bash
Copy
  1. Execute the following command to install Docker and ntp in all the machines that are part of the group popk8s. You must execute the command in all the machines that are part of the popk8s group.
Bash
Copy

Install Rancher

  1. Download and install Ranched by executing the following block of code.
Bash
Copy
  1. Configure RKE/Rancher to bring up the Kubernetes cluster by running the following code:
Bash
Copy
  1. Edit the cluster.yml file. You must replace the entire ingress block with the following:
Bash
Copy
  1. Create the K8s cluster by executing the following:
Bash
Copy

The following message is displayed:

Bash
Copy

Important If you encounter any error while bringing up the K8s cluster, you need to execute the following command on each node and then reboot the node.

Bash
Copy

Important Now, test the connectivity to the Kubernetes cluster. If you encounter an error message such as "The connection to the server localhost:8080 was refused - did you specify the right host or port?", you must add the following command to your .bashrc file.

Bash
Copy
  1. Check the list of hosts by executing the following command:
Bash
Copy

Note To use the kubectl command, you need to install the Kubectl tool. Refer to the documentation for instructions on installing Kubectl.

Metallb and Nginx Setup

  1. Download the keyz binary for ECR secret and replace the following file for Mac system.

https://bitbucket.org/acceldata/ad-automation-test/src/Dev/ops/popk8scluster/

  1. Check out the Bitbucket repository: https://bitbucket.org/acceldata/ad-service/src/development/.
Bash
Copy
  1. Open the helmfile.yml file.
  2. Comment the lines of code as shown in the following code block:
Bash
Copy

Nginx Deployment

If you intend to install Pulse in multiple namespaces, follow the instructions in the (Link Removed) document before proceeding with the next steps.

  1. Execute the following commands to install the helmfile.
Bash
Copy
  1. Execute the following commands to install helm.
Bash
Copy
  1. Execute the following commands to install K9s.
Bash
Copy

You get a response as shown below:

Bash
Copy
  1. Execute the following commands to complete the installation.
Bash
Copy

You can now use the helm file by executing the following commands:

Bash
Copy

Verify the nginx deployment by executing the following commands:

Bash
Copy

Metallb Deployment

  1. Open the helm-controller values.yaml from the file location at helm-controller/ha/ad-mettlb/values.yaml
  2. Ensure to use your subnet to specify the range and not any other subnet.
Bash
Copy
  1. Execute the commands in the following block to deploy Metallb.
Bash
Copy
  1. Verify if metallb pods and nginix services get an External IP from the range provided.
Bash
Copy
  1. For local storage deployment, execute the following command.
Bash
Copy

Deployment of Pulse DB, Core, and Add-ons

If you intend to install Pulse in multiple namespace, follow the instructions in the (Link Removed) document and then proceed with the below steps:

  1. Execute the following command for DB deployment.
Bash
Copy
  1. Execute the following command for deployment of accelo and deployer.
Bash
Copy
  1. ad-accelo is used to config cluster.
  2. ad-deployer is used to deploy agents for ansible based deployment like. HDP,kafka Standalone

The following sample commands must be used to push license file, keytab, certs, krb5.conf to pvc.

Bash
Copy

For HDP or Kafka standalone (ansible deployment), you must generate an SSH key and ensure that you are able to perform password less secure login to the cluster nodes, and then copy the key to the ad-accelo pod as shown below:

Bash
Copy

Ensure that license file is in /data01/acceldata.

  1. Execute the following inside the ad-accelo-configure pod and verify the below environments.
Bash
Copy
  1. Configure core in accelo pod by executing the following command:
Bash
Copy
  1. In the pod execute the following command.
Bash
Copy

The following message displayed:

Bash
Copy

During deployment, respond to the following questions based on your configurations.

Question AskedGuidelines for Response
Is the 'Database Service' up and running? [y/n]Type y if the database service is running.
Is this current node an 'Edge Node' of the cluster? [y/n]:Type n if the node is not an edge node. Else type y.
Enter Your Cluster's Display NameEnter the cluster name.
Enter Ambari URL (with http/https)Enter the full ambari URL with port number. For example [http://<<ip address>>:8080](http://<<ip address>>:8080).
Enter Ambari UsernameEnter your Ambari username.
Enter Ambari User PasswordEnter your Ambari password. This password is securely encrypted and stored on this machine.
Do you have hive metastore enabled (y/n)?Type y if you have enabled the hive metastore.
Select the hive metastore type: mysql/mariadbEnter either mysql or mariadb.
Enter the hive metastore DB UsernameEnter the username for hive metastore.
Enter the hive metastore DB PasswordEnter the password for hive metastore.
Enter the hive metastore Server Timezone (Example: IST/UTC)Enter the timezone for metastore. This can be IST or UTC.

The following block shows sample responses for each of the above questions.

Bash
Copy

The example of discovered configurations window is displayed below. Additionally, you will find the next set of questions asked.

Bash
Copy

Notes

  • The IP addresses for Hydra is same as the container name. To fix this issue, create a override.yml file in the /data01/acceldata/work/<Cluster_Name>/ location.
  • The cluster name for Victoria metrics is obtained from the acceldata_adsample_test.conf. You must replace it in the override.yml file.
  • You must add the following environment details:
Bash
Copy

The content of override.yml file includes the following information:

Bash
Copy

MongoDB URI Correction

  1. Execute the following commands in accelo pod.
Bash
Copy
  1. Replace the MONGO_URI=<Mongo_URI_placeholder> in the /data01/acceldata/config/acceldata<clusterName>.conf file.
Bash
Copy

For ansible based deployment of hydra (HDP/kafka), fix hydra_server_ ur manually by executing the following code block.

Bash
Copy
  1. Execute the following command.
Bash
Copy

Deploy Core Services

  1. Uncomment the following statements from helmfile/helmfile.yml file, You must perform this step for all core and add-on services. You must retain the comment if you wish to deploy rook-ceph, ad-accelo.
Bash
Copy
  1. The version or build number currently used is containers.tagName=<<release tagname>>. You must execute the following command.
Bash
Copy

Deploy Add-on Services

  1. Execute the following command to deploy the add on services.
Bash
Copy

You can now access the Pulse UI from the following URL.

HTML
Copy

FSA Load

You must execute these commands after configuring the add-on services.

  1. Connect to ad-accelo-configure, pod and run the following command.
Bash
Copy
  1. Execute the following to configure notifications.
Bash
Copy
  1. Validate if the ad-hydra server container is running and then execute the following command:
Bash
Copy

Other Configurations

For installing and uninstalling agents in HDP/Kafka (using Ansible-based deployment), after running the sync, you must delete it before proceeding with the "uninstall" tag.

  1. Ensure that the /ad-service/ops/helm-controller/helmfile.yaml file has the following content:
Bash
Copy

Note clusterName is the same name that you provided in the accelo config cluster.

  1. Execute the commands in the following block to monitor weave scope.
Bash
Copy

You can access the weave UI from the http://localhost:4040 UI.

  1. Execute the following command to delete the add-ons.
Bash
Copy
  1. To deploy an updated build version, execute the following command. For example, if the current version is 2.1.9-200622 and you wish to upgrade to 2.1.9-200822.
Bash
Copy
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard