Install Wallaroo to Specific Nodes

How to install Wallaroo to specific nodes

Organizations that share their Kubernetes environment with other applications may want to install Wallaroo to specific nodes in their cluster. The following guide demonstrates how to install a Wallaroo instance into specific nodes in the Kubernetes cluster.

This example uses Wallaroo Community as the example. For other guides for installing a Wallaroo instance, see the Wallaroo Community Setup Guides and the Wallaroo Enterprise Setup Guides.

Users who are familiar with Kubernetes clusters can skip ahead directly to the Install Steps.

Description

When installed into a Kubernetes cluster, Wallaroo will use available nodes to maximize its performance. Some organizations may use specific nodepools or nodes for specific applications.

One option is to use Kubernetes metadata to assign Node labels to nodes, then specify that Wallaroo can be installed into specific nodes that match that label. This can be done with specifying configuration options during the install process using the kots option --config-values={CONFIG YAML FILE}. For more information, see the kots set config documentation.

Install Steps

In this example, an instance of Wallaroo Community will be installed into a Kubernetes cluster that has four nodes assigned with the label wallaroo.ai/node=true;

kubectl get nodes
NAME                                 STATUS   ROLES   AGE   VERSION
aks-mainpool-18670167-vmss000000     Ready    agent   84m   v1.23.8
aks-wallarooai-12293194-vmss000000   Ready    agent   75m   v1.23.8
aks-wallarooai-12293194-vmss000001   Ready    agent   75m   v1.23.8
aks-wallarooai-12293194-vmss000002   Ready    agent   75m   v1.23.8
aks-wallarooai-12293194-vmss000003   Ready    agent   75m   v1.23.8

kubectl get nodes -l wallaroo.ai/node=true
NAME                                 STATUS   ROLES   AGE   VERSION
aks-wallarooai-12293194-vmss000000   Ready    agent   75m   v1.23.8
aks-wallarooai-12293194-vmss000001   Ready    agent   75m   v1.23.8
aks-wallarooai-12293194-vmss000002   Ready    agent   75m   v1.23.8
aks-wallarooai-12293194-vmss000003   Ready    agent   75m   v1.23.8
  1. Create a kots configuration file and specify the label to use for installing nodes. For this example, we will use wallaroo.ai/node: "true" as the label. Any nodes with that label will be used by Wallaroo during the installation. For this example, this configuration is saved to the file test-node.yaml.

    apiVersion: kots.io/v1beta1
    kind: ConfigValues
    metadata:
        creationTimestamp: null
        name: wallaroo
    spec:
        values:
            wallaroo_node_selector: 
                value: 'wallaroo.ai/node: "true"'
    status: {}
    
  2. During installation, specify the configuration file to be used with the --config-values option.

    kubectl kots install "wallaroo/ce" \
    -n wallaroo \ 
    --config-values=test-node.yaml
    
    • Deploying Admin Console
    • Creating namespace ✓
    • Waiting for datastore to be ready ✓
      • Waiting for Admin Console to be ready ✓
    • Press Ctrl+C to exit
    • Go to http://localhost:8800 to access the Admin Console
    
  3. Proceed with the installation as normal, including uploading the required license file, etc.

  4. Once complete, verify Wallaroo was installed to specific nodes with the kubectl get pods command. The following shows the pods in the wallaroo namespace where the Wallaroo Community instance was installed, and the pods used for the deployed pipeline ccfraudpipeline.

    kubectl get pods --all-namespaces -o=custom-columns=NAME:.metadata.name,Namespace:.metadata.namespace,Node:.spec.nodeName
    
    NAME                                       Namespace           Node
    engine-6469d85b5c-5pz75                    ccfraudpipeline-1   aks-wallarooai-12293194-vmss000003
    engine-lb-db4f647fb-m9bkl                  ccfraudpipeline-1   aks-wallarooai-12293194-vmss000001
    helm-runner-xz4vn                          ccfraudpipeline-1   aks-wallarooai-12293194-vmss000003
    azure-ip-masq-agent-26cnd                  kube-system         aks-wallarooai-12293194-vmss000002
    azure-ip-masq-agent-745hs                  kube-system         aks-wallarooai-12293194-vmss000000
    azure-ip-masq-agent-f2nl2                  kube-system         aks-mainpool-18670167-vmss000000
    azure-ip-masq-agent-hjxbr                  kube-system         aks-wallarooai-12293194-vmss000003
    azure-ip-masq-agent-nktlq                  kube-system         aks-wallarooai-12293194-vmss000001
    cloud-node-manager-6twk7                   kube-system         aks-mainpool-18670167-vmss000000
    cloud-node-manager-g2bql                   kube-system         aks-wallarooai-12293194-vmss000003
    cloud-node-manager-j4xdq                   kube-system         aks-wallarooai-12293194-vmss000001
    cloud-node-manager-q6b2k                   kube-system         aks-wallarooai-12293194-vmss000000
    cloud-node-manager-rsrsg                   kube-system         aks-wallarooai-12293194-vmss000002
    coredns-autoscaler-7d56cd888-t28v5         kube-system         aks-mainpool-18670167-vmss000000
    coredns-dc97c5f55-8v7lh                    kube-system         aks-mainpool-18670167-vmss000000
    coredns-dc97c5f55-p2dc2                    kube-system         aks-mainpool-18670167-vmss000000
    csi-azuredisk-node-5hlxc                   kube-system         aks-mainpool-18670167-vmss000000
    csi-azuredisk-node-6bp8l                   kube-system         aks-wallarooai-12293194-vmss000003
    csi-azuredisk-node-mthtd                   kube-system         aks-wallarooai-12293194-vmss000000
    csi-azuredisk-node-p6w8w                   kube-system         aks-wallarooai-12293194-vmss000002
    csi-azuredisk-node-sqznw                   kube-system         aks-wallarooai-12293194-vmss000001
    csi-azurefile-node-7kw5p                   kube-system         aks-wallarooai-12293194-vmss000002
    csi-azurefile-node-9zb6l                   kube-system         aks-wallarooai-12293194-vmss000001
    csi-azurefile-node-grs6g                   kube-system         aks-wallarooai-12293194-vmss000000
    csi-azurefile-node-z84nz                   kube-system         aks-mainpool-18670167-vmss000000
    csi-azurefile-node-zzqdf                   kube-system         aks-wallarooai-12293194-vmss000003
    konnectivity-agent-6c57d77bcd-5tvbh        kube-system         aks-mainpool-18670167-vmss000000
    konnectivity-agent-6c57d77bcd-z5q48        kube-system         aks-mainpool-18670167-vmss000000
    kube-proxy-4nz25                           kube-system         aks-wallarooai-12293194-vmss000000
    kube-proxy-8fv76                           kube-system         aks-wallarooai-12293194-vmss000002
    kube-proxy-c5nvs                           kube-system         aks-wallarooai-12293194-vmss000001
    kube-proxy-lvlwc                           kube-system         aks-wallarooai-12293194-vmss000003
    kube-proxy-vbvfr                           kube-system         aks-mainpool-18670167-vmss000000
    metrics-server-64b66fbbc8-tvxpj            kube-system         aks-mainpool-18670167-vmss000000
    api-lb-bbc98488d-24qxb                     wallaroo           aks-wallarooai-12293194-vmss000002
    continuous-image-puller-8sfw9              wallaroo           aks-wallarooai-12293194-vmss000003
    continuous-image-puller-bbt7c              wallaroo           aks-wallarooai-12293194-vmss000000
    continuous-image-puller-ngr75              wallaroo           aks-wallarooai-12293194-vmss000002
    continuous-image-puller-stxpq              wallaroo           aks-wallarooai-12293194-vmss000001
    dashboard-677df986d9-8c5mz                 wallaroo           aks-wallarooai-12293194-vmss000000
    deploymentmanager-69b4c6d449-j8jct         wallaroo           aks-wallarooai-12293194-vmss000002
    graphql-api-9c664ddf-t7cnr                 wallaroo           aks-wallarooai-12293194-vmss000000
    hub-668d49b7b4-jspqj                       wallaroo           aks-wallarooai-12293194-vmss000001
    jupyter-john-2ehansarick-40wallaroo-2eai   wallaroo           aks-wallarooai-12293194-vmss000002
    keycloak-85cf99c7bf-8vvb5                  wallaroo           aks-wallarooai-12293194-vmss000002
    kotsadm-cbf8d8ccb-qgx2w                    wallaroo           aks-wallarooai-12293194-vmss000002
    kotsadm-minio-0                            wallaroo           aks-wallarooai-12293194-vmss000002
    kotsadm-postgres-0                         wallaroo           aks-wallarooai-12293194-vmss000000
    minio-68bc498d6d-xm5ht                     wallaroo           aks-wallarooai-12293194-vmss000000
    model-insights-7dcccb976-ttz64             wallaroo           aks-wallarooai-12293194-vmss000000
    plateau-5b777686dd-8c69s                   wallaroo           aks-wallarooai-12293194-vmss000000
    postgres-6c5fff5c57-9hr4n                  wallaroo           aks-wallarooai-12293194-vmss000002
    prometheus-deployment-7dcb484c56-7jwq4     wallaroo           aks-wallarooai-12293194-vmss000000
    proxy-755778dccd-mwhwz                     wallaroo           aks-wallarooai-12293194-vmss000002
    python-api-787bcb7764-nvdb4                wallaroo           aks-wallarooai-12293194-vmss000002
    rest-api-677dc6bdcf-q9b62                  wallaroo           aks-wallarooai-12293194-vmss000002
    wallaroo-fluent-bit-standard-h7mrl         wallaroo           aks-wallarooai-12293194-vmss000002
    wallaroo-fluent-bit-standard-jss2d         wallaroo           aks-wallarooai-12293194-vmss000000
    wallaroo-fluent-bit-standard-l75cj         wallaroo           aks-wallarooai-12293194-vmss000001
    wallaroo-fluent-bit-standard-m55tk         wallaroo           aks-wallarooai-12293194-vmss000003
    wallaroo-telemetry-27687782-g6mhm          wallaroo           aks-wallarooai-12293194-vmss000001
    wallaroo-telemetry-27687783-xgqpm          wallaroo           aks-wallarooai-12293194-vmss000001
    wallaroo-telemetry-27687784-9b85g          wallaroo           aks-wallarooai-12293194-vmss000001
    

For other instructions on how to deploy or configure a Wallaroo instance, see the Wallaroo Operations Guides.