Deploying PPM on AWS EKS (Beta)

This section provides the details on how to deploy PPM on AWS EKS.

Set up AWS EKS environment

  1. 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.

  2. 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

  3. 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.

  4. 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

  5. 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

  6. 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/

Back to top

Create PPM docker image

  1. Install your PPM in a local disk or in an EC2 Virtual Machine.

  2. In the machine where your PPM is installed, run the following commands to create PPM docker image:

    1. cd <ppm_home>

    2. docker build -f utilities/k8s/Dockerfile -t ppm:latest

    3. docker tag ppm:latest 044456413569.dkr.ecr.us-east-1.amazonaws.com/ppm-ecr:latest

  3. 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.

Back to top

Deploy PPM on AWS EKS

  1. Configure the parameters in server.conf

    An example resources/server.conf is provided for your reference.

    1. 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

    2. Configure the base URL with your ALB public URL or your domain

  2. 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/

  3. Start up the Amazon cluster by running the following command:

    kubectl apply -f spec/06-app-service.yamlthe

  4. 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.

Back to top

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

Back to top

Visit PPM Base URL

  1. 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

  2. Copy the returned address to your web browser to visit your PPM base URL in Amazon.

Back to top