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.