docs(CLAUDE.md): update scheduling topology - all 3 nodes now schedulable
TOPOLOGY CHANGE: - All 3 control-plane nodes now schedulable (no NoSchedule taints) - Pod distribution: ~59 on cp-1, ~21 on cp-2, ~23 on cp-3 - Better resource utilization across cluster ADDED HARD RULE: - Control-plane scheduling controlled via Terraform - terraform.tfvars → allow_scheduling = true/false - Never manual kubectl taint (Talos will revert) - Workflow: terraform apply → talosctl apply-config IMPLEMENTATION: - Terraform: Set allow_scheduling=true for cp-2, cp-3 - Applied via talosctl --mode no-reboot (no disruption) - Verified: kubectl get nodes shows no taints
This commit is contained in:
@@ -4,13 +4,14 @@
|
|||||||
|
|
||||||
| Node | IP | Zone | Scheduling | Storage |
|
| Node | IP | Zone | Scheduling | Storage |
|
||||||
|------|----|----|-----------|---------|
|
|------|----|----|-----------|---------|
|
||||||
| `talos-cp-1` | .213 | az-a | schedulable (all workloads) | Longhorn replica |
|
| `talos-cp-1` | .213 | az-a | schedulable | Longhorn replica |
|
||||||
| `talos-cp-2` | .163 | az-b | dedicated (`NoSchedule`) | Longhorn replica |
|
| `talos-cp-2` | .163 | az-b | schedulable | Longhorn replica |
|
||||||
| `talos-cp-3` | .166 | az-c | dedicated (`NoSchedule`) | Longhorn replica |
|
| `talos-cp-3` | .166 | az-c | schedulable | Longhorn replica |
|
||||||
|
|
||||||
3 voting etcd members peering on the LAN. All 3 nodes run Longhorn with 3-replica
|
3 voting etcd members peering on the LAN. All 3 nodes run Longhorn with 3-replica
|
||||||
HA storage (verified: all 17 PVCs have replicas across all nodes). Only `talos-cp-1`
|
HA storage (verified: all 17 PVCs have replicas across all nodes). All 3 nodes are
|
||||||
is schedulable for workloads (cp-2/cp-3 are control-plane only). Full detail + gotchas
|
schedulable for workloads (no `NoSchedule` taints) for better resource utilization.
|
||||||
|
Pod distribution: ~59 pods on cp-1, ~21 on cp-2, ~23 on cp-3. Full detail + gotchas
|
||||||
in `USAGE.md` and memory `reference_talos_etcd_and_ca_gotchas`.
|
in `USAGE.md` and memory `reference_talos_etcd_and_ca_gotchas`.
|
||||||
|
|
||||||
## Deployment Model: ArgoCD GitOps (helmfile is retired)
|
## Deployment Model: ArgoCD GitOps (helmfile is retired)
|
||||||
@@ -48,6 +49,17 @@ the dedicated CPs (.163/.166), never the data node.
|
|||||||
template — without it Talos advertises on the WireGuard IP and new members hang
|
template — without it Talos advertises on the WireGuard IP and new members hang
|
||||||
as non-promoting etcd learners.
|
as non-promoting etcd learners.
|
||||||
|
|
||||||
|
🔴 **Control-plane scheduling controlled via Terraform.** To enable/disable workload
|
||||||
|
scheduling on a control-plane node, edit `terraform/terraform.tfvars` →
|
||||||
|
`controlplane_configs.<node>.allow_scheduling` (true/false), then:
|
||||||
|
```bash
|
||||||
|
cd terraform
|
||||||
|
terraform fmt && terraform apply
|
||||||
|
talosctl apply-config --nodes <node-ip> --file ../cluster-config/<node>.yaml --mode no-reboot
|
||||||
|
```
|
||||||
|
Do NOT manually `kubectl taint` — Talos will revert on next reconcile. All changes
|
||||||
|
must flow through Terraform to persist across reboots.
|
||||||
|
|
||||||
🔴 **ALWAYS run `terraform fmt` after any terraform code changes.** Before commit:
|
🔴 **ALWAYS run `terraform fmt` after any terraform code changes.** Before commit:
|
||||||
```bash
|
```bash
|
||||||
terraform fmt -recursive terraform/
|
terraform fmt -recursive terraform/
|
||||||
|
|||||||
Reference in New Issue
Block a user