You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: platform/eks/README.md
+11-10Lines changed: 11 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,26 +3,27 @@
3
3
This project demonstrates how to deploy an IBM® Operational Decision Manager (ODM) clustered topology on the Amazon Elastic Kubernetes Service (EKS) cloud service. This deployment implements Kubernetes and Docker technologies.
The ODM Docker material is available in Passport Advantage. It includes Docker container images and Helm chart descriptors.
6
+
7
+
The ODM on Kubernetes material is available in [IBM Entitled Registry](https://www.ibm.com/cloud/container-registry) for the Docker images, and the [IBM Helm charts repository](https://github.com/IBM/charts) for the ODM Helm chart.
Then, create an [AWS Account](https://aws.amazon.com/getting-started/?sc_icontent=awssm-evergreen-getting_started&sc_iplace=2up&trk=ha_awssm-evergreen-getting_started&sc_ichannel=ha&sc_icampaign=evergreen-getting_started)
26
+
Then, create an [AWS Account](https://aws.amazon.com/getting-started/).
26
27
27
28
## Steps to deploy ODM on Kubernetes from Amazon EKS
28
29
@@ -36,8 +37,8 @@ Then, create an [AWS Account](https://aws.amazon.com/getting-started/?sc_iconten
36
37
37
38
For more information, see [Getting started with Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html)
38
39
39
-
40
40
### 1. Prepare your environment (40 min)
41
+
41
42
#### a. Create an EKS cluster (30 min)
42
43
43
44
Create an EKS cluster following [this documentation](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html)
You can also create your cluster from the Google Cloud Platform using the Kubernetes Engine Clusters panel, by clicking on the Create button
@@ -146,11 +146,13 @@ We will use the Google Cloud Console to create this instance:
146
146
147
147
- Go on the [SQL context](https://console.cloud.google.com/sql) and click on the "CREATE INSTANCE" button
148
148
- Choose PostgreSQL
149
+
- Instance ID : Chosse a name for your instance.
150
+
- Password : <PASSWORD> (Take a note of this password. You need it in the "Create the datasource secrets for Google Cloud SQL PostgreSQL" section)
149
151
- Take "PostgreSQL 13" as database version
150
152
- Choose a region similar to the cluster. So, the communication is optimal between the database and the ODM instance
151
153
- Keep "Multiple zones" for Zonal availability to the highest availability
152
154
- Expand "Customize your instance" and Expand "Connections"
153
-
- As Public IP is selected by default, click on the "ADD NETWORK" button, put a name and add "0.0.0.0/0" for Network, then click on "DONE"
155
+
- As Public IP is selected by default, click on the "ADD NETWORK" button, put a name and add "0.0.0.0/0" for Network, then click on "DONE". It's not recommended to use plublic IP. In production environment, you should use private IP.
154
156
155
157
When created, you can drill on the SQL instance overview to retrieve needed information to connect to this instance like the IP adress and the connection name:
156
158
@@ -204,17 +206,15 @@ NAME CHART VERSION APP VERSION DESCRIPTION
204
206
ibmcharts/ibm-odm-prod 21.3.0 8.11.0.0 IBM Operational Decision Manager
205
207
```
206
208
207
-
You can now proceed to the [datasource secret's creation](#create-the-datasource-secrets-for-azure-postgresql).
208
-
209
209
### Create the datasource secrets for Google Cloud SQL PostgreSQL
210
210
211
211
The Google Cloud SQL PostgreSQL connection will be done using [Cloud SQL Connector for Java](https://github.com/GoogleCloudPlatform/cloud-sql-jdbc-socket-factory#cloud-sql-connector-for-java).
212
212
213
-
If you don't want to build the driver, you can get the last [driver](https://storage.googleapis.com/cloud-sql-java-connector/) named postgres-socket-factory-X.X.X-jar-with-driver-and-dependencies.jar.
213
+
If you don't want to build the driver, you can get the last [driver](https://github.com/GoogleCloudPlatform/cloud-sql-jdbc-socket-factory/releases) named postgres-socket-factory-X.X.X-jar-with-driver-and-dependencies.jar.
214
214
215
215
We realised the test with the driver version [postgres-socket-factory-1.4.2-jar-with-driver-and-dependencies.jar](https://storage.googleapis.com/cloud-sql-java-connector/v1.4.2/postgres-socket-factory-1.4.2-jar-with-driver-and-dependencies.jar).
216
216
217
-
Copy the files [datasource-dc.xml.template](datasource-dc.xml.template) and [datasource-ds.xml.template](datasource-ds.xml.template) to your local machine and rename them `datasource-dc.xml` and `datasource-ds.xml`.
217
+
Copy the files [datasource-dc.xml](datasource-dc.xml) and [datasource-ds.xml](datasource-ds.xml) to your local machine.
218
218
219
219
Replace the following placeholders:
220
220
@@ -223,7 +223,7 @@ Replace the following placeholders:
223
223
- CONNECTION_NAME: The database connection name
224
224
- DBNAME: The database name (default is postgres)
225
225
- USERNAME: The database username (default is postgres)
226
-
- PASSWORD: The database password
226
+
- PASSWORD: The database password (PASSWORD enter in the step [Create the Google Cloud SQL PostgreSQL instance](#create-the-datasource-secrets-for-google-cloud-sql-postgresql))
227
227
228
228
It should be something like in the following extract:
In this step, you will generate a certificate used by the GKE loadbalancer.
253
254
If you do not have a trusted certificate, you can use OpenSSL and other cryptography and certificate management libraries to generate a certificate file and a private key, to define the domain name, and to set the expiration date. The following command creates a self-signed certificate (.crt file) and a private key (.key file) that accepts the domain name *mycompany.com*. The expiration is set to 1000 days:
254
255
255
256
```
@@ -281,6 +282,7 @@ To workaround this issue, we will use a ReadWriteOnce PV used by an NGINX pod th
281
282
Then, we will change the PV permission to ReadOnlyMany before to launch the ODM release in order to be able to install ODM on many nodes.
282
283
283
284
1.[Enable the SCI FileStore Driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/filestore-csi-driver#console_1).
285
+
The cluster will restart. This take several minutes until the cluster is ready.
284
286
285
287
2. Create the [filestore-example](filestore-example.yaml) storageClass:
This take some time until the PVC is ready. Wait until the PVC is ready before moving to the next step. You can verify the status by using this command line.
299
+
300
+
```
301
+
kubectl get pvc
302
+
```
296
303
297
304
4. Create a [nginx](nginx.yaml) pod using this PVC that will be used only to copy the driver because this container is accessible as root:
298
305
299
306
```
300
307
kubectl apply -f nginx.yaml
301
308
```
302
309
310
+
303
311
5. Copy the Google Cloud PostgresSQL driver on the nginx pod:
304
312
305
313
```
306
314
export NGINX_COPY_POD=$(kubectl get pod | grep nginx-driver-copy)
*[Install an ODM Helm release and expose it with a NGINX Ingress controller (15 min)](#install-an-odm-helm-release-and-expose-it-with-a-nginx-ingress-controller-15-min)
9
-
*[Create a Kubernetes secret for the TLS certificate](#create-a-kubernetes-secret-for-the-tls-certificate)
10
-
*[Install the ODM release](#install-the-odm-release)
11
-
*[Edit your /etc/hosts](#edit-your-etchosts)
12
-
*[Access the ODM services](#access-the-odm-services)
13
-
*[Troubleshooting](#troubleshooting)
14
-
*[License](#license)
8
+
-[Install an ODM Helm release and expose it with a NGINX Ingress controller (15 min)](#install-an-odm-helm-release-and-expose-it-with-a-nginx-ingress-controller-15-min)
9
+
-[Table of Contents](#table-of-contents)
10
+
-[Create a Kubernetes secret for the TLS certificate](#create-a-kubernetes-secret-for-the-tls-certificate)
11
+
-[Install the ODM release](#install-the-odm-release)
12
+
-[Edit your /etc/hosts](#edit-your-etchosts)
13
+
-[Access the ODM services](#access-the-odm-services)
14
+
-[Troubleshooting](#troubleshooting)
15
+
-[License](#license)
15
16
<!-- /TOC -->
16
17
17
18
NGINX has been installed while deploying IBM License Manager, see [README.md](README.md#create-a-nginx-ingress-controller).
>Pay attention to use a real OpenSSL version and not LibreSSL.
32
+
>By default on mac osx, the default Openssl (LibreSSL version) does not have the -addtext option. You need to install the "Official" OpenSSL implementation.
32
33
33
34
2. Create the according Kubernetes secret that contains the certificate
0 commit comments