Acceldata
Pulse

Install Pulse Kubernetes Resources Manually

This page describes how to install Pulse Kubernetes resources by manually applying Kubernetes manifests.


Prerequisites

Before you begin, make sure that you have:

  • Access to the target Kubernetes cluster.
  • kubectl configured for the target cluster.
  • The Pulse Kubernetes resource package (k8s_tar).
  • An Amazon ECR password generated from the Acceldata License Portal.

Create the Namespace

Create a namespace for the Pulse deployment.

kubectl create ns <pulse-namespace>

Create the Docker Registry Secret

Create a Docker registry secret to allow Kubernetes to pull images from the Acceldata Amazon ECR registry.

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>
Generate the Amazon ECR password from the Acceldata License Portal and replace <AWS-password> with the generated value.

Extract the Kubernetes Resource Package

Download and extract the k8s_tar package.

The package contains the following files:

-rw-r--r-- 1 1100 6 May 19:41 optimizer-calculator.yaml
-rw-r--r-- 1 9195 6 May 19:41 optimizer-webhook.yaml
-rw-r--r-- 1 13754 6 May 19:41 pulse_crd.yaml
-rw-r--r-- 1 5603 6 May 19:41 pulse_rbac.yaml
-rw-r--r-- 1 3511 6 May 19:41 pulselogs_configmap.yaml
-rw-r--r-- 1 2205 6 May 19:41 pulselogs_daemonset.yaml
-rw-r--r-- 1 1658 6 May 19:41 pulselogs_rbac.yaml
-rw-r--r-- 1 934 6 May 19:41 pulsenode_rbac.yaml
-rw-r--r-- 1 2781 7 May 16:06 pulse_manager_server.yaml
-rw-r--r-- 1 2605 7 May 16:06 pulse_operator.yaml

Update namespace and registry values

Replace the namespace and registry secret placeholders in the YAML files.

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

Configure host aliases (optional)

If the Kubernetes cluster cannot resolve database server or Hadoop cluster hostnames through DNS, add host aliases to the pulse_manager_server.yaml deployment specification.

hostAliases:
- ip: <IP Address 1>
hostnames:
- <hostname1>
- ip: <IP Address 2>
hostnames:
- <hostname2>
- ip: <IP Address 3>
hostnames:
- <hostname3>
You can add a similar structure to the spec of the deployment of pulse_manager_server.yaml file for the manager server to be able to resolve the DB server hosts.

Configure the Pulse hostname

Update the PULSE_HOSTNAME environment variable in pulse_manager_server.yaml.

- name: PULSE_HOSTNAME
value: <hostname>
Replace the example value with the ingress hostname for your environment.

Configure the ADStream URL

Update the ADSTREAM_URL environment variable in pulse_manager_server.yaml.

- name: ADSTREAM_URL
value: <Ingress for ad-streaming>
Replace the example value with the ingress URL for your environment.

Apply the Kubernetes resources

Apply the RBAC resources.

kubectl apply -f pulse_rbac.yaml
Apply the Pulse custom resource definition (CRD).
kubectl apply -f pulse_crd.yaml
Deploy the Pulse manager server and Pulse operator.
kubectl apply -f pulse_manager_server.yaml
kubectl apply -f pulse_operator.yaml

Verify the deployment

Verify that the Pulse pods are running.

kubectl get pods -n <pulse-namespace>
Example output:
NAME READY STATUS RESTARTS AGE
accelo-manager-76c9f796d-qp2fk 1/1 Running 0 139m
controller-manager-bdc9846d5-tbhth 1/1 Running 0 137m
Verify that the services are created.
kubectl get svc -n <pulse-namespace>
Example output:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
accelo-manager ClusterIP 10.43.11.62 <none> 20001/TCP 142m