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
Private
FolderThe
private
folder needs to be on the same directory from which you run the docker commands or the path to theprivate
folder needs to be explicitly provided in the docker command arguments.
- 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.
- 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
- First, create a Deployment and Service using overops-server.yaml, available on GitHub.
- 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. - 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 serviceoverops-server-service
. - Set DB_TYPE to the correct value for your database.
Deploy the Server
kubectl apply -f overops-server.yaml
Activate OverOps
- Go to http://
<FRONTEND_URL>
/ in your browser and follow the instructions. - 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.
Updated over 4 years ago