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.
