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
- Have your Kerberos files, CA certs, and configuration files ready. For more information, see Set up Configuration Files.
- Ensure the Ingress controller and rules are already installed and the Pulse services are reachable. For more information, see Ingress for Kubernetes (K8S).
Steps to Install
- 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.
- 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 commandkubectl 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.
- 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.ymlThese YAML files provide the necessary configuration for Kubernetes to deploy and manage Pulse services.
- 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" *.yamlsed -i -e "s/DEFAULT_NAMESPACE/<pulse-namespace>/g" *.yamlThese commands update the YAML files with your specific registry secret and namespace, ensuring the configuration is tailored to your environment.
- Add host entries in the
pulse_manager_server.yamldeployment 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.
- Update the required environment variables in YAML.
In the pulse_manager_server.yaml file, update the following environment variables:
- Set the
PULSE_HOSTNAMEvariable to your Ingress hostname. - Set the
ADSTREAM_URLvariable to your Ingress URL.
namePULSE_HOSTNAME value"<Ingress-hostname>"nameADSTREAM_URL value"<Ingress-URL-of-adstream>"This configuration is essential for enabling proper service-to-service communication.
- Apply the configuration files.
Apply the RBAC policies: Sets up the necessary roles and permissions.
kubectl apply -f pulse_rbac.yamlApply the Custom Resource Definition (CRD): Registers the custom resources required by the Pulse Operator.
kubectl apply -f pulse_crd.yamlDeploy the Manager Server and Operator: Deploys the core Pulse components.
kubectl apply -f pulse_manager_server.yamlkubectl apply -f pulse_operator.yamlThese steps deploy Pulse’s services and access controls into your Kubernetes cluster. This actually installs and starts the Pulse services.
- 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 AGEaccelo-manager-76c9f796d-qp2fk 1/1 Running 0 139mcontroller-manager-bdc9846d5-tbhth 1/1 Running 0 137m- 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) AGEaccelo-manager ClusterIP <IP Address> <none> 20001/TCP 142mDetailed 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. |