Introduction
When deploying WebFOCUS Container Edition in an AWS EKS cluster, you can utilize the AWS Load Balancer Controller to create an Application Load Balancer.
AWS Load Balancer Controller
AWS Load Balancer Controller is a controller to help manage Elastic Load Balancers for a Kubernetes cluster.
- It satisfies Kubernetes Ingress resources by provisioning Application Load Balancers.
- It satisfies Kubernetes Service resources by provisioning Network Load Balancers.
Enabling AWS load balancer controller in EKS cluster
https://docs.aws.amazon.com/eks/latest/userguide/lbc-helm.html
learn more about AWS load balancer controller here:
https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/
WebFOCUS CE deployment changes
Following changes are required in wf.integ.yaml.gotmpl
ingress:
enabled: true
annotations:
kubernetes.io/ingress .class: "alb"
alb.ingress.kubernetes.io/certificate-arn : <acm certificate url>
alb.ingress.kubernetes.io/load-balancer-name : myingressalb
alb.ingress.kubernetes.io/scheme : internet-facing
alb.ingress.kubernetes.io/target-type : ip
alb.ingress.kubernetes.io/target-group-attributes : stickiness.enabled= true , stickiness.lb_cookie.duration_seconds=600
alb.ingress.kubernetes.io/ssl-redirect : '443'
path: /*
|
here alb ingress class in provided by AWS load balancer controller.
Enabled session stickiness using annotations "stickiness.enabled=true,stickiness.lb_cookie.duration_seconds=600"
Update "platform.servingDomain" with your fully qualified domain name
Updating existing WebFOCUS CE installation
update only appserver release
helmfile -e dev --selector name=appserver sync
|
Once sync is complete check appserver ingress defination, appserver Ingress looks like this:
$kubectl -n webfocus get ing apserver -o yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/certificate-arn : arn : aws : acm : us-west-2 : 12345678 : certificate/adaae1da-21b8-41ce-a801-eaf5afe80d7c
alb.ingress.kubernetes.io/load-balancer-name : myingressalb
alb.ingress.kubernetes.io/scheme : internet-facing
alb.ingress.kubernetes.io/target-type : ip
alb.ingress.kubernetes.io/target-group-attributes : stickiness.enabled= true , stickiness.lb_cookie.duration_seconds=60
alb.ingress.kubernetes.io/ssl-redirect : '443'
meta.helm.sh/release-name : appserver
meta.helm.sh/release-namespace : webfocus
finalizers:
- ingress.k8s.aws/resources
generation: 2
labels:
app.kubernetes.io/component : webfocus
app.kubernetes.io/instance : appserver
app.kubernetes.io/managed-by : Helm
app.kubernetes.io/name : appserver
app.kubernetes.io/part-of : TIBCO-WebFOCUS
app.kubernetes.io/version : 1.3.2
helm.sh/chart : appserver-1.3.2
name: appserver
namespace: webfocus
spec:
ingressClassName: alb
rules:
- http :
paths:
- backend :
service:
name: appserver
port:
name: port8080
path: /*
pathType: ImplementationSpecific
|
Now you can access your application by updating security group to allow your IP to access https port 443
Get ALB address from ingress definition
$kubectl -n webfocus get ing
NAME CLASS HOSTS ADDRESS PORTS AGE
appserver alb * myingressalb- 12345678 .us-west- 2 .elb.amazonaws.com 80 16h
|
in this case webfocus is accessible using url https://myingressalb-12345678.us-west-2.elb.amazonaws.com
- 1
Recommended Comments
There are no comments to display.