Installing Automation Suite On AKS
Installing Automation Suite On AKS
Deployment scenarios
Online deployment
An online deployment of Automation Suite is one that requires internet access
during installation and runtime. All the UiPath products and supporting libraries
are hosted in the UiPath registry or UiPath-trusted third-party store.
***overview****
An AKS cluster is deployed in a single region where the worker nodes are
distributed across the system and user node pools.Each Node Pool hosts the Virtual
Machine Scale Set (VMSS), ensuring that worker nodes are distributed across
multiple zones to provide resiliency to zone failure and scale when
requiredDatasources such as Microsoft SQL Server, Azure Storage Account, and Azure
Redis Cache should be set up to have enough redundancy in case of failure and must
be accessed from the subnet where the AKS worker nodes are hosted.Additionally,
there may be a need for an additional Jump Box / Bastion Server, which may have all
the required privileges to operate the AKS cluster.
Each Automation Suite Long-Term Support release comes with a compatibility matrix.
s
Compatibility matrix:
Azure Kubernetes Service (AKS) Architecture-x86, Azure Kubernetes Service (AKS)-
1.27, 1.28, 1.29, Ubuntu-22.04
SQL database:
NOTE: Make sure that the SQL server can be accessed from the cluster nodes.
Automatically create the necessary databases:
If you want the installer to create the databases: sql.create_db- Set to true.,
sql.server_url- FQDN of the SQL server, where you want the installer to configure
database., sql.port- Port number on which a database instance should be hosted in
the SQL server., sql.username-Username / user ID to connect to the SQL server.,
sql.password- Password of the username provided earlier to connect to the SQL
server.
NOTE: Ensure the user has the dbcreator role. This grants them permission to create
the database in SQL Server. Otherwise the installation fails.
Bring your own database:If you bring your own database, you must provide the SQL
connection strings for every database.
SQL Connection String:
1.sql_connection_string_template-Platform, Orchestrator, Automation Suite Robots,
Test Manager, Automation Hub, Automation Ops, Insights, Task Mining, Data Service,
Process Mining, Document Understanding
2.sql_connection_string_template_jdbc - AI Center
3.sql_connection_string_template_sqlalchemy_pyodbc-Process Mining
IMPORTANT:
Make sure the SQL account specified in the connection strings is granted the
db_securityadmin and db_owner roles for all Automation Suite databases. If security
restrictions do not allow the use of db_owner, then the SQL account should have the
following roles and permissions on all databases:
db_securityadmin
db_ddladmin
db_datawriter
db_datareader
EXECUTE permission on dbo schema
IMPORTANT:
If you manually set the connection strings in the configuration file, you can
escape SQL, JDBC, ODBC, or PYODBC passwords as follows:
for SQL: add ' at the beginning and end of the password, and double any other '.
for JDBC/ODBC: add { at the beginning of the password and } at the end, and double
any other }.
for PYODBC: username and password should be url encoded to account for special
characters. Document Understanding database passwords cannot start with {.
IMPORTANT: The AutomationSuite_ProcessMining_Airflow database for Process Mining
product must have READ_COMMITTED_SNAPSHOT enabled.
NOTE:
By default, TrustServerCertificate is set to False, and you must provide an
additional CA certificate for the SQL Server. This is required if the SQL Server
certificate is self-signed or signed by an internal CA. If you do not provide the
SQL Server certificate in this scenario, the prerequisite check will fail.
NOTE:
If you you want to override the connection string for any of the services above,
set the sql_connection_str for that specific service.
You still have to manually create these databases before running the installer.
Azure Active Directory based access to SQL from AKS: You may choose to access
Microsoft SQL server via Azure Active Directory from AKS cluster
Caching:
Multiple services in Automation Suite, such as Orchestrator and Identity, use Redis
as a distributed cache
Basic: it is not recommended for production deployment since it does not offer
Service Level Agreement (SLA). However, it could be used for a test environment.
Standard C1 (1GB): It provides decent capacity and performance suitable for a
majority of installations. It also allows future scaling to higher levels,
including Standard C2 or Premium.
Standard C2: A step above Standard C1, it provides larger capacity and better
performance as compared to C1.
Premium: The most recommended option, as it provides availability zones promoting a
higher SLA, and VNet integration for enhanced security.
Storage:
Storage estimate for each Automation Suite components:1.Orchestrator(NuGet
automation packages for deployed automation,Queues and their data)-Typically, a
package is 5 Mb, and buckets, if any, are less than 1 Mb. A mature enterprise
deploys around 10 GB of packages and 12 GB of Queues.
Objectstore:AKS(Azure Storage (blob))-Account Key
Configuration:passed to the storage_class parameter in the input.json file.
NOTE:Sometimes the EKS or AKS cluster already installs the CSI driver and provides
the storage class. If these storage classes are not configured, you must configure
them before installation.
You must make the storage class for the block storage the default one, as shown in
the following example
The size of the block store depends on the size of the deployed and running
automation. Therefore, it is difficult to provide an accurate estimate initially
during the installation. However, you should expect approximately 50 GB of
storageto be a good start. To understand the usage of the block store, see Storage
estimates for each Automation Suite component.
NOTE: As your automation scales, you may need to account for the increase in your
block storage size.
File storage:AKS-Azure Files-azurefile-csi-premium-file.csi.azure.com
Backup and restore:AKS-Azure Storage Account
Networking:
the HA mode requires two replicas and can go up to ten or more replicas. Make sure
your network supports this scaling level.IMPORTANT:
Automation Suite does not support the IPv6 internet protocol.
Configuring NGINX ingress controller:configure the Kubernetes service_type as
cluster_IP instead of Load Balancer
Preallocated IPs:The following example shows how to allocate public IPs from Azure
and provision a public load balancer. :
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/azure-load-balancer-internal": "false",
"service.beta.kubernetes.io/azure-load-balancer-ipv4": "<IP>"
}
}
...
The following example shows how to allocate private IPs to an internal load
balancer from the AKS cluster subnets.
...
"ingress": {
"service_annotations": {
"service.beta.kubernetes.io/azure-load-balancer-internal": "true",
"service.beta.kubernetes.io/azure-load-balancer-ipv4": "<IP>",
"service.beta.kubernetes.io/azure-load-balancer-internal-subnet":
"<SUBNET_0>", "<SUBNET_1>"
}
}
...
DNS configuration
Ensure that the DNS records are configured to map the following UiPath® FQDNs to
the load balancer:
FQDN
alm.FQDN
monitoring.FQDN
insights.FQDN (if installing UiPath Insights)
NOTE:
The FQDN is one of the prerequisite checks before installation. If you do not
provide an IP address or have not yet done the FQDN mapping, the check will fail.
Dynamically allocated IPs
If you do not provide any IPs in input.json, Automation Suite dynamically allocates
the private IPs from the worker node subnets
Orchestrator-specific configuration:
Orchestrator can save robot logs to an Elasticsearch server. You can configure this
functionality in the orchestrator.orchestrator_robot_logs_elastic section.
orchestrator_robot_logs_elastic-Elasticsearch configuration.,elastic_uri-The
address of the Elasticsearch instance that should be used. It should be provided in
the form of a URI. If provided, then username and password are also
required.,elastic_auth_username-The Elasticsearch username, used for
authentication.,elastic_auth_password-The Elasticsearch password, used for
authentication.
Insights-specific configuration:
If enabling Insights, users can include SMTP server configuration that will be used
to send scheduled emails/alert emails. If not provided, scheduled emails and alert
emails will not function.