Kubernetes Cluster Overview
K3s Distribution
The cluster runs K3s, a lightweight certified Kubernetes distribution optimized for resource-constrained environments.
- 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
- Backup etcd data
- Upgrade master node
- Upgrade worker nodes (rolling)
- 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 -