Skip to main content
Version: 3.2

Private or Offline Installation

Private or Offline Installation​

Katonic provides bundles of offline installation media for use when running the Katonic AI Platform without Internet access to upstream sources of images and charts. To serve these resources, you must have a Docker registry accessible to your cluster.

Downloads​

URLs of available offline installation bundles will be shared with you when you purchase the platform. You can download these bundles using the curl command with basic authentication. If there are network connectivity issues you can use the wget command with the --continue or -c option. Contact the Katonic team for credentials.

The versioned collection of images (named docker-images-{3.1}.tar) contains all required images for this type of deployment and must be the only downloaded file.

Example curl download:

curl -u username:password https://downloads.katonic.ai/s3/installation-files/offline/v-3-1/docker-images-3.x.x.tar

Example wget download

wget -c --user katonic-registry --password xxxxxxx https://downloads.katonic.ai/s3/installation-files/offline/v-3-1/docker-images-3.x.x.tar

Extract and load​

The images bundle is a .tar archive that must be extracted before being used.

tar -xvf docker-images-3.x.x.tar

In the docker-images bundle there will be:

  • a collection of Docker image .tar files
  • a images.json metadata file
  • a katonic-load-images.py script

katonic-load-images.sh is a script to ingest the images.json metadata file and load the associated Docker images for a specific Katonic Platform version into the given remote Docker registry.

To load images into your private registry, run katonic-load-images.sh and pass in the URL of your registry as an argument. The script expects to run in the same directory as the images.json metadata file and the .tar image files.

Example:

./katonic-load-images.sh your-registry-url.domain:port

Once images have been loaded into your private registry you’re ready to install Katonic MLOps Platform.

Install​

To install Katonic Platform using a custom registry, the image references must be modified to reference the upstream registry. Change the katonic.yaml file variable defined below to modify all image references to the external registry.

  • Create a new Directory to keep all the installation files
mkdir katonic
cd katonic
  • Put the PEM encoded public key certificate (having extension .crt) for your domain and private key associated with the given certificate(having extension .key) inside the current directory(katonic).

  • Initialize the installer application to generate a template configuration file named katonic.yml.

docker run -it --rm --name generating-yaml $(pwd):/install quay.io/katonic/katonic-installer:v3.1.0 init

Edit the configuration file with all necessary details about the target cluster, storage systems, and hosting domain. Read the following configuration reference:

ParameterDescriptionValue
deployment_typeKatonic MLOps platform can be installed in either POC or Operational(HA) modePOC or Operational
resource_group_nameAzure resource group nameeg. my-resource-group
resource_group_locationAzure resource group locationeg. centralindia
kubernetes_distributionDistribution of Kuberneteshas to be kubernetes
azure_subscription_idAzure Subscription ID
platform_nodes.instance_typePlatform node VM sizeeg. Standard_D8s_v3
platform_nodes.min_countMinimum number of platform nodeseg. 2
platform_nodes.max_countMaximum number of platform nodeseg. 4
compute_nodes.instance_typeCompute node VM sizeeg. Standard_D8s_v3
compute_nodes.min_countMinimum number of compute nodeseg. 2
compute_nodes.max_countMaximum number of compute nodeseg. 4
gpu_enabledAdd GPU nodepoolTrue or False
gpu_nodes.instance_typegpu node VM sizeeg. Standard_NC6s_v3
gpu_nodes.min_countMinimum number of gpu nodeseg. 2
gpu_nodes.max_countMaximum number of gpu nodeseg. 4
domain_namedomain on which Katonic MLOps Platform will be accessedeg. mydomain.example.com
autoscalerEnable AutoscalingTrue or False
backup_enabledBackup enableTrue or False
backup_schedule
backup_expiration
RegistryNameName of your Private Registryquay.io
registry_username
registry_password
adminUsernameemail for admin usereg. john@katonic.ai
adminPasswordpassword for admin userat least 1 special character at least 1 upper case letter at least 1 lower case letter minimum 8 characters
  1. Installing Katonic MLOps Platform
docker run -it --rm --name install-katonic -e withAKS=False -v /root/.kube:/root/.kube -v $(pwd):/inventory quay.io/katonic/katonic-installer:v3.2.0

If your registry requires authentication, ensure the registry_username and registry_password section of your installer configuration is filled in with the correct credentials.

Installation Verification​

The installation process can take up to 45 minutes to fully complete. The installer will output verbose logs and surface any errors it encounters. After installation, you can use the following commands to check whether all applications are in a running state or not.

kubectl get pods --all-namespace

This will show the status of all pods being created by the installation process. If you see any pods enter a crash loop or hang in a non-ready state, you can get logs from that pod by running:

kubectl logs $POD_NAME --namespace $NAMESPACE_NAME

If the installation completes successfully, you should see a message that says:

TASK [platform-deployment : Credentials to access Katonic MLOps Platform] *******************************ok: [localhost] => {
"msg": [
"Platform Domain: $domain_name",
"Username: $adminUsername",
"Password: $adminPassword"
]
}

However, the application will only be accessible via HTTPS at that FQDN if you have configured DNS for the name to point to an istio ingress load balancer with the appropriate SSL certificate that forwards traffic to your platform nodes.

Post Installation Steps​

Domain​

You can identify a domain for your cluster. This allows you to use any domain as the location for the cluster. For example, you could set the domain for the cluster as katonic.company.com.

For this option to work, you will need to set the required DNS routing rules between the domain and the IP address of the cluster after the katonic-installer has finished running.

You will need to create a CNAME/A listing for .<your_domain> with the IP address of the auto scaler for the cluster. Make sure you include the wildcard: . The domain is the same domain you entered as <your_domain> in the katonic-installer

To get the IP address of the cluster run the following command has been deployed:

kubectl get svc istio-ingressgateway -n istio-system | awk '{print $4}' | tail -n +2

Test and troubleshoot​

Run the following tests to verify that your Katonic installation was successful:

  • Login to the Katonic application and that all the navigation panel options are operational.

Failure of this test means you must check that Keycloak was set up properly.

  • Create a new project and launch a Jupyter/JupyterLab workspace.

Failure of this test means you must check that default environment images have been loaded in the cluster.

  • Publish an app with flask or shiny apps.

Failure of this test means you must check that the environment images have flask and shiny installed.