[Executor] Installation
Introduction
This page provides the steps to install and configure the ApiOmat microservice for service deployment called "Executor". For further information about Executor itself and its functionality please refer to its documentation.
Prerequisites
Open the following port in the firewall to other ApiOmat nodes:
-
8070 (HTTP)
Installation of Consul is required!
Installation of AdoptOpenJDK is required!
System requirements
The following instance configurations are recommended.
|
Size |
CPU |
Memory |
Disk |
Typical Cloud Instance Types |
|
All |
2 core |
256 MB RAM (executor only) |
500 MB |
AWS: t2.medium |
|
|
|
|
|
Azure: Standard_ B1MS |
Installation
USERNAME, PASSWORD, and TOKEN values are provided per customer from ApiOmat.
Debian/Ubuntu
# Install the repo keywget -O - https://repo-int.apiomat.com/yambas/rest/web/Key/LIVE/apiomat-archive-keyring.asc | sudo apt-key add -# Add the repositoryecho "deb https://<USERNAME>:<PASSWORD>@repo.apiomat.com/yambas/rest/web/Repo/LIVE/deb ./" | sudo tee /etc/apt/sources.list.d/apiomat.list# Update APT and installapt-get updateapt-get install -y aom-executorservice executor startCentos/Oracle/RedHat
# Add the repositoryecho "[apiomat]name=ApiOmatbaseurl=https://<USERNAME>:<PASSWORD>@repo.apiomat.com/yambas/rest/web/Repo/LIVE/rpmgpgcheck=0enabled=1" > /etc/yum.repos.d/apiomat.repo# Installyum -y --nogpgcheck install aom-executorservice executor startSuse
# Add the repositoryzypper addrepo --no-gpgcheck https://repo.apiomat.com/yambas/rest/web/Repo/LIVE/suse?token=<TOKEN> "ApiOmat"# Refresh zypper and installzypper refreshzypper --no-gpg-checks --non-interactive install aom-executorservice executor startDocker Compose
# Docker logindocker login -u <USERNAME> -p <PASSWORD># Store the following file and execute:docker-compose -f executor.yml upexecutor.yml:
version: '3'services: executor: image: apiomat/executor:<VERSION> command: --spring.cloud.consul.enabled=false ports: - "8070:8070"Kubernetes
Helm
# Docker loginkubectl create secret docker-registry regcred \ --docker-server=https://index.docker.io/v1/ \ --docker-username="<USERNAME>" \ --docker-password="<PASSWORD>" \ --docker-email="<MAIL>"# We are using helm to deploy the yambas replicaset helm inithelm repo updatehelm repo add apiomat https://apinautengmbh.github.io/helm/helm fetch apiomat/apiomat-executor # extract the archive (.tgz) and find the values.yml. Adjust the parameters as required. helm install apiomat/apiomat-executor --name apiomat-executor --values values.yamlWindows
-
Download file: https://repo.apiomat.com/yambas/rest/web/Repo/LIVE/aom-explorer-<VERSION>.zip?token=<TOKEN> and unzip to installation folder
-
Ensure that the path to your installed jdk\bin is set to the system-environment variable 'Path' (java.exe needs to be accessible for windows' system user!)
-
Open administrative console and execute
Executor-<VERSION>.exe install
Executor-<VERSION>.exe start
to install as service and start afterwards.
For a removal of the service, execute
Executor-<VERSION>.exe uninstall
Configuration
General service configuration possibilities are described at the configurations main page.
This service has the following specific configuration values:
|
Key |
Description |
Example |
|
executor.properties.count |
Number of microservice instances to be started |
1 (default) |
|
executor.properties.memory |
Memory usage in MB used for each microservice instance |
1000 (default) |
|
executor.properties.disk |
Disk usage in MB used for each microservice instance |
1000 (default) |
|
executor.properties.cpu |
CPU usage in MHz used for each microservice instance |
500 (default) |
|
executor.properties.javaJvmOpts |
Default list of JVM options separated by space which will be given to each deployment of Java artifacts. |
"-Xmx76M -Xss256k -XX:+UseG1GC" |
|
executor.properties.javaExecArgs |
Default list of execution arguments separated by space which will be given to each deployment of Java artifacts. Precedence:
|
"--spring.cloud.consul.host=${spring.cloud.consul.host} --spring.cloud.consul.port=${spring.cloud.consul.port}" |
|
executor.properties.dockerEnvVars |
Default map of docker environment variables in the format "<key>: <value>" which will be given to each deployment of docker images. The Precedence is the same like defined for javaExecArgs. |
spring_cloud_consul_host: ${spring.cloud.consul.host} |
|
executor.properties.resourceDir |
Define the path where the resources of the micro services should be cached locally, default is the value of java.io.tmpdir |
"/Users/myName/myDirectory" |
|
executor.external-config-service.pathprefix |
Path prefix of the external configuration service |
"/config" (default) |
|
feign.client.config.Gearhead.connectTimeout |
The configuration service is connected via Feign for which the connection timeout can be set. In order feign is able to connect to Gearhead the service needs to be installed first. |
5000 |
|
feign.client.config.Gearhead.readTimeout |
The read timeout of the feign client which is used to connect to the configuration service. |
5000 |
Docker Configuration
In order that Executor is able to create docker images, push them at runtime and provide them to your Kubernetes instance you need to configure the following docker related properties in the application.yml:
|
Key |
Description |
Example |
|
executor.docker.repository |
Docker repository to which the images should be uploaded. If empty the dockerimage will not be created and pushed. |
registry.hub.docker.com/myDockerUser/myrepo |
|
executor.docker.email |
User email address needed to push images to the Docker repository. |
|
|
executor.docker.username |
User name needed to push images to the Docker repository. |
developer |
|
executor.docker.password |
User password needed to push images to the Docker repository. (it is recommended to set this password outside of the application.yml of executor E.g. via system property or via file mapping) |
supersecret123456 |
Engine Configuration
Regarding the selected executor engine (Nomad, Kubernetes) you have to setup further engine specific configuration.
|
Key |
Description |
Example |
|
executor.engine |
Select the engine which is used to deploy your microservices with Executor. Available engines: "nomad" and "kubernetes" |
"nomad" |
|
executor.nomad ... |
Information about Nomad specific configuration can be found in Nomad Deployment Setup |
- |
|
executor.kubernetes ... |
Information about Kubernetes specific configuration can be found in Kubernetes Deployment Setup |
- |
Logging
Linux
Logging is done to a separate logfile:
tail -f /var/log/apiomat/executor/executor.logDocker
Please replace <EXECUTOR_CONTAINER_ID> with your running container ID. You can list your running container using 'docker container list' command.
docker logs -f <EXECUTOR_CONTAINER_ID>Kubernetes
Please replace <EXECUTOR_CONTAINER_ID> with your running container ID. You can list your running container using 'kubectl get pods' command.
kubectl logs -f <EXECUTOR_CONTAINER_ID>Windows
All logs are written to Event manager.
Next steps
Install further microservices.