Enable iSCSI support for Portworx CSI
- Add dm_round_robin kernel module for Pure Storage multipath - Uncomment and enable /etc/multipath.conf with Pure-specific settings - Add apply-iscsi-config.sh script for rolling worker node updates
This commit is contained in:
69
talos/talhelper/apply-iscsi-config.sh
Executable file
69
talos/talhelper/apply-iscsi-config.sh
Executable file
@@ -0,0 +1,69 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Apply iSCSI configuration to worker nodes
|
||||||
|
# This regenerates configs with the iscsi-tools extension and applies them
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "=========================================="
|
||||||
|
echo "Talos iSCSI Configuration Update"
|
||||||
|
echo "=========================================="
|
||||||
|
echo ""
|
||||||
|
echo "This will:"
|
||||||
|
echo " 1. Generate new Talos configs with iscsi-tools extension"
|
||||||
|
echo " 2. Apply configs to each worker node (one at a time)"
|
||||||
|
echo " 3. Reboot each node to load iSCSI modules"
|
||||||
|
echo " 4. Wait for each node to become Ready before continuing"
|
||||||
|
echo ""
|
||||||
|
read -p "Proceed? (y/N): " -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
echo "Aborted."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Step 1: Generating Talos configurations..."
|
||||||
|
talhelper genconfig
|
||||||
|
|
||||||
|
declare -A WORKERS=(
|
||||||
|
["jungle-cruise"]="10.1.71.69"
|
||||||
|
["haunted-mansion"]="10.1.71.70"
|
||||||
|
["peter-pans-flight"]="10.1.71.71"
|
||||||
|
)
|
||||||
|
|
||||||
|
for worker in jungle-cruise haunted-mansion peter-pans-flight; do
|
||||||
|
ip="${WORKERS[$worker]}"
|
||||||
|
echo ""
|
||||||
|
echo "=========================================="
|
||||||
|
echo "Updating $worker ($ip)..."
|
||||||
|
echo "=========================================="
|
||||||
|
|
||||||
|
echo "Applying configuration (will reboot)..."
|
||||||
|
talosctl apply-config --nodes ${ip} \
|
||||||
|
--file clusterconfig/fastpass-${worker}.yaml \
|
||||||
|
--mode=reboot
|
||||||
|
|
||||||
|
echo "Waiting for $worker to reboot and become Ready..."
|
||||||
|
sleep 30 # Give it time to start rebooting
|
||||||
|
kubectl wait --for=condition=Ready node/${worker} --timeout=10m
|
||||||
|
|
||||||
|
echo "✓ $worker is back up."
|
||||||
|
|
||||||
|
if [ "$worker" != "peter-pans-flight" ]; then
|
||||||
|
echo "Sleeping 30s before next node..."
|
||||||
|
sleep 30
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=========================================="
|
||||||
|
echo "✓ All workers updated!"
|
||||||
|
echo "=========================================="
|
||||||
|
echo ""
|
||||||
|
echo "Verifying iSCSI modules on jungle-cruise..."
|
||||||
|
kubectl debug node/jungle-cruise -it --image=busybox -- cat /proc/modules | grep -E "iscsi|multipath" || echo "Modules check failed"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Next steps:"
|
||||||
|
echo " 1. Verify iSCSI modules loaded on all nodes"
|
||||||
|
echo " 2. Proceed with Portworx CSI installation"
|
||||||
@@ -128,6 +128,7 @@ worker:
|
|||||||
modules:
|
modules:
|
||||||
- name: iscsi_tcp
|
- name: iscsi_tcp
|
||||||
- name: dm_multipath
|
- name: dm_multipath
|
||||||
|
- name: dm_round_robin
|
||||||
|
|
||||||
kubelet:
|
kubelet:
|
||||||
extraMounts:
|
extraMounts:
|
||||||
@@ -148,29 +149,30 @@ worker:
|
|||||||
sysctls:
|
sysctls:
|
||||||
net.ipv4.conf.all.arp_announce: "2"
|
net.ipv4.conf.all.arp_announce: "2"
|
||||||
net.ipv4.conf.all.arp_ignore: "1"
|
net.ipv4.conf.all.arp_ignore: "1"
|
||||||
# files:
|
|
||||||
# - content: |
|
files:
|
||||||
# defaults {
|
- content: |
|
||||||
# polling_interval 10
|
defaults {
|
||||||
# }
|
polling_interval 10
|
||||||
# devices {
|
}
|
||||||
# device {
|
devices {
|
||||||
# vendor "PURE"
|
device {
|
||||||
# product "FlashArray"
|
vendor "PURE"
|
||||||
# path_selector "queue-length 0"
|
product "FlashArray"
|
||||||
# path_grouping_policy group_by_prio
|
path_selector "queue-length 0"
|
||||||
# prio alua
|
path_grouping_policy group_by_prio
|
||||||
# path_checker tur
|
prio alua
|
||||||
# fast_io_fail_tmo 10
|
path_checker tur
|
||||||
# user_friendly_names no
|
fast_io_fail_tmo 10
|
||||||
# no_path_retry 0
|
user_friendly_names no
|
||||||
# hardware_handler "1 alua"
|
no_path_retry 0
|
||||||
# dev_loss_tmo 600
|
hardware_handler "1 alua"
|
||||||
# failback immediate
|
dev_loss_tmo 600
|
||||||
# }
|
failback immediate
|
||||||
# }
|
}
|
||||||
# path: /etc/multipath.conf
|
}
|
||||||
# op: create
|
path: /etc/multipath.conf
|
||||||
|
op: create
|
||||||
|
|
||||||
# ─── Nodes ───────────────────────────────────────────────────────────────────
|
# ─── Nodes ───────────────────────────────────────────────────────────────────
|
||||||
nodes:
|
nodes:
|
||||||
|
|||||||
Reference in New Issue
Block a user