DecisionsDev / odm-docker-kubernetes

IBM Operational Decision Manager on Kubernetes
Apache License 2.0
24 stars 23 forks source link

ODM on EKS #86

Closed prabhdev closed 3 years ago

prabhdev commented 3 years ago

Hi @lgrateau, Hope you are having a good day ! I am trying to setup ODM on Amazon EKS and have couple of observations:

Followed the steps required to deploy ODM on EKS. I am receiving the below error message when executing kubectl describe pod:

Warning Failed 36s (x3 over 85s) kubelet Failed to pull image "cp.icr.io/cp/cp4a/odm/odm-decisionserverconsole:8.10.5.0-amd64": rpc error: code = Unknown desc = Error response from daemon: pull access denied for cp.icr.io/cp/cp4a/odm/odm-decisionserverconsole, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Also, documentation on EC2 instance used such as family, storage, memory etc would greatly benefit in spinning up an EKS using eksctl.

lgrateau commented 3 years ago

That mean that you have not probably create the secret to pull the image.

This is explain here: https://github.com/ODMDev/odm-docker-kubernetes/tree/master/eks#b-create-a-pull-secret-by-running-a-kubectl-create-secret-command

Concerning the documentation, eksctl seems interesting. We will see when we will have time to write this documentation. Thanks for the feedbacks.

prabhdev commented 3 years ago

Hi Laurent, I did follow the steps to the T. Problem was with my IBM ID. Got it sorted out with the help of IBM support. I am now able to pull images without any issues. Rest of the setup was pretty smooth and was able to install and verify the image. During the installation process, I observed 2 interesting features:

  1. EKS and RDS instance got created in two different VPCs. This resulted in EKS not able to talk to RDS. Through VPC peering, it was achievable. This link helped me to understand the feature and implement it: https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html
  2. The property database name was not available in the AWS console. Had to describe the RDS instance to obtain the database name. aws rds describe-db-instances and look for the property "DBName", this is the value for the helm argument externalDatabase.databaseName

Thanks again for publishing such a detailed article. Hope to see more interesting features to try out and recommend clients.