Install Analysis Server in Kubernetes

In this guide, we'll create a Kubernetes (k8s) Deployment and Service for the Server.

The configuration files will be stored as a Secret, and the data will be stored on a Persistent Volume and MySQL or PostgreSQL database.

Requirements

Before beginning the installation, refer to the OverOps Installation Prerequisites.

🚧

Requirements

The server requires at least 200 GB of free disk space for OverOps.

🚧

Please verify that you have

  • At least 16384 processes (ulimit -u)
  • At least 32768 files (ulimit -n)

📘

License Key

You will need a license key for this procedure.

Run the Server

Create a Private Folder

🚧

The private folder needs to be on the same directory from which you run the docker commands or the path to the private folder needs to be explicitly provided in the docker command arguments.

  1. In the private folder, create the properties files:
my.agentsettings.properties, 
my.server.properties, 
smtp.properties, 
smtpserver.properties 

Example configuration files can be found on GitHub.

  1. Next, create a secret from these files:
kubectl create secret generic overops-server \
--from-file=private/my.server.properties \
--from-file=private/my.agentsettings.properties \
--from-file=private/smtp.properties \
--from-file=private/smtpserver.properties

Create a MySQL or PostgreSQL Database

🚧

MySQL SSL Data Connections

Data connections to MySQL via SSL are disabled by default.
To disable data connections via SSL add the --no-db-ssl startup argument flag.
This will update the configuration file and make SSL disabled persistent for future server restarts. To enable SSL use the -db-ssl flag to turn SSL on.

The options:

--db-ssl       to enable
--no-db-ssl    to disable

❗️

MySQL- Running the Server on a Non-UTC Timezone

There are several issues related to timezones that are set to other than UTC (see list below). To prevent these issues from happening we strongly recommend that the server on which MySQL is running runs on a UTC timezone.

Examples:

  • Known issue with the PDT timezone
  • timezones with duplicate entries, such as:
  • IST - India
  • IST - Israel
  • IST - Ireland.

Starting MySQL

<TAKIPI-SERVER-HOME>/bin/takipi-server.sh start -u <HOSTNAME>
   --db-type mysql
   --db-url <JDBC-URL_OF_MYSQL_SERVER>
   --db-user <db username for MySQL>
   --db-password <db user password>
   --no-db-ssl

📘

For a complete list of options for takipi-server type:
/opt/takipi-server/bin/takipi-server.sh --help

Create a Secret Containing the Database Connection Information

kubectl create secret generic overops-server-db \
--from-literal=user=<USERNAME_HERE> \
--from-literal=pass=<PASSWORD_HERE> \
--from-literal=url=<URL_HERE>

Create a Persistent Volume for the Server to Store Data

  1. First, create a Deployment and Service using overops-server.yaml, available on GitHub.
  2. Modify the configuration for your environment by updating the volume overops-server-data-volume to use the persistent volume you created, and add a service to allow external traffic from web browsers to communicate with the server.
  3. Set the FRONTEND_URL to the external hostname of your service.
    We recommend using the type LoadBalancer, configured to terminate TLS traffic.
    Internal traffic between the Collector and the Server will use the simple service overops-server-service.
  4. Set DB_TYPE to the correct value for your database.

Deploy the Server

kubectl apply -f overops-server.yaml

Activate OverOps

  1. Go to http://<FRONTEND_URL>/ in your browser and follow the instructions.
  2. Send the License ID to OverOps Support with the following information:
  • Your company name
  • Your name and email address
  • The License ID shown
    to receive your license code
    OverOps will return the license key to the email address.you provide. Note that only customers with a valid and active subscription are eligible for license codes.

🚧

Note

Please note running more than one instance of the OverOps Server in a ReplicaSet is not supported at this time.