In ArcGIS Enterprise Manager, administrators can allocate resources for web service deployments to scale the number of pods and set resource limits for each.
ArcGIS Enterprise on Kubernetes is composed of many microservices that work together to accommodate and support software features and workload. These microservices are implemented as one or more Kubernetes deployments that are instantiated as pods in your organization.
Administrators can use ArcGIS Enterprise Manager or ArcGIS Enterprise Administrator API to scale web service deployments horizontally by adjusting the number of pods, and vertically by adjusting the memory and CPU. For example, increasing the number of pods can improve availability to the organization, as pods are spread across multiple nodes, reducing the chance of failure.
The default values for service deployments vary based on service type. These values are configured to run multiple pods to improve overall availability and throughput. However, in some cases, a single pod with added resources can be as or more efficient. Service deployments are flexible and they allow adjustment in both dimensions.
To monitor the health, status, and use of your organization's service pods, use the overview settings page and service usage statistics. Using service usage statistics, you can measure the response times of your web services along with failure and timeout rates. These metrics can help you understand the overall performance of your services and provide the necessary inputs to determine if any of the service pods need to be adjusted with more or fewer resources.
Service usage statistics do not provide the CPU and memory use on a per-service pod basis. The deployment's role-based access control prohibits the collection of such metrics. As an alternative, you can use external monitoring tools with privileges to collect system-level metrics in addition to those metrics that are available.
When pod resources are adjusted, the changes are provided to the Kubernetes cluster. Kubernetes attempts to accommodate requests within available cluster resources. If insufficient cluster resources are available, Kubernetes can automatically scale the cluster by requesting more nodes. If additional resources are unavailable, the request may remain in a pending state. It is important to monitor the system in real time to determine whether requested resources have taken effect.
In this release, Horizontal Pod Autoscaler, a Kubernetes API resource, is not supported. However, you can use your own scripts and ArcGIS Enterprise Administrator API to scale service pods. For example, you can query service usage statistics periodically and when a specified threshold is met, invoke ArcGIS Enterprise Administrator API to adjust resources accordingly, giving you complete control to scale your service pods.
In addition, use ArcGIS Enterprise Manager to allocate service deployment resources to scale the number of pods, set resource limits, and stop and start services.
The Services page in ArcGIS Enterprise Manager contains the following three tabs that categorize the service deployment types:
- GIS services
- System services
- Utility services
GIS services enable your organization's geospatial capabilities. GIS services include map, feature, and geocode services as well as hosted map and feature services. Hosted services are published using system-managed data stores. These services are located in the Hosted folder.
SampleWorldCities is provided as a default map service once the organization is created. You can use this map service to test and preview functionality of a service from your organization's maps and apps.
GIS services that reference user-managed data stores require an active connection to a registered data store. Services using hosted data connect to system-managed data stores.
GIS services can be configured to run in shared or dedicated mode.
Configure shared resources
You can configure shared resources for all map or feature services. When you use this option, you are configuring resources for all services of that particular type.
- On the GIS services tab on the Services page, select Configure shared resources.
- Choose Shared feature service resources or Shared map service resources for Type.
- Optionally, change the values for Number of pods and Resource limits.
Alternatively, you can set the mode, number of pods, resource limits, and service times by updating service deployments individually.
System services are tools that help run the GIS services in your organization. For example, the PublishingTools service publishes data as web services. Many system services are started when the organization is created; however, some must be manually started including ReportingTools, SceneCachingControllers, and SceneCachingTools.
System services run in dedicated mode.
Utility services enable specific functionality in your organization, for example, printing maps, locating addresses, calculating areas, finding directions, and performing analysis. Some utility services include default services, but you can also use your own services. To learn how to configure your organization to use utility services, see Configure utility services.
Utility services run in dedicated mode.
Update service deployments
To update service deployments, follow these steps:
- Sign in to ArcGIS Enterprise Manager as an administrator.
- Click the Services button.
The services page appears. On this page, service deployments are organized on their service type tabs: GIS services, System services, and Utility services.
- Click the appropriate services tab and select the service deployment to scale or manage.
The Overview page provides an overview of the service deployment and includes the current status and number of pods started. Additionally, GIS services indicate which mode the service is running.
- On the Settings page, optionally provide new values for Number of pods, Resource limits, and Service time. You can turn services on and off by setting Start and Stop values on this page as well.
- Click Save.