Installing DataCore Puls8 on Talos
Explore this Page
- Overview
- Requirements
- Talos Configuration
- Applying Talos Configurations
- Post-Configuration: Restart Kubelet or Reboot
- Install DataCore Puls8 on Talos
- Upgrading Talos
- Benefits of Using DataCore Puls8 with Talos
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.
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.
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:
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
.
talosctl patch --mode=no-reboot machineconfig -n <control plane node ip> --patch @cp.yaml
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
.
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.
Install DataCore Puls8 on Talos
Once the system is configured, proceed with installing DataCore Puls8 with Mayastor using Helm.
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.
If you omit the --preserve
flag, Talos will reset node state, deleting etcd and other important data.
Verify Upgrade.
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