Domino Apps on Kubernetes

Overview


This article describes how to configure, administer, and troubleshoot Domino Apps running on Kubernetes.

Prerequisites

  • Running Domino 3.4+ in AWS with Apps on Kubernetes configured.
  • Contact support@dominodatalab.com if you're interested in setting up Apps on Kubernetes.

 

 

 

Enabling Apps on Kubernetes


The following feature flags are accessible to Domino system administrators from the Admin interface at Advanced > Feature Flags.

  • ShortLived.RunAppsOnKubernetes
    • Default: false
    • Description: When set to true, Domino will run Apps on Kubernetes.
  • ShortLived.ComputeGridExecutionEventHistoryEnabled
    • Default: false
    • Description: When set to true, Domino will log Kubernetes deployment events.

Domino recommends setting these flags to the same value. If you enable Apps on Kubernetes, you will likely also want to enable Kubernetes deployment logs.

 

 

Configuring Kubernetes hardware tiers


When launching an App on Kubernetes, users will not have access to the general hardware tiers available to Domino Runs. Before running Apps in Kubernetes, Domino system administrators must create Kubernetes hardware tiers.

These are created in the same part of the Admin interface as general hardware tiers, at Advanced > Hardware Tiers.

Screen_Shot_2019-04-09_at_8.17.14_AM.png

 

When creating a new hardware tier from this interface, you will find that the first option is to select a Cluster Type for the hardware tier. You must choose Kubernetes to create a hardware tier that can be used by Apps on Kubernetes. You will find that after setting the Cluster Type to Kubernetes, some of the other fields for configuring the hardware tier will disappear, as they represent settings for classic hardware tiers that are automatically managed by Kubernetes.

This includes:

  • Running in a specific subnet
  • Overriding data volume mounts

 

Screen_Shot_2019-04-09_at_8.19.45_AM.png

 

 

Publishing Apps on Kubernetes


The process for authoring, configuring, and publishing Apps on Kubernetes is the same as publishing classic Domino Apps. Read the App publishing overview, App authoring guides, or watch the video introduction to Apps in Domino to learn the basics.

With Apps on Kubernetes enabled, you will find when publishing your App that only hardware tiers with a Kubernetes Cluster Type are available for use with Apps.

 

Screen_Shot_2019-04-09_at_8.28.52_AM.png

 

Note

Due to differences in networking configuration between classic hardware tiers and Apps on Kubernetes, the following environment level integrations are not currently supported for Apps on Kubernetes.

  • Kerberos authentication
  • Connecting to VPN
  • EFS mounts in Docker arguments
  • SSH to the App environment

About file sync

Apps hosted on classic hardware tiers were functionally similar to Domino Runs, and could sync back file changes to the Domino Service Filesystem.

Apps on Kubernetes are different, and do not support Run style file sync. However, you can still write files back to your Domino project from your App with the Domino API.

 

 

 

Troubleshooting Apps on Kubernetes


Apps on Kubernetes are designed to gracefully handle failures. If your App experiences a user-induced crash or intermittent failure, Domino will automatically restart the App to maintain its availability. You can see the standard console output of your App process by clicking View Execution Details on the App settings tab.

If your App code has a bug that causes persistent failure, your App can enter a loop where Domino repeatedly tries to restart it and it repeatedly crashes. If this is happening, you will see your App remain in a Running state while the User Output shows a recurring sequence of Starting server... followed by the same error, as shown in the example below.

 

Screen_Shot_2019-04-09_at_9.16.33_AM.png

 

When you see this, you should click Stop on the App settings tab to manually halt the crash loop, and use the information from the User Output log to fix the error in your App code or app.sh script.

If instead of looping through server starts in a Running state, your App proceeds to a Failed state, this could be caused by cluster level deployment failure or misconfiguration. Domino will not attempt to automatically recover from such failures. If you encounter this kind of failure persistently, a Domino system administrator can click Download deployment logs and send the downloaded file to support@dominodatalab.com for assistance.

Admins can also download deployment logs from past launches of your App on the App Versions tab.

 

Screen_Shot_2019-04-09_at_9.31.28_AM.png

 

 

 

 

Was this article helpful?
0 out of 0 found this helpful