Create a private Kubernetes Cluster with EKS in your AWS Account, upload containers to your container registry, and deploy Galileo.
eksctl
via CloudShell in the AWS console, open a CloudShell session and do the following:
vim
to create/edit the required yaml and json files within the shell session.
Configuration | Recommended Value |
---|---|
Nodes in the cluster’s core nodegroup | 4 (min) 5 (max) 4 (desired) |
CPU per core node | 4 CPU |
RAM per core node | 16 GiB RAM |
Number of nodes in the cluster’s runners nodegroup | 1 (min) 5 (max) 1 (desired) |
CPU per runner node | 8 CPU |
RAM per runner node | 32 GiB RAM |
Minimum volume size per node | 200 GiB |
Required Kubernetes API version | 1.21 |
Storage class | gp2 |
galileo-cluster.yaml
file and edit the contents to replace CLUSTER_NAME
with a name for your cluster like galileo
. Also check and update all availabilityZones
as appropriate.
With the yaml file saved, run the following command to deploy the cluster:
Mandatory Field | Description |
---|---|
Domain Name | The customer wishes to deploy the cluster under e.g. google.com |
Root subdomain | e.g. “galileo” as in galileo.google.com |
Trusted SSL Certificates | These certificate should support the provided domain name. You should submit 2 base64 encoded strings; 1. one for the full certificate chain 2. one for the signing key. |
t3.micro
or equivalent will suffice.
Except where specifically noted, these steps are to be performed on a machine with internet access
kubectl
as explained here, and scp
that file to the working directory of the bastion.
aws eks update-kubeconfig --name $CLUSTER_NAME --region $REGION
scp
or copy and paste the contents of ~/.kube/config
from your local machine to the same directory on the bastion
scp
the provided deployment-manifest.yaml
file to the working directory of the bastion
kubectl cluster-info
to verify your cluster config is set appropriately. If the cluster information is returned, you can proceed with the deployment.
kubectl apply -f deployment-manifest.yaml
to deploy the Galileo applications. Re-run this command if there are errors related to custom resources not being defined as there are sometimes race conditions when applying large templates.
Service | URL |
---|---|
API | api.galileo.company.[com|ai|io…] |
Data | data.galileo.company.[com|ai|io…] |
UI | console.galileo.company.[com|ai|io…] |
Grafana | grafana.galileo.company.[com|ai|io…] |
kubectl -n galileo get svc/ingress-nginx-controller
and looking at the value for EXTERNAL-IP
.