Installing DataCore Puls8 on Talos

Explore this Page

Overview

This document provides detailed instructions for installing DataCore Puls8 on a Kubernetes cluster running on Talos. The setup includes required configuration changes to Talos control plane and worker nodes, enabling support for pod security exemptions, Huge Pages, node labeling, and volume mount paths. Additionally, it outlines the correct procedures for upgrading Talos to maintain system stability.

Configuration changes can be applied either at the time of cluster creation or on already-running Talos worker nodes.

Requirements

Ensure the following requirements are met before installing DataCore Puls8 on Talos:

Huge Pages Configuration

  • 2MiB Huge Pages must be enabled on storage nodes.
  • Each node should reserve at least 1024 Huge Pages (2GiB total) exclusively for the IO Engine.

Node Labeling

All nodes that will participate in the Replicated PV Mayastor storage pool must be labeled appropriately.

Data Mount Path Access

Kubelet on each storage node must be configured to allow Replicated PV Mayastor components access to the required host directories. Specifically, the /var/local path should be mounted with appropriate access settings.

Talos Configuration

Control Plane Configuration: Pod Security Exemptions

By default, Talos applies a baseline Pod Security admission profile across all namespaces except kube-system. This restricts Replicated PV Mayastor's access to system resources. To allow Replicated PV Mayastor to function correctly, create a configuration file with the necessary exemptions.

Copy
cp.yaml
cluster:
  apiServer:
    admissionControl:
      - name: PodSecurity
        configuration:
          apiVersion: pod-security.admission.config.k8s.io/v1beta1
          kind: PodSecurityConfiguration
          exemptions:
            namespaces:
              - openebs

Refer to the Talos Documentation for information on Pod Security admission settings.

Worker Node Configuration

Create a separate configuration file for each worker node to apply the required system settings.

Copy
wp.yaml
machine:
  sysctls:
    vm.nr_hugepages: "1024"
  nodeLabels:
    openebs.io/engine: "mayastor"
  kubelet:
    extraMounts:
      - destination: /var/local
        type: bind
        source: /var/local
        options:
          - bind
          - rshared
          - rw

This configuration:

  • Sets HugePages count
  • Adds the required node label
  • Configures Kubelet to mount /var/local for host path access

Applying Talos Configurations

You can apply the above configurations in three different ways:

Using 'talosctl gen config' During Cluster Creation

Use the following command to generate the cluster configuration with patches applied:

Copy
Generate Configuration
talosctl gen config talos-k8s-gcp-tutorial https://mytaloscluster:443 \
  --config-patch-control-plane @cp.yaml \
  --config-patch-worker @wp.yaml

Patching a Running Node

If your cluster is already running, apply the configurations using talosctl patch.

Copy
Patch Existing Control Plane Node
talosctl patch --mode=no-reboot machineconfig -n <control plane node ip> --patch @cp.yaml
Copy
Patch Existing Worker Node
talosctl patch --mode=no-reboot machineconfig -n <worker-node-ip> --patch @wp.yaml

Editing Machine Configuration on a Running Node

You can also edit the node’s configuration directly using talosctl edit.

Copy
Edit Node Configuration
talosctl edit -n <node ip> machineconfig --talosconfig <path to talosconfig file>

Post-Configuration: Restart Kubelet or Reboot

If you modify the HugePages setting (vm.nr_hugepages) on a running node, you must either restart the kubelet service or reboot the node. Replicated PV Mayastor will not function correctly if the available HugePages reported by Kubelet are below the required minimum.

Copy
Restart Kubelet
talosctl -n <node-ip> service kubelet restart

Install DataCore Puls8 on Talos

Once the system is configured, proceed with installing DataCore Puls8 with Mayastor using Helm.

Copy
Helm Installation Command
helm install openebs --namespace openebs openebs/openebs --create-namespace --set openebs-crds.csi.volumeSnapshots.enabled=false

Upgrading Talos

Talos offers a robust and controlled upgrade mechanism. Follow the appropriate instructions based on your Talos version.

Talos Version 1.7 or Lower

For Talos 1.7 and earlier, use the --preserve flag to retain node state during upgrades.

Copy
Upgrade Node with Preserve Flag
talosctl -n <node-ip> upgrade --preserve --image $IMAGE_URL

If you omit the --preserve flag, Talos will reset node state, deleting etcd and other important data.

Verify Upgrade.

Copy
Verify Upgrade
talosctl -n <node-ip> version

Repeat this process for all nodes in the cluster.

Talos Version 1.8 or Higher

From version 1.8 onwards, Talos automatically preserves node state during upgrades. There is no need to explicitly specify the --preserve flag.

Refer the Talos Upgrades Documentation for more details.

Benefits of Using DataCore Puls8 with Talos

  • Immutable and Secure OS (Talos): Talos is an API-managed, minimal, and immutable Linux distribution designed for Kubernetes. Its secure design enhances the reliability and predictability of Mayastor deployments by minimizing OS-level drift and vulnerabilities.
  • Consistent and Declarative Configuration: Talos supports fully declarative and auditable configuration management. This aligns well with Mayastor’s infrastructure-as-code approach, making it easy to version, replicate, and automate complex storage configurations.
  • Performance-Optimized Storage: DataCore Puls8 is built for speed. It leverages SPDK and NVMe for low-latency, high-throughput block storage. Combined with Talos's lightweight, optimized OS, this pairing is ideal for performance-critical workloads.

Learn More