Deploy PPM on AWS EKS (Beta)
This section provides the details on how to deploy PPM on AWS EKS.
Note: This is a Beta feature. For details, see Feature types.
Set up AWS EKS environment
-
Install the command line tools that are required to create and manage an AWS EKS cluster.
For details, see https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html.
-
Create an Amazon EKS cluster.
See the example
eksctl create cluster -f spec/01-cluster.yaml
for reference.For details, see https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html.
-
Create a Kubernetes namespace.
See the example
kubectl apply -f spec/02-ns-and-sa.yaml
for reference.For details, see https://kubernetes.io/docs/tasks/administer-cluster/namespaces/#creating-a-new-namespace.
-
Create an Amazon EFS filesystem as PPM shared folder.
An example
sample/aws_efs.md
is provided for your reference.For details, see https://docs.aws.amazon.com/eks/latest/userguide/efs-csi.html.
-
Create an Amazon MQ instance.
PPM uses external messaging queue system in Kubernetes. Therefore, you need to create an Amazon MQ instance. For details, see https://aws.amazon.com/amazon-mq.
-
Set up private docker registry with AWS ECR.
An example
sample/aws_ecr.md
is provided for your reference.For details, see https://docs.aws.amazon.com/AmazonECR/latest/userguide.
Create PPM docker image
-
Install your PPM in a local disk or in an EC2 Virtual Machine.
-
In the machine where your PPM is installed, run the following commands to create PPM docker image:
-
cd <ppm_home>
-
docker build -f utilities/k8s/Dockerfile -t ppm:latest
-
docker tag ppm:latest 044456413569.dkr.ecr.us-east-1.amazonaws.com/ppm-ecr:latest
-
-
Push the docker image to ECR by running the following command:
docker push 044456413569.dkr.ecr.us-east-1.amazonaws.com/ppm-ecr:latest
Replace
044456413569.dkr.ecr.us-east-1.amazonaws.com/ppm-ecr
with your account path.
Deploy PPM on AWS EKS
-
Configure the parameters in
server.conf
:An example
resources/server.conf
is provided for your reference.-
Run the following command to configure external JMS URL with your MQ link:
-
com.kintana.core.server.JMS_BROKER_URL=<you MQ link>
For example:
com.kintana.core.server.JMS_BROKER_URL=ssl://b-1898ca83-2e13-4c48-bc89-80bb177c8cee-1.mq.us-east-1.amazonaws.com:61617>
-
com.kintana.core.server.JMS_USERNAME=xxx
-
com.kintana.core.server.JMS_PASSWORD=xxxx
-
-
Configure the base URL with your ALB public URL or your domain.
-
-
Copy the shared files to EFS filesystem.
-
Run the following command to copy the
server.conf
configured in step1 to EFS filesystem:kubectl cp resources/server.conf <namespace>/<kubernetes-pod>:/data/
-
Run the following command to copy the security folder to EFS filesystem:
kubectl cp resources/security <namespace>/<kubernetes-pod>:/data/
-
-
Start up the Amazon cluster by running the following command:
kubectl apply -f spec/06-app-service.yamlthe
-
Start up ingress to get the base URL by running the following command:
kubectl apply -f spec/07-ingress.yaml
Note: Add the host parameter if bound to a domain. For details, see https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting.
Limitation: ALB does not support session sticky with cookie. It only supports IP persistence mode.
Set up Application Load Balancer (ALB)
Set up an Application Load Balancer (ALB).
See the following examples for reference.
sample/ aws_alb.md
kubectl apply -f spec/05-rbac-role.yaml
kubectl apply -f spec/04-alb-ingress-controller.yaml
For details, see https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html
Visit PPM Base URL
-
Run the following command to get the PPM base URL in Amazon:
kubectl get ingress -n ppm-ns
The output is similar as follows:
NAME HOSTS ADDRESS PORTS AGE
ppm-ingress * 7c2f2fa8-ppmns-microingres-10f6-512963143.us-east-1.elb.amazonaws.com 80 20h
-
Copy the returned address to your web browser to visit your PPM base URL in Amazon.