Skip to content

Kubernetes Cluster Overview

K3s Distribution

The cluster runs K3s, a lightweight certified Kubernetes distribution optimized for resource-constrained environments.

Version Information

  • K3s Version: v1.34.3
  • Container Runtime: containerd
  • CNI: Flannel (VXLAN)

Cluster Architecture

graph TB
    subgraph Control Plane
        API[API Server]
        ETCD[etcd]
        CM[Controller Manager]
        Sched[Scheduler]
    end

    subgraph Worker Nodes
        W1[Worker 1]
        W2[Worker 2]
        W3[Worker 3]
        W4[Worker 4]
    end

    API --> W1
    API --> W2
    API --> W3
    API --> W4

    subgraph Per Node
        Kubelet[kubelet]
        KubeProxy[kube-proxy]
        Containerd[containerd]
    end

Node Status

Node Role Status
master control-plane Ready
worker-1 worker Ready
worker-2 worker Ready
worker-3 worker Ready
worker-4 worker Ready

Installed Components

Core K3s Components

  • CoreDNS: Cluster DNS
  • Traefik: Ingress controller (disabled, using Cloudflare Tunnel)
  • Local Path Provisioner: Basic storage (supplemented by Longhorn)
  • Metrics Server: Resource metrics

Add-ons

Component Namespace Purpose
ArgoCD argocd GitOps continuous deployment
Longhorn longhorn-system Distributed block storage
Prometheus monitoring Metrics collection
Grafana monitoring Visualization
Elasticsearch monitoring Log storage
Kibana monitoring Log analysis

Cluster Access

kubectl Configuration

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

ArgoCD CLI

# Login to ArgoCD
argocd login argocd.ajandrews.pro

Resource Quotas

Default resource limits per namespace:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: default-quota
spec:
  hard:
    requests.cpu: "4"
    requests.memory: 8Gi
    limits.cpu: "8"
    limits.memory: 16Gi

Health Checks

Cluster Health

# Check node status
kubectl get nodes

# Check system pods
kubectl get pods -n kube-system

# Check component status
kubectl get componentstatuses

Common Issues

Issue Symptom Resolution
Node NotReady Node shows NotReady Check kubelet, network
Pod Pending Pods stuck pending Check resources, node selector
ImagePullBackOff Container can't pull Check registry credentials

Upgrades

K3s Upgrade Process

  1. Backup etcd data
  2. Upgrade master node
  3. Upgrade worker nodes (rolling)
  4. Verify all nodes Ready
# On master
curl -sfL https://get.k3s.io | sh -

# On workers
curl -sfL https://get.k3s.io | K3S_URL=https://master:6443 K3S_TOKEN=<token> sh -