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