Version:

Upgrading Kinetica (No KAgent - On Premise)

Any version of Kinetica can be upgraded to the latest version after installing KAgent and enabling KAgent to manage the cluster. This page assumes that KAgent is not installed currently. Once installed, KAgent will manage upgrading every node in a cluster as well as any configuration file merging.

Warning

See the Migrating to Kinetica 7.0 for considerations that should be made before upgrading.

Back Up

  1. Stop Kinetica from the head node:

    service gpudb_host_manager stop
    
  2. Verify that Kinetica is stopped:

    service gpudb_host_manager status
    
  3. On the head node, create a backup file (.bak) or a tar file (.tar.gz) for all important configuration files and directories, including:

    • All persist directories--the default being /opt/gpudb/persist-- defined in the gpudb.conf file (backing up these directories is optional, especially if the disk space is not available)
    • Everything in the /opt/gpudb/core/etc directory
    • Everything in the /opt/gpudb/httpd/conf directory
    • Everything in the /opt/gpudb/connectors directory
    • The /opt/gpudb/tomcat/conf/catalina.properties file
    • The /opt/gpudb/tomcat/webapps/gadmin/WEB-INF/classes/gaia.properties file
  4. On the head node, follow the instructions for upgrading Kinetica under Reveal, if any custom slice types have been created in the environment being upgraded. These instructions will contain steps to be followed both before and after the upgrade is applied.

  5. On the worker nodes, create a backup file (.bak) or a tar file (.tar.gz) for all persist directories--the default being /opt/gpudb/persist-- defined in the gpudb.conf file (backing up these directories is optional, especially if the disk space is not available)

KAgent Installation

Before upgrading the database, KAgent must be installed on one of the nodes of the existing cluster or any other external server.

Important

If KAgent is already installed, skip to Upgrading Kinetica (KAgent - On Premise)

KAgent can be installed in two ways:

  • Deployment of the installation package on a RHEL or Debian/Ubuntu system
  • Via Docker

Important

KAgent requires that the 8081 port be made available on the host

Manual Install

KAgent can be deployed on any server inside or outside the cluster. Deploy the package using the standard procedures for a local package:

  • On RHEL:

    sudo yum install ./kagent-<version>.<architecture>.rpm
    
  • On Debian/Ubuntu:

    sudo apt install ./kagent-<version>.<architecture>.deb
    

This installs the package to the directory /opt/gpudb/kagent and registers and starts the kagent-ui service. KAgent will open port 8081 on the local firewall (if enabled).

Docker

After installing Docker, run the following via a local terminal:

sudo docker run -d -p 8081:8081 kinetica/kagent

The latest KAgent Docker image will be pulled and a container will be started.

Kinetica Upgrade

Upgrading Kinetica using KAgent involves adding the existing cluster to KAgent and then deploying the updated package via either a browser-based UI or console-driven CLI.

KAgent UI

../_images/kagent_start.png

After installing KAgent, the KAgent UI displays an overview page as well as access to KAgent administration tools, cluster setup, and cluster components. KAgent is accessible via the following URL:

http://<kagent-host>:8081/kagent
  • Click Rings to view the rings for the cluster; rings are used for high availability setups and to help organize clusters. To setup a ring:
    1. Click Add Ring
    2. Provide a ring label
    3. Click Add
  • Click Add Cluster to jump to the cluster setup process.
  • Click Clone to open the Clone Clusters interface. From here, a source cluster's authentication settings, users, and data can be cloned to a target cluster. Review Clone for more information.
  • Click Jobs to view completed and active KAgent jobs.
  • Click Logs to view KAgent logs.
  • Click console to view the console.

To access the KAgent UI and begin setting up a cluster:

  1. Ensure the KAgent service is started:

    service kagent_ui status
    
  2. Browse to the KAgent UI using IP or host name:

    http://<kagent-host>:8081/kagent
    
  3. Optionally, if using custom rings, i.e. not the default ring, click Rings then click Clusters next to the desired ring.

  4. Click Add New or Existing Cluster.

    Note

    Once in the setup process, click Clusters to exit setup and return to the start; click Logs to view KAgent logs; click Console to open the console log.

Cluster

../_images/kagent_cluster.png

Note

The license key can be the existing Kinetica license key or a new license key. Contact Support (support@kinetica.com) for any questions.

  1. Enter a name for the cluster. The name cannot contain spaces or underscores.

  2. Optionally, select to install Graph if a node should have the graph server installed on it during the upgrade. See Network Graphs & Solvers Concepts for more information.

  3. Optionally, select to install AAW (Active Analytics Workbench) during the upgrade.

  4. Optionally, select to install KAgent if an additional node should also have KAgent installed on it during the upgrade. See Nodes for more information.

  5. Optionally, select to install HA if setting up an HA ring. Review High Availability Configuration & Management for more information.

  6. For the Install Mode, select either Online (upgrade from the online Kinetica repository) or Offline (upgrade from uploaded packages). If Offline is selected, click Upload Packages, then upload a package file for each component or driver desired for the upgrade.

    Important

    If performing an offline upgrade, all necessary dependencies will need to be installed prior to cluster setup.

    ../_images/kagent_upload_package.png
  7. For the Version, select either CUDA (GPU) or Intel (CPU-only) depending on the package variant that's already installed on the current cluster you want to upgrade.

    Tip

    Use one of the following commands to determine the Kinetica package that is already on the machine:

    # RHEL
    rpm -qa | grep 'gpudb'
    
    # Ubuntu
    apt list --installed | grep 'gpudb'
    
  8. If the Version is set to CUDA, select Automatically install Nvidia driver. This will automatically configure the server(s) for an Nvidia GPU driver and install the most compatible driver.

  9. Enter the license key.

  10. If AAW is selected to install, select a K8 Setup:

    • Automatic -- KAgent will install Kubernetes / KubeCTL and upload a default configuration file.

      Important

      Before installing the embedded Kubernetes cluster, review the Kubernetes Considerations.

    • Custom -- Upload a configuration file for an already existing Kubernetes installation and provide a public IP address for the server hosting the Kubernetes installation. Note that AAW requires Kubernetes; see Active Analytics Workbench (AAW) Overview for more information.

  11. Click Next.

Deployment

../_images/kagent_deployment.png

  1. Select the On Premise deployment method, and click Next.

    Important

    If clearing the Open Firewall Ports checkbox, the firewall then must be configured manually to allow the required ports listed in the default ports table. Consult Firewall Settings for tips on configuring the firewall.

Security

../_images/kagent_security.png

  1. Enter and confirm the existing Admin Password. This is the password used to access Reveal, Active Analytics Workbench (AAW), and GAdmin as the default Admin user.

    Important

    The password provided here must match the existing cluster's admin password.

  2. Select an SSL Mode that best aligns with the existing cluster's SSL configuration:

    • Cert/key setup not required -- Kinetica will not require SSL certificate/key creation/upload but there will be no updates to security configuration settings
    • User-provided cert/key per node -- user must upload an SSL certificate and key for each node; Kinetica copies the cert/key pair to /opt/gpudb/certs, enables HTTPD, and configures HTTPD to use HTTPS
    • Generate self-signed cert/key per node -- KAgent generates a self-signed certificate and key for each node and places it in /opt/gpudb/certs, enables HTTPD, and configures HTTPD to use HTTPS
  3. Select the current Authentication type used for the existing cluster and fill the fields as necessary:

    • None -- no authentication or authorization
    • LDAP -- configures Kinetica to authenticate via LDAP; requires authentication to connect to the database, enables authorization, enables external authentication, automatically creates users in the database for LDAP users, and automatically grants roles in the database to LDAP users
    • Active Directory -- configures Kinetica to authenticate via Microsoft Active Directory; requires authentication to connect to the database, enables authorization, enables external authentication, automatically creates users in the database for Active Directory users, and automatically grants roles in the database to Active Directory users
    • Kerberos -- configures Kinetica to authenticate via Kerberos; requires authentication to connect to the database, enables authorization, enables external authentication, automatically creates users in the database for Kerberos users, and automatically grants roles in the database to Kerberos users
  4. Click Next.

Nodes

../_images/kagent_nodes.png

  1. Click Add New Node until the number of nodes in KAgent matches the number of nodes in the current cluster.

  2. Input the Hostname, Internal IP, and External IP for each existing node into KAgent.

  3. Optionally, if the User-provided cert/key per node SSL Mode was selected, click the lock icon in the SSL column and upload the SSL cert and key for each node.

  4. Select if each node should have the Core package installed. The Core package contains access to the database and its core components and functionality. Note that if the core package is installed on a node, that node cannot be designated as the Head Node.

  5. For the existing head node host, designate it as the head node in KAgent by selecting the Head Node radio button next to it.

    Note

    All services and privileges (Head, Graph, AAW, KAgent) can exist on a single node if desired, assuming there are enough resources to handle it.

  6. Optionally, if the Graph package was selected for install in Cluster, select the desired node for the Graph node using the corresponding radio button. The graph node hosts the graph server. The graph node does not need to have the Core package enabled.

  7. Optionally, if opting to install AAW, select the desired node to host the service. The AAW node does not need to have the Core package enabled. Also, set the number of reserved GPUs for AAW to use for each node.

    Important

    Some features of AAW require GPUs to work or have increased performance. Review the AAW documentation for more information.

  8. Optionally, if opting to install KAgent, select the desired node to host the service. The KAgent node does not need to have the Core package enabled.

  9. Select if each node should have Rabbit (RabbitMQ) installed. Ensure at least one node will have RabbitMQ installed if enabling High Availability (HA) for the cluster; select 2 or more nodes to have RabbitMQ installed for redundant queues. A node does not have to host any other services other than RabbitMQ if desired.

  10. Click Next.

  11. Confirm which IP address KAgent should use to connect to the cluster: Internal or Public.

Credentials

../_images/kagent_credentials.png

  1. For the Server SSH Credentials, enter the SSH username and password or upload the SSH private key that will be used to access the node(s).
  2. Optionally, enter the sudo password.
  3. Click Verify.

The console will appear showing the log of KAgent interactions as KAgent attempts to access the cluster with the provided credentials and also retrieve information on the hosts, including Kinetica version and configuration (if installed), hostname and IP addresses, OS type, and Nvidia information.

Important

If the configuration you have selected does not match the current configuration on the cluster you're trying to upgrade, KAgent will list the errors and provide the opportunity to fix the configuration manually or automatically.

../_images/kagent_fix_config.png

Upgrade

../_images/kagent_upgrade.png

Existing cluster version information will be detected and the Add Only + and Upgrade buttons will be activated.

  1. Review the Upgrade Summary to ensure there are no validation errors in the information.

  2. Click Upgrade. KAgent will open a window displaying the progress of the upgrade. The upgrade may take a while as KAgent deploys an updated package on each node in the cluster.

    Tip

    Click Details next to a step to see stdout and stderr for that step. Click copy to copy the displayed text.

    Important

    If Automatic Kubernetes (K8) installation was selected, KAgent will request permission to disable SELinux on the nodes. Kubernetes cannot be installed otherwise. Click I Agree to continue with the upgrade; click No to stop the upgrade and manually disable SELinux.

    ../_images/kagent_selinux_permission.png

After a successful upgrade, if KAgent was also installed on a separate node, one can be redirected to the KAgent on that cluster node. If KAgent was not installed, one can be redirected to GAdmin.

Tip

GAdmin can always be found by browsing to the head node, using IP or host name:

http://<head-node-host>:8080/

KAgent can always be found by browsing to the node hosting it, using IP or host name:

http://<kagent-host>:8081/