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:
Parameter | Description | Value |
---|---|---|
deployment_type | Katonic MLOps platform can be installed in either POC or Operational(HA) mode | POC or Operational |
resource_group_name | Azure resource group name | eg. my-resource-group |
resource_group_location | Azure resource group location | eg. centralindia |
kubernetes_distribution | Distribution of Kubernetes | has to be kubernetes |
azure_subscription_id | Azure Subscription ID | |
platform_nodes.instance_type | Platform node VM size | eg. Standard_D8s_v3 |
platform_nodes.min_count | Minimum number of platform nodes | eg. 2 |
platform_nodes.max_count | Maximum number of platform nodes | eg. 4 |
compute_nodes.instance_type | Compute node VM size | eg. Standard_D8s_v3 |
compute_nodes.min_count | Minimum number of compute nodes | eg. 2 |
compute_nodes.max_count | Maximum number of compute nodes | eg. 4 |
gpu_enabled | Add GPU nodepool | True or False |
gpu_nodes.instance_type | gpu node VM size | eg. Standard_NC6s_v3 |
gpu_nodes.min_count | Minimum number of gpu nodes | eg. 2 |
gpu_nodes.max_count | Maximum number of gpu nodes | eg. 4 |
domain_name | domain on which Katonic MLOps Platform will be accessed | eg. mydomain.example.com |
autoscaler | Enable Autoscaling | True or False |
backup_enabled | Backup enable | True or False |
backup_schedule | ||
backup_expiration | ||
RegistryName | Name of your Private Registry | quay.io |
registry_username | ||
registry_password | ||
adminUsername | email for admin user | eg. john@katonic.ai |
adminPassword | password for admin user | at least 1 special character at least 1 upper case letter at least 1 lower case letter minimum 8 characters |
- 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.