Installing Turbonomic on AWS EKS
This topic describes the steps to install Turbonomic on an AWS EKS cluster.
Installation requirements
Before installing Turbonomic, be sure to review the installation requirements outlined in this topic.
Task overview
To install Turbonomic, perform the following tasks:
-
Download the Custom Resource (CR) YAML file.
-
Create a dedicated namespace.
-
Download and deploy the Custom Resource Definition (CRD).
-
Download and deploy the resources for the operator.
-
Download and deploy the operator.
-
Configure the Turbonomic CR that governs what is installed.
-
Validate the installation and complete setup.
Downloading the Custom Resource (CR) YAML file
Download the YAML file.
curl -O https://raw.githubusercontent.com/IBM/t8c-operator/refs/heads/main/deploy/samples/eks/charts_v1_xl_cr.yaml
Creating a dedicated namespace
-
Create a namespace. In the following example, the namespace is called
turbonomic
.kubectl create namespace turbonomic
-
(Optional) Set the namespace as your default namespace.
kubectl config set-context --current --namespace=turbonomic
Downloading and deploying the Custom Resource Definition (CRD)
Download and deploy the Custom Resource Definition (CRD) to allow the Turbonomic operator to deploy all the necessary resources.
Since the CRD is a cluster-wide resource, it requires a cluster administrator role to deploy.
kubectl create -f https://raw.githubusercontent.com/IBM/t8c-operator/main/deploy/crds/charts_v1_xl_crd.yaml
Downloading and deploying the resources for the operator
The following steps set up credentials and a CRD to deploy the operator. These resources are namespaced, and you only need to be the administrator of your namespace (project).
-
Download and deploy an operator service account.
kubectl create -f https://raw.githubusercontent.com/IBM/t8c-operator/main/deploy/service_account.yaml -n turbonomic
-
Run the following commands to download and deploy the cluster role and role binding instructions.
-
Cluster role
kubectl create -f https://raw.githubusercontent.com/IBM/t8c-operator/main/deploy/cluster_role.yaml -n turbonomic
This cluster role has sufficient privileges to manage Prometheus and Turbonomic as a business application (also known as
Turbo-on-Turbo
). -
Cluster role binding
kubectl create -f https://raw.githubusercontent.com/IBM/t8c-operator/main/deploy/cluster_role_binding.yaml -n turbonomic
Note:In your production environment, it is recommended to deploy Kubeturbo separately. Kubeturbo is an agent that connects to your container platform cluster to discover and optimize containerized workloads. A separate deployment allows you to configure and use additional Kubeturbo configuration options that are not available in the Turbonomic installation.
-
Downloading and deploying the operator
The operator version that is required by your Turbonomic version is noted in the release notes. The latest version of the operator is 42.71. This version can manage older versions of Turbonomic.
-
Choose from the following options:
-
Option 1: Use the default container image repository (
icr.io
) to pull the Turbonomic images.For this option, download and deploy the operator YAML file. This file specifies
icr.io
as the repository.kubectl create -f https://raw.githubusercontent.com/IBM/t8c-operator/main/deploy/operator.yaml -n turbonomic
-
Option 2: Use a private container image repository to pull the Turbonomic images.
Before proceeding, read the guidelines and instructions for private container image repositories in this topic.
For this option, perform the following steps:
-
Download the operator YAML file.
wget https://raw.githubusercontent.com/IBM/t8c-operator/main/deploy/operator.yaml
-
Open the file for editing (for example, in VS Code or
vi
) and then specify your private container image repository in theimage
parameter.image: {your_private_repository}/{directory_path}/t8c-operator:42.71
-
Deploy the file.
kubectl create -f <location_of_downloaded_YAML_file>/operator.yaml -n turbonomic
-
-
-
Wait for the operator to become ready (
STATUS = Running
withREADY = 1/1
).Run one of the following commands to check the status.
kubectl get pods -n turbonomic -w
watch kubectl get pods -n turbonomic
Configuring the Turbonomic Custom Resource (CR)
Complete the following steps to update the CR YAML file
(charts_v1_xl_cr.yaml
) that you downloaded. Since the CR is
namespaced, you must be the administrator of your namespace (project) to create an
instance of the Turbonomic platform.
When working with YAML files, follow the tips in this topic.
-
Open the YAML file for editing (for example, in VS Code or
vi
) . You can use the following command:vi charts_v1_xl_cr.yaml
-
Update the file with the minimum required parameters:
-
Version
Specify the image tag version.
The image tag version should be in the format
x.x.x
. This version depends on, and should always match, your Turbonomic instance version. For example, if your Turbonomic instance version is 8.15.0, specify the same instance version as the image tag version.spec: global: tag: <version_to_install>
-
Database server
If you are installing in a production environment, set up and use a remote database server to take advantage of high availability, backups, and other advanced features. For a test installation in a non-production environment, a containerized database server is sufficient.
-
Remote database server
Before proceeding, be sure to configure a remote database server that meets Turbonomic requirements. For more information, see this topic.
When the remote database server is ready, configure the database server parameters using the following examples as guide.
MariaDB configuration example:
spec: # Global settings global: repository: icr.io/cpopen/turbonomic tag: 8.15.0 externalDbIP: <MariaDB_host_IP> properties: global: dbRootUsername: <MariaDB_root_username> dbRootPassword: <MariaDB_root_complex_password>
MySQL and Azure MySQL configuration example:
spec: # Global settings global: repository: icr.io/cpopen/turbonomic tag: 8.15.0 externalDbIP: <MySQL_host_IP> properties: global: sqlDialect: MYSQL enableSecureDBConnection: true dbRootUsername: <MySQL_root_username> dbRootPassword: <MySQL_root_complex_password>
Note:If you want to use the fully qualified domain name (FQDN) for the remote database server, you need to use the
Remove theexternalDBName
parameter.externalDbIP
parameter from the preceding example and replace it with theexternalDBName
parameter. -
Containerized database server
To use a containerized database server, remove the
externalDbIP
parameter.global: externalDbIP:
-
Note:If you need to adjust or specify other parameters, see this topic.
-
-
Deploy the CR YAML file.
kubectl apply -f charts_v1_xl_cr.yaml -n turbonomic
Deployment starts for all the Turbonomic pods. Depending on the environment, the deployment may take from 5 to 20 minutes.
Validating the installation and completing setup
-
Verify that Turbonomic installed correctly.
kubectl get pods -n turbonomic
After all pods start, the
READY
column shows1/1
,2/2
, and so on. TheSTATUS
column for each pod showsRunning
.The following output shows an example of the pods that you should see running. Your environment may have additional running pods that reflect the targets or integrations that you enabled.
NAME READY STATUS RESTARTS action-orchestrator-b6454c9c8-mfl85 1/1 Running 0 api-7887c66f4b-shndq 1/1 Running 0 auth-5b86976bc8-vxwz4 1/1 Running 0 clustermgr-85548678d9-r5wb8 1/1 Running 0 ...
-
Identify the server address of the Turbonomic user interface by identifying the External IP address of the
nginx
service.Note: The following command contains two pipes (|
).kubectl get services -n turbonomic | grep -E "nginx|NAME"
The output is similar to the following example:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx LoadBalancer 10.99.240.10 9.04.92.235 443:30826/TCP,80:31772/TCP 149m
-
Log in to the Turbonomic user interface using the server address and import your license key.
For more information, see License installation and first-time login.
-
Add your targets. The targets that are available to add are based on the probes that you enabled in the YAML resource. For example, if you enabled the AWS probe, you will see the AWS target. If you want to add other targets, modify the YAML resource file and apply your changes.
For more information about targets, see this topic.
-
Create other user accounts with various roles. For more information about user accounts and roles, see Managing user accounts.
Note:For security reasons, you can create a different account with an
Administrator
role to serve as the main administrator of your Turbonomic installation, and then delete the defaultadministrator
account. You must always have at least one user account with administrator privileges.
You have completed the Turbonomic installation process.