Install Pulse Manager Server

The Pulse Manager Server is an API-driven service that helps you manage Pulse deployments.

This is responsible for:

  • Deploying Pulse databases on VMs or bare metal servers.

  • Managing cluster configurations

  • Interacting with Kubernetes to create and update the Custom Resources (CRs) YAML file**.**

  • Enabling the Pulse Operator to manage Pulse Service lifecycles based on the CRs automatically.


Pre-requisites


Steps to Install

  1. Create a dedicated namespace for Pulse.

Create a dedicated namespace in your Kubernetes cluster to keep all Pulse resources organized and easily accessible.

kubectl create ns <pulse-namespace>

This command creates a separate workspace in your cluster to group all Pulse-related resources.

  1. Create Docker Registry secret.

Follow these steps to allow Kubernetes to securely pull Pulse images from Acceldata’s private ECR.

# Then use it in the secret creation command kubectl create secret docker-registry <registry secret name> --docker-server=https://191579300362.dkr.ecr.us-east-1.amazonaws.com --docker-username=AWS --docker-password=<AWS password> -n <pulse-namespace>

This secret enables Kubernetes to authenticate with Acceldata’s private container registry and pull Pulse images securely.

  1. Download and extract the deployment K8S_tar.

Download and extract the K8S_tar file. It contains all the YAML files needed to deploy Pulse Manager.

.rw-r--r--@ 9.1k 26 May 16:37  pulse_crd.yml .rw-r--r--@ 2.3k 26 May 16:37  pulse_manager_server.yml .rw-r--r--@ 2.6k 26 May 16:37  pulse_operator.yml .rw-r--r--@ 4.8k 26 May 16:37  pulse_rbac.yml

These YAML files provide the necessary configuration for Kubernetes to deploy and manage Pulse services.

  1. Replace placeholders in YAML files.

Run the following sed commands to replace the DEFAULT_NAMESPACE and PULSE_REG placeholders with actual values in your configuration files.

sed -i -e "s/PULSE_REG/<registry secret name>/g" *.yaml sed -i -e "s/DEFAULT_NAMESPACE/<pulse-namespace>/g" *.yaml

These commands update the YAML files with your specific registry secret and namespace, ensuring the configuration is tailored to your environment.

  1. Add host entries in the pulse_manager_server.yaml deployment file.

If your Kubernetes cluster does not support DNS resolution for your database VMs or Hadoop nodes, you can manually add host entries in the pulse_manager_server.yaml file.

Add the following hostAliases section under the spec of the pod template:

hostAliases: - ip: <IP Address 1> hostnames: - <host name 1> - ip: <IP Address 1> hostnames: - <host name 1> - ip: <IP Address 1> hostnames: - <host name 1>

This configuration allows the Pulse Manager Server to resolve database and Hadoop hostnames when DNS is not available in your Kubernetes environment.

  1. Update the required environment variables in YAML.

In the pulse_manager_server.yaml file, update the following environment variables:

  • Set the PULSE_HOSTNAME variable to your Ingress hostname.

  • Set the ADSTREAM_URL variable to your Ingress URL.

- name: PULSE_HOSTNAME value: "<Ingress-hostname>" - name: ADSTREAM_URL value: "<Ingress-URL-of-adstream>"

This configuration is essential for enabling proper service-to-service communication.

  1. Apply the configuration files.

Apply the RBAC policies: Sets up the necessary roles and permissions.

kubectl apply -f pulse_rbac.yaml

Apply the Custom Resource Definition (CRD): Registers the custom resources required by the Pulse Operator.

kubectl apply -f pulse_crd.yaml

Deploy the Manager Server and Operator: Deploys the core Pulse components.

kubectl apply -f pulse_manager_server.yaml kubectl apply -f pulse_operator.yaml

These steps deploy Pulse’s services and access controls into your Kubernetes cluster. This actually installs and starts the Pulse services.

  1. Verify the POD status.

After applying the deployments, check if both the Manager Server and Operator pods are running:

kubectl get pods -n <pulse-namespace>

The response from kubectl get pods -n <pulse-namespace> must look like the following when both pods are running successfully:

NAME READY STATUS RESTARTS AGE accelo-manager-76c9f796d-qp2fk 1/1 Running 0 139m controller-manager-bdc9846d5-tbhth 1/1 Running 0 137m
  1. Verify that services were created.

To check whether the services have been successfully created, run:

kubectl get svc -n <pulse-namespace>

You must see output similar to the following:

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE accelo-manager ClusterIP <IP Address> <none> 20001/TCP 142m

Detailed Recap with Purpose

Step

What You Do

Purpose / Why It Matters

1. Create a Namespace

kubectl create ns <pulse-namespace>

This creates a logical workspace in Kubernetes to organize and isolate all Pulse components. It avoids naming conflicts and makes it easier to manage, monitor, and clean up resources later.

2. Create Docker Registry Secret

kubectl create secret docker-registry ...

Pulse container images are stored in a private image registry. This secret provides the credentials so Kubernetes can download those images securely.

3. Download and Extract Setup Files

Extract k8s_tar containing YAML files

These YAML files are predefined configurations for all required Pulse components. They act as blueprints that tell Kubernetes how to deploy the Manager Server, Operator, RBAC roles, and CRDs.

4. Replace Placeholders in YAMLs

sed -i -e "s/.../.../g"

The YAML files contain generic placeholders. You replace them with actual values (namespace, registry secret) so that Kubernetes can deploy to the correct environment with the correct settings.

5. Add Host Entries (Optional)

Add hostAliases in pulse_manager_server.yaml

If your K8s cluster lacks DNS or internal name resolution, these host aliases provide a manual hostname-to-IP mapping. This ensures Pulse Manager can still connect to DBs or Hadoop nodes.

6. Update PULSE_HOSTNAME and ADSTREAM_URL

Edit env: section in YAML

These environment variables set the hostnames Pulse Manager will use to expose itself and communicate with AD-Stream. This enables proper routing and communication through the Ingress layer.

7. Apply the YAML Config Files

kubectl apply -f ...

This tells Kubernetes to start deploying all defined resources (RBAC, CRDs, Pods, Deployments, etc.) into the cluster. This is the actual installation step for running Pulse.

8. Verify Pod Status

kubectl get pods -n <namespace>

This checks if the deployed components (like accelo-manager, controller-manager) are running as expected. If they aren’t, you can know there is a problem to debug.

9. Verify Service Creation

kubectl get svc -n <namespace>

Services expose the running Pulse pods to internal or external traffic. This step confirms if the services were correctly created, which is critical for Pulse's accessibility and integration.