A hands-on learning repository for mastering Linux System Administration and Kubernetes fundamentals
Build a rock-solid foundation for your DevOps career by mastering the essentials: Linux administration and Kubernetes Pod management. This repository provides structured, lab-focused tutorials designed for self-learners, RHCSA candidates, and aspiring DevOps engineers.
Master Linux system administration from the ground up β the essential foundation for every DevOps engineer.
Topics Covered:
- Fundamentals: Lab setup with Proxmox & Cloud-Init, command line mastery, shell fundamentals
- File Management: File operations, globbing, permissions & security (ACLs, special bits)
- User Administration: User & group management, authentication
- Process Control: Process management, system monitoring, performance tuning
- Storage Management: Disk management, filesystem configuration (ext2/3/4, XFS)
- Advanced Storage: LVM (snapshots, thin provisioning, migration, merge/split, restoration)
- RAID Systems: RAID-0, RAID-1, RAID-5, RAID-6, RAID-10 configuration & management
- Advanced Disk Features: VDO compression, disk quotas, LUKS encryption
- System Administration: Kernel management, boot recovery, kernel panic resolution
- Logging & Performance: System logging, performance monitoring & tuning
- Package Management: RPM, DNF, APT, source compilation
- Networking: nmcli configuration, NIC teaming, firewalld
- Virtualization: KVM setup & management, Cockpit web dashboard
- Security: SELinux (contexts, MLS/MCS, troubleshooting, file contexts)
- Services: DNS (BIND), Apache with multi-site SSL, MySQL, Squid proxy, load balancing, Nginx, NFS
- DevOps Tools: Git fundamentals, version control
Comprehensive Kubernetes learning from Pod basics to production-ready deployments and advanced networking.
Topics Covered:
- Pod Fundamentals: Pod lifecycle, YAML structure, container ports & networking
- Pod Configuration: Init containers, secrets management, environment variables
- Resource Management: CPU/Memory requests & limits, Quality of Service (QoS) classes
- QoS Deep Dive: BestEffort, Burstable, and Guaranteed classes
- Troubleshooting: Pending pods, OOMKilled errors, scheduling issues, debugging techniques
- Scheduling & Placement: Node selection, nodeSelector, nodeName, node affinity (required/preferred)
- Advanced Scheduling: Taints & tolerations, pod anti-affinity, NotIn operator
- Priority & Preemption: Pod priority classes, preemption policies
- Deployments: Replica management, rolling updates, production best practices
- Update Strategies: RollingUpdate vs Recreate, maxSurge, maxUnavailable
- Autoscaling: Horizontal Pod Autoscaler (HPA v1 & v2), autoscaling strategies
- Health & Lifecycle: Liveness probes, readiness probes, lifecycle hooks
- Services: ClusterIP, NodePort, service discovery, load balancing
- Resource Governance: ResourceQuotas, LimitRange (CPU/Memory constraints)
- Storage: emptyDir, hostPath, PersistentVolumeClaims (PVC), dynamic provisioning
- Configuration Management: ConfigMaps, Secrets, volume mounts, stringData best practices
- Security: ConfigMap/Secret immutability, access control
- Network Policies: Ingress/egress rules, default deny policies, pod isolation
- Advanced Networking: NetworkPolicy troubleshooting, complex rule combinations
- Ingress Controllers: Traefik routing (K3s), TLS/SSL configuration, path-based routing
- Ingress Advanced: Annotations, Gateway API preview, future of K8s networking
β
Aspiring DevOps Engineers β Build the Linux + Kubernetes foundation
β
System Administrators β Transition to cloud-native technologies
β
RHCSA/CKA Candidates β Hands-on practice for certifications
β
Self-Learners β Structured path with lab exercises
Linux Basics β Shell Mastery β System Admin β Storage β Kubernetes Pods β Resource Management β Deployments β Networking
Recommended Order:
- Linux/01-Basics: Lab setup, command line & shell fundamentals
- Linux/02-System-Administration: Users, security, processes, basic storage
- Linux/03-Advanced-Storage: Filesystems, LVM, RAID
- Kubernetes/01-Pod-Fundamentals: Pod basics, init containers, secrets
- Kubernetes/02-Resource-Management: Resource management, QoS, troubleshooting
- Kubernetes/04-Deployments-Scaling: Deployments, scaling, autoscaling
- Kubernetes/05-Health-Services: Health probes, services
Already comfortable with Linux? Jump to Kubernetes with this focused path:
- Quick Review: Linux/04-System-Management (logging, performance, packages)
- K8s Fundamentals: Kubernetes/01-Pod-Fundamentals (Pods, ports, init containers)
- Resource Management: Kubernetes/02-Resource-Management (requests/limits, QoS classes)
- Scheduling: Kubernetes/03-Scheduling (node selection, affinity, taints)
- Production Ready: Kubernetes/04-Deployments-Scaling (Deployments, HPA, rolling updates)
- Networking: Kubernetes/09-Network-Policies (NetworkPolicy, Ingress)
For experienced practitioners looking to master advanced topics:
Linux Advanced:
- Storage Deep Dive: Linux/03-Advanced-Storage (LVM, RAID, VDO, quotas, LUKS)
- System Hardening: Linux/06-Virtualization-Security (SELinux mastery)
- Networking: Linux/05-Networking (nmcli, NIC teaming, firewalld)
- Services: Linux/07-Services (DNS, web servers, load balancing, monitoring)
Kubernetes Advanced:
- Advanced Scheduling: Kubernetes/03-Scheduling (Anti-affinity, priority, preemption)
- Production Deployments: Kubernetes/04-Deployments-Scaling (Best practices, HPA v2, troubleshooting)
- Resource Governance: Kubernetes/06-Resource-Governance (ResourceQuotas, LimitRange)
- Storage: Kubernetes/07-Storage (PVC, dynamic provisioning, scaling)
- Configuration: Kubernetes/08-Configuration (ConfigMaps, Secrets, best practices)
- Network Security: Kubernetes/09-Network-Policies (NetworkPolicy, isolation, troubleshooting)
DevOpsLabX/
β
βββ Linux/ # 57 Linux tutorials
β βββ Basics (01-09)
β β βββ 01 - Build_a_Proxmox_VM_Factory.md
β β βββ 02 - RHCSA__DevOps_Foundation.md
β β βββ 03 - Mastering_the_Linux_CLI.md
β β βββ 04 - Command_Line_Demystified.md
β β βββ 05 - Working_with_Files_in_Linux.md
β β βββ 06 - Linux_Shell_Fundamentals.md
β β βββ 07 - Linux_Control_Operators.md
β β βββ 08 - Shell__Variables___History.md
β β βββ 09 - Mastering_File_Globbing.md
β β
β βββ System Administration (010-014)
β β βββ 010 - Linux_User___Group_Guide.md
β β βββ 011 - File_Security_in_Linux.md
β β βββ 012 - Mastering_Linux_Processes.md
β β βββ 013 - Mastering_Linux_Disks.md
β β βββ 014 - Linux_Filesystem_Management.md
β β
β βββ Advanced Storage (015-030)
β β βββ 015 - Linux_FS_Migration__EXT2-EXT4.md
β β βββ 016 - Mastering_Linux_Storage.md
β β βββ 017-023 - LVM (Resizing, Snapshots, Restore, Merge/Split, Migration, Thin Provisioning)
β β βββ 024-028 - RAID (RAID-0, RAID-1, RAID-5, RAID-6, RAID-10)
β β βββ 029 - Getting_Started_with_VDO.md
β β βββ 030 - Disk_Quota_Management.md
β β βββ 031 - Disk_Encryption_with_LUKS.md
β β
β βββ System Management (032-037)
β β βββ 032 - Resolving_Kernel_Panic.md
β β βββ 033 - CentOS_8__boot_Recovery.md
β β βββ 034 - RHEL_8_Kernel_Installation.md
β β βββ 035 - Mastering_Linux_Logs.md
β β βββ 036 - Linux_Perf.md
β β βββ 037 - Linux_Package_Management.md
β β
β βββ Networking (038-041)
β β βββ 038 - RHEL_9_Networking__nmcli.md
β β βββ 039 - RHEL_9_nmcli_Guide.md
β β βββ 040 - RHEL_9_NIC_Teaming.md
β β βββ 041 - Firewalld_Fundamentals.md
β β
β βββ Virtualization & Security (042-048)
β β βββ 042 - Cockpit__Server_Web_Dashboard.md
β β βββ 043 - KVM__Zero_to_Host.md
β β βββ 044-048 - SELinux (Fundamentals, File Contexts, MLS/MCS)
β β
β βββ Services (049-058)
β βββ 049 - DNS_Config_in_Linux_w__BIND.md
β βββ 050 - Apache__Multi-Site_SSL.md
β βββ 051 - MySQL_Server_on_RHEL_8.md
β βββ 052 - Squid_Proxy_Configuration.md
β βββ 053 - Building_a_Web_Load_Balancer.md
β βββ 054 - Unlocking_Nginx.md
β βββ 056 - Setting_Up_NFS.md
β βββ 057 - Monitoring_Linux_Systems.md
β βββ 058 - Git__The_Dev_s_Time_Machine.md
β
βββ Kubernetes/ # 68 Kubernetes tutorials
βββ Pod Fundamentals (1.x-2.x)
β βββ 1.1 Demystifying_Kubernetes_Pods.md
β βββ 1.2 K8s_Ports__Myth_vs.md
β βββ 2.1 Kubernetes_Init_Containers.md
β βββ 2.2 Kubernetes_Pod_Passwords.md
β
βββ Resource Management (3.x)
β βββ 3.1 K8s__Taming_App_Resources.md
β βββ 3.1 Requests vs. Limits.md
β βββ 3.2 K8s_QoS__BestEffort_s_Risk.md
β βββ 3.3 Kubernetes__Burstable_Pods.md
β βββ 3.4 Guaranteed_QoS_Class.md
β
βββ Troubleshooting (4.x)
β βββ 4.1 The_Pending_Pod.md
β βββ 4.2 Kubernetes_OOMKilled_Guide.md
β
βββ Scheduling & Placement (5.x)
β βββ 5.1 The_`nodeName`_Trap.md
β βββ 5.2 K8s_Node_Selection.md
β βββ 5.3-5.4 - Node Affinity (Required/Preferred)
β βββ 5.5 Kubernetes__The_NotIn_Operator.md
β βββ 5.6 K8s_Pod_Anti-Affinity.md
β βββ 5.7 Kubernetes_Affinity__Power_of_OR.md
β βββ 5.8 Taints___Tolerations.md
β βββ 5.9 Pod_Priority_&_Preemption.md
β
βββ Deployments & Scaling (6.x)
β βββ 6.1 Kubernetes_Deployments.md
β βββ 6.2 Kubernetes__Orders_vs_Goals.md
β βββ 6.3 Production-Ready_K8s.md
β βββ 6.4 Kubernetes_Rolling_Updates.md
β βββ 6.5 K8s__Pod_Anti-Affinity.md
β βββ 6.6 K8s__Deployments_vs_Services.md
β βββ 6.7 Default_to_Defended.md
β βββ 6.8 Mastering_Kubernetes_HPA.md
β βββ 6.9 Kubernetes_HPA__V1_to_V2.md
β βββ 6.10 Taming_Kubernetes_Autoscaling.md
β βββ 6.11 Kubernetes_Troubleshooting.md
β
βββ Health & Services (7.x)
β βββ 7.1 Kubernetes_Liveness_Probes.md
β βββ 7.2 K8s_Health_Probes.md
β βββ 7.3 Mastering_Lifecycle_Hooks.md
β βββ 7.4 Mastering_ClusterIP_Service.md
β βββ 7.5 Unlocking_k3s_with_NodePort.md
β
βββ Resource Governance (8.x)
β βββ 8.1 Taming_K8s_ResourceQuotas.md
β βββ 8.2 Kubernetes_Resource_Quotas.md
β βββ 8.3 K8s_LimitRange_Rulebook.md
β βββ 8.4 K8s__The_CPU_LimitRange.md
β βββ 8.5 K8s_Memory_LimitRange.md
β
βββ Storage (9.x)
β βββ 9.1 Kubernetes__The_emptyDir_Volume.md
β βββ 9.2 Kubernetes__The_Shared_Mailbox.md
β βββ 9.3 hostPath__A_Double-Edged_Sword.md
β βββ 9.4 Kubernetes_hostPath_Deception.md
β βββ 9.5 PVC__Storage_Matchmaker.md
β βββ 9.6 Dynamic_Kubernetes_Storage.md
β βββ 9.7 The_K8s_Scaling_Trap.md
β βββ 9.8 The_Ultimate_NodePort_Guide.md
β
βββ Configuration (11.x)
β βββ 11.1 Kubernetes_ConfigMaps.md
β βββ 11.2 Kubernetes_Secrets.md
β βββ 11.3 K8s_Config__Volume_Mounts.md
β βββ 11.4 Always_Use_`stringData`.md
β βββ 11.5 Lock_Down_K8s_Configs.md
β βββ 11.6 K8s_Config___Secrets.md
β
βββ Network Policies (12.x)
β βββ 12.1 Kubernetes_NetworkPolicy.md
β βββ 12.2 Kubernetes_NetworkPolicy.md
β βββ 12.3 Kubernetes_Egress_Rules.md
β βββ 12.4 Kubernetes_Default_Deny.md
β βββ 12.5 Advanced_NetworkPolicy.md
β βββ 12.6 NetworkPolicy_Troubleshooting.md
β
βββ Ingress (13.x)
βββ 13.1 Ingress__Cluster_Front_Door.md
βββ 13.2 K3s_Ingress_Routing_with_Traefik.md
βββ 13.3 Securing_Kubernetes_Ingress.md
βββ 13.4 Ingress_Path-Based_Routing.md
βββ 13.5 Ingress__Power_of_Annotations.md
βββ 13.6 Future_of_K8s_Networking.md
Every tutorial follows a consistent, hands-on approach:
β
Lab Exercises β Practice every concept immediately
β
Real-World Scenarios β Troubleshooting guides based on actual issues
β
Best Practices β Learn the right way from the start
β
Safety Warnings β Avoid common pitfalls and destructive mistakes
β
Cheat Sheets β Quick reference tables for commands
"If Linux is the foundation, RHCSA is the blueprint β and DevOps is the skyscraper you'll build on top of it."
For Linux Tutorials:
- A Linux system (Ubuntu, RHEL, CentOS, or Proxmox for lab setup)
- Terminal access
- Curiosity and willingness to experiment!
For Kubernetes Tutorials:
- Basic Linux command line knowledge
- A Kubernetes cluster (Minikube, kind, or cloud provider)
kubectlinstalled
-
Clone the repository:
git clone https://github.com/YourUsername/DevOpsLabX.git cd DevOpsLabX -
Start with Linux basics:
# Read the foundation cat Linux/02\ -\ RHCSA__DevOps_Foundation.md # Begin hands-on learning cat Linux/03\ -\ Mastering_the_Linux_CLI.md
-
Follow the labs in each file β every tutorial includes step-by-step exercises
Throughout this repository, you'll find critical warnings to prevent data loss and system issues:
- β Never run
rm -rfwithout testing withlsfirst - β Always use
su -(not justsu) for proper environment - β Test
/etc/fstabwithmount -abefore rebooting - β Never run
fsckon mounted filesystems
β οΈ Memory overuse = immediate kill (OOMKilled)β οΈ BestEffort pods = first to be evicted under pressureβ οΈ nodeNamebypasses scheduler = dangerous in productionβ οΈ Always set resource requests/limits in production
This repository aligns with industry-recognized certifications:
| Certification | Relevant Content |
|---|---|
| RHCSA (Red Hat Certified System Administrator) | Linux files 02-014 |
| CKA (Certified Kubernetes Administrator) | All Kubernetes files |
| CKAD (Certified Kubernetes Application Developer) | Kubernetes 1.x, 2.x, 3.x |
- Proxmox, Cloud-Init, Bash scripting
- File systems: ext2/4, XFS
- Partitioning: fdisk, gdisk, parted
- Security: umask, ACLs, special permission bits
- Process management: ps, top, kill, systemd
- Pods, Namespaces, Labels, Selectors
- Resource management (CPU/Memory)
- QoS classes (BestEffort, Burstable, Guaranteed)
- Init containers, Secrets
- Troubleshooting: kubectl describe, logs, top
- Everything is a file β Unified system model
- Shell expansion β How Bash interprets commands
- Permissions & ACLs β Fine-grained access control
- Process signals β SIGTERM vs SIGKILL
- Filesystem hierarchy β Understanding
/etc/fstab,/proc,/sys
- Pod lifecycle β Ephemeral nature, restart policies
- Resource requests vs limits β Scheduling vs runtime enforcement
- QoS classes β BestEffort, Burstable, Guaranteed
- Troubleshooting patterns β Reading events, understanding exit codes
- Best practices β Labels, namespaces, resource management
- Commit your changes (
git commit -m 'Add tutorial on X') - Push to the branch (
git push origin feature/new-tutorial) - Open a Pull Request
Each tutorial should include:
- Title & Overview β What you'll learn
- Explanation β Concept breakdown
- Commands/YAML β Practical examples
- Lab Steps β Hands-on exercises
- Tips & Warnings β Best practices and pitfalls
- Summary/Cheat Sheet β Quick reference
- Issues: Found a bug or have a question? Open an issue
- Discussions: Share your learning journey or ask questions
- Feedback: Suggestions for new topics are always welcome!
This repository is open-source and available under the MIT License.
Special thanks to the DevOps and open-source communities for continuous inspiration and knowledge sharing.
If you find this repository helpful, please consider giving it a star! It helps others discover these learning resources.