Acceldata
Pulse

Configure Ingress for Pulse on Kubernetes in GKE

Use this procedure to configure NGINX Ingress for Pulse services deployed on a Kubernetes cluster in Google Kubernetes Engine (GKE).


Prerequisites

Before you begin, ensure that:

  • Pulse is deployed on the Kubernetes cluster.
  • You have kubectl access to the target cluster.
  • Helm is installed and configured.
  • The Pulse services are available in the target namespace.

Info

The examples in this procedure use the pulse namespace. Replace pulse with your namespace, if different.


Add the NGINX Ingress Helm Repository

Run the following commands:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update

Install NGINX Ingress Controller

Install the NGINX Ingress Controller in the ingress-nginx namespace:

helm install ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--create-namespace

Verify the External IP Address

Run the following command to verify that the Ingress Controller service has an external IP address:

kubectl get svc -n ingress-nginx
Expected output:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller LoadBalancer <IP Address 1> <IP Address 3>8 80:30946/TCP,443:31828/TCP 27h
ingress-nginx-controller-admission ClusterIP <IP Address 2> <none> 443/TCP 27h

Create the Ingress for Pulse Backend Services

Create a file named ingress.yaml with the following content:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: pulse-ingress
namespace: pulse
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /manager(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: accelo-manager
port:
number: 20001
- path: /streaming(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: ad-streaming
port:
number: 19005
- path: /hydra(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: ad-hydra
port:
number: 19072
- path: /axnserver(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: ad-axnserver
port:
number: 19999
- path: /profiler(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: ad-pulse-profiler
port:
number: 19029

Info

Change namespace to your own namespace.

Apply the file:

kubectl apply -f ingress.yaml

Verify the Ingress Configuration

Run the following command:

kubectl get ingress -n pulse
Confirm that both pulse-ingress and pulse-ui-ingress are created successfully.

Create the Ingress for the Pulse UI Service

Create a file named ui-ingress.yaml with the following content:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: pulse-ui-ingress
namespace: pulse
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: ad-pulse-ui
port:
number: 4100
Apply the file:
kubectl apply -f ui-ingress.yaml

Access the Pulse UI

Use the external IP address of the ingress-nginx-controller service to access Pulse.

Example:

http://<EXTERNAL-IP>
Replace <EXTERNAL-IP> with the external IP address displayed in the kubectl get svc -n ingress-nginx output.