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.