Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions content/docs/kubernetes/advanced/gpu-config.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
sidebar_position: 1
title: GPU Clusters on Civo Kubernetes
description: Learn more about what GPU Types are supported on Civo Kubernetes. When using GPU workloads on Civo Kubernetes clusters, you may wish to install the GPU operator in your cluster.
---
Expand Down
1 change: 1 addition & 0 deletions content/docs/kubernetes/advanced/managing-node-pools.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
sidebar_position: 2
title: Managing a Kubernetes cluster's node pools
description: Learn how to create and manage node pools in your Kubernetes cluster on Civo. Add new node pools or delete existing ones via Civo Dashboard, CLI or Terraform.
---
Expand Down
116 changes: 116 additions & 0 deletions content/docs/kubernetes/advanced/migrate-from-talos-to-k3s.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
---
sidebar_position: 9
title: Migrate from Talos to K3S
description: Learn how to migrate your services from a Talos Kubernetes cluster to a K3s cluster on Civo, with systematic steps and best practices.
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

<head>
<title>Migrate from Talos to K3S | Civo Documentation</title>
</head>

## Overview

To migrate your services from a Talos Kubernetes cluster to a K3s cluster, here's a systematic approach:

### Prepare the K3s Cluster

First, ensure your K3s cluster is ready:

- Install K3s on your target nodes
- Configure networking (CNI) and storage classes to match your requirements
- Set up any necessary ingress controllers

### Inventory Your Current Services

Extract all your current resources from the Talos cluster:

```bash
# Get all namespaces (excluding system ones)
kubectl get namespaces -o json | jq -r '.items[].metadata.name' | grep -v kube- | grep -v default

# For each namespace, export resources
kubectl get all,configmap,secret,pvc,ingress -n <namespace> -o yaml > namespace-resources.yaml
```

### Handle Persistent Data

This is often the trickiest part:

For StatefulSets: You'll need to backup and restore the persistent volumes

**Options:**
- Use tools like Velero for backup/restore
- Manually snapshot and copy data
- Use your storage provider's snapshot capabilities

### Export Resources Systematically

Create a migration script to export resources:

```bash
# Export deployments, services, configmaps, secrets
kubectl get deployments,services,configmaps,secrets,ingresses,statefulsets \
--all-namespaces -o yaml > all-resources.yaml
```

### Clean Up Exported Manifests

Remove cluster-specific metadata:

- Remove `resourceVersion`, `uid`, `selfLink`
- Remove `status` sections
- Update any cluster-specific annotations
- Adjust storage class names if different

### Handle Secrets and ConfigMaps First

Apply these to your K3s cluster before the apps:

```bash
kubectl apply -f secrets.yaml
kubectl apply -f configmaps.yaml
```

### Update Service Definitions

- Modify LoadBalancer services if using different providers
- Update ingress annotations for your K3s ingress controller
- Adjust any cluster-specific configurations

### Deploy to K3s

Apply resources in order:

1. Namespaces
2. ConfigMaps and Secrets
3. PVCs
4. Deployments/StatefulSets
5. Services
6. Ingresses

## Migration Strategies

### Blue-Green Migration (recommended)

- Keep both clusters running
- Migrate services one by one
- Update DNS/load balancers to point to K3s
- Decommission Talos cluster after verification

### Big Bang Migration

- Take a maintenance window
- Stop services on Talos
- Migrate all data
- Start everything on K3s

## Key Considerations

- **Networking**: Ensure your K3s cluster can reach the same external resources
- **DNS**: Update any hardcoded cluster DNS names
- **Certificates**: Migrate or regenerate TLS certificates
- **Monitoring**: Update your monitoring to point to the new cluster
- **GitOps**: If using Flux/ArgoCD, update the target cluster
1 change: 1 addition & 0 deletions content/docs/kubernetes/advanced/scaling-nodes.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
sidebar_position: 3
title: Scaling a Kubernetes cluster's nodes
description: Learn how to scale your Kubernetes cluster's nodes up or down on Civo, with easy steps on the Civo Dashboard, CLI or Terraform. Click for more information.
---
Expand Down
2 changes: 1 addition & 1 deletion content/docs/kubernetes/create-a-cluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ The numbered sections give you options for the cluster details, complete the req

:::note

Flannel and Talos Linux support are being deprecated.
Talos Linux support is being deprecated.

:::

Expand Down