Skip to content
Back to skills

Rancher

DSecurity

Expert coverage of SUSE Rancher multi-cluster Kubernetes management: RKE2, K3s, Fleet GitOps, Harvester HCI, multi-cluster RBAC, and Provisioning v2. Use for \"Rancher\", \"RKE2\", \"K3s\", \"Fleet GitOps\", \"Harvester\", \"multi-cluster management\", \"cattle.io\", \"SUSE Kubernetes\".

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
devopsgobashsqlnodekubernetesawsgcpazuregitapi

Works with

  • cli
  • api

Security analysis

D59/100
  • criticalPipes output to a shell interpreter
  • mediumUses curl or wget to download content
  • criticalModifies startup scripts or system services for persistence
  • criticalDownloads and executes remote scripts — classic supply chain attack

Pro scans all 2 files and shows the line behind each finding

Scanned September 24, 2026

npx -y skills add chrishuffman5/domain-expert --skill rancher --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Rancher?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Rancher
[![Security: D — Skills Directory](https://www.skillsdirectory.com/api/skills/chrishuffman5-rancher/badge)](https://www.skillsdirectory.com/skills/chrishuffman5-rancher)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: rancher
description: "Expert coverage of SUSE Rancher multi-cluster Kubernetes management: RKE2, K3s, Fleet GitOps, Harvester HCI, multi-cluster RBAC, and Provisioning v2. Use for \"Rancher\", \"RKE2\", \"K3s\", \"Fleet GitOps\", \"Harvester\", \"multi-cluster management\", \"cattle.io\", \"SUSE Kubernetes\"."
license: MIT
---

# SUSE Rancher

This skill covers SUSE Rancher, the multi-cluster Kubernetes management platform, including:

- Rancher server architecture (management cluster, downstream clusters)
- RKE2 (enterprise-grade Kubernetes distribution, CIS hardened)
- K3s (lightweight Kubernetes for edge and IoT)
- Fleet GitOps (multi-cluster continuous delivery)
- Harvester HCI (hyperconverged infrastructure on Kubernetes)
- Provisioning v2 (CAPI-based cluster lifecycle management)
- Multi-cluster RBAC and project-based multi-tenancy
- Authentication integration (AD, LDAP, SAML, OIDC)
- Monitoring and alerting (per-cluster Prometheus/Grafana stacks)
- CIS Benchmark scanning

## How to Approach Tasks

1. **Classify** the request:
   - **Architecture** -- Load `references/architecture.md` for management cluster, RKE2, K3s, Fleet, Harvester
   - **Cluster provisioning** -- RKE2/K3s provisioning via Rancher, imported clusters, cloud-hosted clusters
   - **GitOps** -- Fleet configuration, GitRepo, BundleDeployment, multi-cluster targeting
   - **Multi-cluster** -- RBAC, Projects, cluster grouping, centralized monitoring
   - **Troubleshooting** -- Agent connectivity, cluster import issues, Fleet sync failures

2. **Identify context** -- Which distribution (RKE2, K3s, imported EKS/AKS/GKE)? On-prem or cloud? How many clusters? Ask if unclear.

3. **Load context** -- Read the reference file for deep technical detail.

4. **Apply** -- Provide Rancher UI paths, kubectl/Fleet YAML, RKE2/K3s CLI commands as appropriate.

5. **Validate** -- Suggest Rancher UI cluster status, `kubectl get clusters.management.cattle.io`, Fleet bundle status.

## Rancher Architecture Overview

```
Rancher Management Cluster (RKE2 or K3s)
  ├── Rancher Server (Helm chart deployment)
  │     ├── Authentication (AD, LDAP, SAML, GitHub, Google, Keycloak)
  │     ├── RBAC (global roles, cluster roles, project roles)
  │     ├── Cluster management (provision, import, monitor)
  │     └── App catalog (Helm charts, Fleet GitOps)
  ├── Fleet Controller
  │     ├── GitRepo watchers
  │     └── BundleDeployment reconcilers
  └── Rancher Agent (deployed to each managed cluster)
        ├── Cluster agent (deployment in cattle-system)
        └── Node agent (DaemonSet for node operations)
```

**Communication model**: downstream clusters run a Rancher agent that connects outbound to the Rancher server via WebSocket. No inbound firewall rules needed on downstream clusters.

## Kubernetes Distributions

### RKE2

Enterprise-grade Kubernetes distribution, FIPS 140-2 compliant, CIS hardened by default:

```bash
# Install RKE2 server (control plane)
curl -sfL https://get.rke2.io | sh -
systemctl enable rke2-server
systemctl start rke2-server

# Get kubeconfig
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml

# Install RKE2 agent (worker)
curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh -
# Configure /etc/rancher/rke2/config.yaml:
# server: https://<server-ip>:9345
# token: <node-token>
systemctl enable rke2-agent
systemctl start rke2-agent
```

**RKE2 features**:
- Built-in etcd (embedded, no external dependency)
- CIS Kubernetes Benchmark hardened by default
- FIPS 140-2 validated cryptographic modules
- Canal CNI (Calico for policy + Flannel for networking) by default; Cilium and Calico also supported
- containerd runtime
- Integrated audit logging
- Automatic certificate rotation

**Configuration** (`/etc/rancher/rke2/config.yaml`):
```yaml
token: my-shared-secret
tls-san:
  - my-cluster.example.com
  - 10.0.0.10
cni: cilium                          # canal (default), calico, cilium
profile: cis                         # CIS hardening profile
etcd-snapshot-schedule-cron: "0 */6 * * *"
etcd-snapshot-retention: 10
node-taint:
  - "CriticalAddonsOnly=true:NoExecute"   # for control plane nodes
```

### K3s

Lightweight Kubernetes for edge, IoT, and development:

```bash
# Install K3s server
curl -sfL https://get.k3s.io | sh -

# Install K3s agent
curl -sfL https://get.k3s.io | K3S_URL=https://<server>:6443 K3S_TOKEN=<token> sh -

# Get kubeconfig
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
```

**K3s features**:
- Single binary (<100MB), runs on ARM and x86_64
- Embedded SQLite (single server) or embedded etcd (HA)
- External datastore support: MySQL, PostgreSQL, etcd
- Built-in: containerd, Flannel, CoreDNS, Traefik ingress, local-path-provisioner, metrics-server
- Fully CNCF conformant
- Suitable for Raspberry Pi to production edge

**HA K3s** (embedded etcd):
```bash
# First server
curl -sfL https://get.k3s.io | K3S_TOKEN=mysecret sh -s - server --cluster-init

# Additional servers
curl -sfL https://get.k3s.io | K3S_TOKEN=mysecret sh -s - server \
  --server https://<first-server>:6443
```

**K3s vs RKE2**:

| Aspect | K3s | RKE2 |
|--------|-----|------|
| Target | Edge, IoT, dev | Enterprise production |
| Size | <100MB | ~220MB |
| Default CNI | Flannel | Canal |
| CIS hardening | Manual | Built-in |
| FIPS compliance | No | Yes |
| Default storage | SQLite | etcd |
| Ingress | Traefik | NGINX |

## Fleet GitOps

Fleet is Rancher's built-in GitOps engine for deploying to multiple clusters simultaneously:

### GitRepo

```yaml
apiVersion: fleet.cattle.io/v1alpha1
kind: GitRepo
metadata:
  name: myapp-config
  namespace: fleet-default
spec:
  repo: https://github.com/myorg/fleet-config
  branch: main
  paths:
  - apps/myapp
  targets:
  - name: production
    clusterSelector:
      matchLabels:
        env: production
  - name: staging
    clusterSelector:
      matchLabels:
        env: staging
  pollingInterval: 30s
```

### fleet.yaml

Per-directory configuration for Fleet:

```yaml
# fleet.yaml in the Git repository
defaultNamespace: production
helm:
  chart: ./charts/myapp
  releaseName: myapp
  values:
    replicaCount: 3
    image:
      tag: v2.0
  valuesFiles:
  - values-common.yaml
targetCustomizations:
- name: production
  clusterSelector:
    matchLabels:
      env: production
  helm:
    values:
      replicaCount: 5
      resources:
        requests:
          cpu: "500m"
          memory: "512Mi"
- name: staging
  clusterSelector:
    matchLabels:
      env: staging
  helm:
    values:
      replicaCount: 1
```

### Fleet Concepts

| Resource | Purpose |
|----------|---------|
| GitRepo | Defines a Git repository Fleet monitors |
| Bundle | Generated by Fleet from GitRepo content |
| BundleDeployment | Bundle applied to a specific cluster |
| Cluster | Represents a managed cluster (auto-created by Rancher) |
| ClusterGroup | Logical grouping of clusters for targeting |

### Fleet at Scale

Fleet is designed for hundreds to thousands of clusters:
- Batch deployments with configurable parallelism
- Drift detection and auto-remediation
- Per-cluster customization via `targetCustomizations`
- Support for Helm charts, Kustomize, and raw YAML
- OCI registry support for chart sources

## Cluster Provisioning (v2)

Provisioning v2 uses Cluster API (CAPI) under the hood:

```yaml
apiVersion: provisioning.cattle.io/v1
kind: Cluster
metadata:
  name: prod-rke2
  namespace: fleet-default
spec:
  kubernetesVersion: v1.35.x+rke2r1
  rkeConfig:
    machineGlobalConfig:
      cni: cilium
      profile: cis
    machinePools:
    - name: control-plane
      controlPlaneRole: true
      etcdRole: true
      quantity: 3
      machineConfigRef:
        kind: VmwarevsphereConfig
        name: cp-config
    - name: workers
      workerRole: true
      quantity: 5
      machineConfigRef:
        kind: VmwarevsphereConfig
        name: worker-config
```

**Supported infrastructure providers**: vSphere, AWS, Azure, GCP, DigitalOcean, Linode, Harvester.

## Multi-Cluster RBAC

### Role Hierarchy

```
Global Roles (cluster-independent)
  ├── Admin (full access to everything)
  ├── Restricted Admin (manage all clusters but not Rancher settings)
  └── Standard User (create clusters, manage own resources)

Cluster Roles (per-cluster)
  ├── Cluster Owner
  ├── Cluster Member
  └── Custom roles

Project Roles (per-project within a cluster)
  ├── Project Owner
  ├── Project Member
  ├── Read Only
  └── Custom roles
```

**Projects**: Rancher's concept for grouping namespaces within a cluster. Projects provide:
- Shared RBAC (one role binding applies to all namespaces in the project)
- Resource quotas (project-level resource limits)
- Network isolation (project-level NetworkPolicy)

## Monitoring

Rancher deploys per-cluster monitoring stacks via the Monitoring app (Helm chart):

```bash
# Install monitoring on a cluster via Rancher UI or CLI
helm install rancher-monitoring rancher-monitoring \
  --namespace cattle-monitoring-system \
  --create-namespace \
  --version <version>
```

Components deployed:
- Prometheus (metrics collection)
- Grafana (dashboards)
- Alertmanager (alert routing)
- Node Exporter (node metrics)
- kube-state-metrics (K8s object metrics)

Pre-built dashboards for: cluster overview, node metrics, workload metrics, etcd, API server.

## Harvester HCI

Hyperconverged infrastructure built on Kubernetes:

```
Harvester Cluster (RKE2-based)
  ├── KubeVirt (VM management as K8s resources)
  ├── Longhorn (distributed block storage)
  ├── Multus (multi-network support for VMs)
  └── Rancher integration (provision K8s clusters on Harvester VMs)
```

**Use case**: replace VMware vSphere with an open-source HCI platform that manages both VMs and containers from a single Kubernetes-based control plane.

```yaml
# VM in Harvester
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: ubuntu-vm
spec:
  running: true
  template:
    spec:
      domain:
        resources:
          requests:
            memory: 4Gi
            cpu: "2"
        devices:
          disks:
          - name: rootdisk
            disk:
              bus: virtio
          interfaces:
          - name: default
            masquerade: {}
      networks:
      - name: default
        pod: {}
      volumes:
      - name: rootdisk
        persistentVolumeClaim:
          claimName: ubuntu-rootdisk
```

## Common Patterns

### Management Cluster Sizing

| Managed Clusters | Rancher Server Resources |
|-----------------|-------------------------|
| 1-10 | 4 vCPU, 8 GB RAM |
| 10-50 | 8 vCPU, 16 GB RAM |
| 50-100 | 16 vCPU, 32 GB RAM |
| 100+ | 32 vCPU, 64 GB RAM |

**Recommendation**: run Rancher server on a dedicated RKE2 cluster with 3 control plane nodes for HA.

### Edge Deployment Pattern

```
Central Rancher Server
    ↓ (Fleet GitOps)
Edge K3s clusters (100s-1000s)
    ├── Connected mode: agent maintains WebSocket connection
    └── Disconnected mode: Fleet pre-stages configs, periodic sync
```

## Reference Files

- `references/architecture.md` -- Multi-cluster management internals, RKE2/K3s architecture, Fleet engine details, Harvester deep dive, authentication integration, CIS scanning. Read for architecture and design questions.

Files in this skill

  • SKILL.md11.1 KB
  • references/architecture.md12.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…