KNIME Edge Release Notes and Update Guide

This guide outlines the latest changes to KNIME Edge as well as steps for updating from prior versions.

Release history

Version Release Date

v1.1.0

2022-05-14

v1.0.0

2021-09-29

What’s new in KNIME Edge 1.1

Enhancements

Compatibility
  • KNIME Edge is now compatible with Kubernetes v1.19 to v1.23.

KNIME Edge Configuration Options
  • The KNIME Edge values file (values.yaml) is now easier to use.

    • Naming conventions across resource types are more consistent.

    • Configuration options have been reorganized into more user-friendly groups.

    • New features have been added throughout (see below for more details).

  • The Edge Deployment Custom Resource Definition (CRD) is now easier to use.

    • Naming conventions across resource types are more consistent.

    • Descriptions for all parameters in the EdgeDeployment CRD can be listed by executing either helm show crds knime-edge/knime-edge-operator to retrieve the definition from the KNIME Artifact Registry or kubectl get crd edgedeployments.edge.knime.com -o yaml to retrieve the definition from an existing KNIME Edge cluster. See the update guide below for instructions on updating the CRDs in your cluster.

  • Added capability to install execution and control plane resources to specific nodes within the cluster.

    • KNIME Edge resources are now logically grouped into execution and control plane resources.

    • Each resource group can be assigned to a specific node via node selectors in the values file.

      • nodeSelectors.controlPlaneResources.nodeSelector

      • nodeSelectors.executionResources.nodeSelector

    • For advanced tuning, the node selector can be overridden on a per-resource basis in the values file.

    • Node selection can be modified post-installation by editing the EdgeDeployment cluster resource.

Workflow Polling
  • Added support for automatically triggering Inference Deployments on a specified polling frequency.

    • Support for workflow polling can be enabled via the workflowPolling.enable property in the values file.

    • The workflow polling frequency can be specified when creating or updating an Inference Deployment via the KNIME Server Control Plane workflows.

Kong Ingress Configuration Options
  • Added parameters for Kong Ingress proxy behavior.

    • Parameters have been added to the values file and Edge Deployment Custom Resource Definition (CRD) for:

      • Retries

      • Read Timeout

      • Write Timeout

      • Connect Timeout

    • The parameters can be found in the kong.ingress section of the values file.

  • The Kong Ingress class name can now be overridden.

    • The ingress.ingressClass property can be changed in the values file to determine the class name used by the Kong Ingress resource. The class name defaults to kong-edge.

    • This is useful if multiple Kong Ingress resources exist within the same cluster.

  • Passive health checks have been added to the Kong Ingress resource.

    • Kong will now monitor traffic being proxied and determine if targets are healthy based on their behavior.

KNIME Server Control Plane and Initialization Workflows
  • Workflow URLs containing illegal characters are now encoded properly so that the KNIME Edge Initialization Workflow works as expected.

  • Significant events related to the KNIME Edge Server Adapter are now logged to the edge.event_log table.

  • The KNIME Server URL and login credentials can now optionally be overridden (instead of automatically detected) when executing the KNIME Edge Initialization workflow.

    • In certain cases, the automatically detected KNIME Server URL and credentials of the current user may not be correct.

    • This feature allows for manual overrides as needed.

  • The KNIME Edge Initialization Workflow no longer fails due to workflow URLs containing illegal characters.

Bugfixes

Inference Agent Image Names
  • Image name column size has been increased to prevent errors when utilizing inference agent images with long names.

    • The edge.edge_image.image_name property is now of TEXT type to allow for long image names.

  • Inference agent images without a tag no longer cause errors in the Edge Operator.

KNIME Server Control Plane Workflows
  • Some KNIME Edge control plane workflows now load significantly faster.

  • Fixed a bug in which URL encoding for the Create Inference Deployment workflow did not execute properly on Windows machines.

  • Pod and cluster metrics are now visualized properly in both the static and dynamic versions of the KNIME Edge control plane workflows.

Server Adapter
  • The KNIME Edge Server Adapter connects and registers to the corresponding KNIME Server instance ~15 seconds quicker.

KNIME Edge 1.1 Update Guide

This section outlines the steps needed to upgrade an existing KNIME Edge installation from version 1.0 to 1.1.

You will find a complete guide to installing KNIME Edge in the KNIME Edge Installation Guide.

If you have any questions or need assistance with the update process, please contact your dedicated KNIME support specialist.

Update KNIME Server Control Plane Workflows

*1. Download the latest "Initialize Edge Server" workflow from KNIME Hub: KNIME Edge Initialization Workflow *

2. Upload the "Initialize Edge Server" workflow to KNIME Server.

3. Execute the "Initialize Edge Server" workflow from WebPortal on KNIME Server.

initialize-edge-server-overview.png

4. Select the Edge root path. Optionally override the automatic detection of KNIME Server URL and credentials by deselecting "Use current KNIME Server login details for requests".

initialize-edge-root-path.png

5. If "Use current KNIME Server login details for requests" was deselected in the prior step, fill out the KNIME Server credentials as appropriate before moving on.

initialize-edge-custom-server-info.png

6. When selecting the KNIME Edge version to initialize, ensure that 1.1.0-experimental or 1.1.0 is selected.

initialize-edge-version.png

7. Ensure that "Update Database Schema to latest version" is selected and "Reset Database Schema before Updating" is deselected before proceeding. This configuration will update the PostgreSQL database schema without truncating the existing tables.

initialize-edge-update-schema.png

Uninstall existing Edge Deployment

1. Run helm list --all-namespaces in terminal to see all Helm releases for the current Kubernetes context.

user@computer ~ % helm list --all-namespaces

NAME            NAMESPACE   REVISION    UPDATED                                 STATUS      CHART                       APP VERSION
edge-current    edge        1           2022-03-03 11:56:06.615987 -0500 EST    deployed    knime-edge-operator-1.0.0   1.16.0

2. Once the existing KNIME Edge release has been identified, run helm uninstall [-n namespace] <release_name> to uninstall KNIME Edge. A successful uninstallation will look similar to the output below.

user@computer ~ % helm uninstall -n edge edge-current

W0303 13:55:47.802827   92191 warnings.go:70] rbac.authorization.k8s.io/v1beta1 RoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 RoleBinding
W0303 13:55:47.825723   92191 warnings.go:70] rbac.authorization.k8s.io/v1beta1 Role is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 Role
W0303 13:55:47.867231   92191 warnings.go:70] rbac.authorization.k8s.io/v1beta1 ClusterRoleBinding is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 ClusterRoleBinding
W0303 13:55:47.913994   92191 warnings.go:70] rbac.authorization.k8s.io/v1beta1 ClusterRole is deprecated in v1.17+, unavailable in v1.22+; use rbac.authorization.k8s.io/v1 ClusterRole
release "edge-current" uninstalled

Update KNIME Edge Custom Resource Definitions (CRDs)

1. Run kubectl get crds to see a full list of Custom Resource Definitions (CRDs) that are installed to the cluster.

user@computer ~ % kubectl get crds

NAME                                          CREATED AT
edgedeployments.edge.knime.com                2022-03-03T16:56:02Z
inferencedeployments.edge.knime.com           2022-03-03T16:56:02Z
kongclusterplugins.configuration.konghq.com   2022-03-03T16:56:02Z
kongconsumers.configuration.konghq.com        2022-03-03T16:56:02Z
kongingresses.configuration.konghq.com        2022-03-03T16:56:02Z
kongplugins.configuration.konghq.com          2022-03-03T16:56:02Z
tcpingresses.configuration.konghq.com         2022-03-03T16:56:02Z
tensorflowservingdeployments.edge.knime.com   2022-03-03T16:56:02Z

2. Run the following command to delete all KNIME Edge CRDs.

kubectl delete crd \
    edgedeployments.edge.knime.com \
  inferencedeployments.edge.knime.com \
  tensorflowservingdeployments.edge.knime.com

3. Run kubectl get crds to confirm successful deletion.

user@computer ~ % kubectl get crds

NAME                                          CREATED AT
kongclusterplugins.configuration.konghq.com   2022-03-03T16:56:02Z
kongconsumers.configuration.konghq.com        2022-03-03T16:56:02Z
kongingresses.configuration.konghq.com        2022-03-03T16:56:02Z
kongplugins.configuration.konghq.com          2022-03-03T16:56:02Z
tcpingresses.configuration.konghq.com         2022-03-03T16:56:02Z

4. Run through the "Install new Edge Deployment" section below to reinstall Edge, which will in turn reinstall the CRDs to your cluster.

Install new Edge Deployment

1. Run helm repo ls to confirm that the KNIME Edge chart repository is available in Helm. If not, see the KNIME Edge documentation for details on how to add the repository.

user@computer ~ % helm repo ls

NAME                URL
knime-edge          https://registry.hub.knime.com/chartrepo/knime-edge

2. Run helm repo update to retrieve the latest updates to the KNIME Edge Helm Chart.

user@computer ~ % helm repo update

Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "knime-edge" chart repository
Update Complete. ⎈Happy Helming!⎈

3. Run the following command to retrieve the updated values file definition for KNIME Edge v1.1.0 and save it as a local values.yaml file.

helm show values knime-edge/knime-edge-operator --version 1.1.0 > values.yaml

4. Review the values.yaml file and update configuration as needed. All values in <brackets> are placeholders intended to be replaced with actual configuration.

5. Optionally verify the configuration that will be applied to the Kubernetes cluster in the next step.

helm template -n edge knime-edge knime-edge/knime-edge-operator \
  --version 1.1.0 \
  -f values.yaml

6. When ready, run the following command to install KNIME Edge v1.1.0 into your cluster.

helm install -n edge knime-edge knime-edge/knime-edge-operator \
    --version 1.1.0 \
  -f values.yaml

7. See the Verify Installation of KNIME Edge Cluster docs for verifying that the cluster is operational. If you have any questions or need assistance with the update process, please contact your dedicated KNIME support specialist.