...
Before proceeding, go to Release Information, and download the aws.tar.gz
file for the Usage Engine Private Edition version that is being installed. Once downloaded, extract its content to a suitable location.
Assumptions
There are a few assumptions been made when using terraform to create cluster resources:
We assume you have an existing parent domain i.e. example.com hosted on the same account as the cluster that we going to create in the coming section and you wish to access the cluster environment through the hostname. Terraform will create a subdomain in format
<cluster_name>.<domain>
.cluster name: uepe-eks
domain: example.com
final domain: uepe-eks.example.com
In addition, we also assume terraform is allowed to add a NS (NameServer) record to the parent domain. This is to allow DNS delegation from the parent domain to subdomain.
Please note that in case your parent domain is not under the same account or your parent domain is hosted in another cloud provider, then you must set
auto_create_ns_record
to false in the terraform template to disable subdomain NS record auto creation in parent domain.The service hostname that created by Usage Engine Private Edition will be accessible in format
<service_name>.<cluster_name>.<domain>
i.e. desktop-online.uepe-eks.example.com.Terraform needs to persist the state of your provisioned infrastructure, by default the state file is stored locally on the computer that terraform is executed from. However if you have multiple person working on the infrastructure then it is recommended to store the state file on remote persistent such as S3 bucket, see https://developer.hashicorp.com/terraform/language/settings/backends/s3 for more information.
We use EFS (NFS) as the default persistent storage for data needs to be persisted.
We use RDS for Usage Engine Private Edition database, default engine type is PostgreSQL.
Create Basic Cluster
The following steps explains how to create a basic Kubernetes cluster using a configuration file named uepe-eks.yaml
:
...
Info |
---|
https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html has been configured for each cluster add-on under the Please make sure to use the same namespace when installing the respective add-on in the Kubernetes Cluster Add-ons - AWS section. For instance, using the namespaces specified in the
|
...
Code Block |
---|
CLUSTER NODEGROUP STATUS CREATED MIN SIZE MAX SIZE DESIRED CAPACITY INSTANCE TYPE IMAGE ID ASG NAME TYPE example-cluster public-nodes CREATE_COMPLETE 2024-03-11T13:59:28Z 3 3 3 m5.large ami-02e2de73058d55743 eksctl-example-cluster-nodegroup-public-nodes-NodeGroup-eb5aNADEiibs unmanaged |
Setup Additional Infrastructure Resources on AWS
At this stage, a basic Kubernetes cluster has been created. However, some additional infrastructure resources remain to be set up. Namely the following:
...
A Kubernetes cluster has now been created.
Now proceed to the Kubernetes Cluster Add-ons - AWS section.