Please enable JavaScript.
Coggle requires JavaScript to display documents.
Kubernetes (K8s) Enterprise Architecture - Coggle Diagram
Kubernetes (K8s) Enterprise Architecture
Kubernetes Definition
What is Kubernetes
Open-source Container Orchestration Platform
Developed by Google
Maintained by Cloud Native Computing Foundation (CNCF)
Automates Container Deployment
Automates Scaling
Automates Self-Healing
Automates Networking
Automates Storage
Automates Rolling Updates
Automates High Availability
Automates Resource Scheduling
Think of Docker as a vehicle, and Kubernetes as the traffic control system that directs where every vehicle should go, keeps traffic flowing, and responds to problems.
Why Kubernetes
High Availability
Fault Tolerance
Auto Scaling
Load Balancing
Zero Downtime Deployment
Infrastructure Automation
Enterprise Security
Resource Optimization
Multi-Cloud Support
Hybrid Cloud Support
Kubernetes Cluster
Definition
Collection of Linux Machines Working Together
Components
Control Plane
Worker Nodes
Networking
Storage
Applications
core responsibilities
Deploying applications
Scheduling containers on available servers
Restarting failed applications
Replacing unhealthy containers
Scaling applications up or down automatically
Distributing network traffic (load balancing)
Managing updates with minimal downtime
Rolling back failed deployments
Managing configuration and secrets
Orchestrating storage for stateful applications
Kubernetes Architecture
Control Plane
Definition
Brain of Kubernetes
Makes Decisions
Stores Cluster State
Schedules Workloads
Maintains Desired State
Components
API Server
Definition
Front Door of Kubernetes
Central Communication Component
Every Request Passes Through API Server
Responsibilities
Authentication
Authorization
Admission Control
Validate Requests
Store Objects
Read Objects
REST API
Communication Gateway
Listens On
TCP Port 6443
Configuration
/etc/kubernetes/manifests/kube-apiserver.yaml
Certificates
/etc/kubernetes/pki/
Linux Process
kube-apiserver
Commands
kubectl cluster-info
kubectl get componentstatuses
kubectl get pods -n kube-system
kubectl get --raw /healthz
kubectl api-resources
kubectl api-versions
Enterprise Importance
Every kubectl Command
Every Controller
Every Node
Every Scheduler
Every User
Communicates Through API Server
etcd
Definition
Distributed Key Value Database
Purpose
Stores Entire Cluster State
Stores
Pods
Nodes
Secrets
ConfigMaps
Deployments
Services
Persistent Volumes
RBAC
Certificates
Cluster Configuration
Characteristics
Highly Available
Distributed
Strong Consistency
Raft Consensus Algorithm
Default Port
2379
Manifest
/etc/kubernetes/manifests/etcd.yaml
Data Directory
/var/lib/etcd/
Process
etcd
Commands
etcdctl endpoint health
etcdctl member list
etcdctl snapshot save backup.db
etcdctl snapshot restore backup.db
Enterprise Importance
Most Critical Component
Backup Required
Disaster Recovery
Cluster Recovery
Scheduler
Definition
Assigns Pods to Worker Nodes
Responsibilities
Watches New Pods
Finds Best Node
Resource Calculation
CPU Scheduling
Memory Scheduling
Affinity Rules
Anti Affinity Rules
Node Selector
Taints
Tolerations
Priority Classes
Manifest
/etc/kubernetes/manifests/kube-scheduler.yaml
Process
kube-scheduler
Commands
kubectl describe pod
kubectl get events
kubectl top nodes
Enterprise Importance
Efficient Resource Utilization
Load Distribution
High Availability
Controller Manager
Definition
Runs Controllers
Maintains Desired State
Controllers
Node Controller
Detects Failed Nodes
Deployment Controller
Maintains Desired Number of Pods
ReplicaSet Controller
Creates Missing Pods
Job Controller
Runs Batch Jobs
CronJob Controller
Scheduled Jobs
Namespace Controller
Namespace Lifecycle
Service Account Controller
Creates Default Accounts
Endpoint Controller
Updates Service Endpoints
Replication Controller
Garbage Collector
Token Controller
Manifest
/etc/kubernetes/manifests/kube-controller-manager.yaml
Process
kube-controller-manager
Enterprise Importance
Self Healing
Automatic Recovery
Desired State Enforcement
Cloud Controller Manager
Definition
Connects Kubernetes With Cloud Providers
Cloud Providers
AWS
Azure
Google Cloud
Oracle Cloud
OpenStack
Responsibilities
Load Balancer
Storage Integration
Route Management
Node Discovery
Process
cloud-controller-manager
Enterprise Importance
Cloud Automation
Infrastructure Integration
Admission Controller
Definition
Intercepts Requests Before Objects Are Stored
Workflow
User
API Server
Authentication
Authorization
Admission Controller
etcd
Responsibilities
Validate Objects
Modify Objects
Security Enforcement
Resource Quotas
Namespace Restrictions
Image Policies
Pod Security
Types
Mutating Admission Controller
Validating Admission Controller
Enterprise Examples
Pod Security Admission
ResourceQuota
LimitRange
DefaultStorageClass
Worker Node
Definition
Linux Server Running Containers
Components
kubelet
Definition
Kubernetes Node Agent
Responsibilities
Register Node
Receive Pod Specification
Create Pods
Monitor Containers
Report Status
Restart Failed Containers
Configuration
/var/lib/kubelet/
Service
systemctl status kubelet
Commands
journalctl -u kubelet
systemctl restart kubelet
systemctl enable kubelet
Enterprise Importance
Node Health
Container Monitoring
Cluster Communication
kube-proxy
Definition
Network Traffic Manager
Responsibilities
Service Discovery
Load Balancing
Packet Forwarding
iptables Rules
IPVS Rules
Modes
iptables
IPVS
Commands
iptables -L
ipvsadm -L
kubectl get svc
Enterprise Importance
Internal Networking
High Performance Routing
Container Runtime
Definition
Software That Runs Containers
Examples
containerd
CRI-O
Responsibilities
Pull Images
Start Containers
Stop Containers
Delete Containers
Manage Images
Manage Container Lifecycle
Socket
/run/containerd/containerd.sock
Commands
crictl ps
crictl images
crictl pods
crictl inspect
ctr containers list
ctr images list
CRI
Full Form
Container Runtime Interface
Definition
Standard Interface Between kubelet And Container Runtime
Responsibilities
Create Containers
Delete Containers
Pull Images
Execute Commands
Manage Container Lifecycle
Enterprise Runtime
containerd
CRI-O
CNI
Full Form
Container Network Interface
Definition
Standard For Kubernetes Networking
Responsibilities
Pod IP Assignment
Container Networking
Inter Node Communication
Network Policies
Popular Plugins
Calico
Cilium
Flannel
Weave
Antrea
Configuration
/etc/cni/net.d/
Binaries
/opt/cni/bin/
Enterprise Importance
Secure Networking
Network Isolation
Micro Segmentation
CSI
Full Form
Container Storage Interface
Definition
Standard Interface Between Kubernetes And Storage Systems
Responsibilities
Persistent Storage
Volume Provisioning
Volume Expansion
Attach Volume
Detach Volume
Snapshot
Storage Examples
NFS
Ceph
VMware vSphere
Amazon EBS
Azure Disk
Google Persistent Disk
Enterprise Importance
Database Storage
Backup
Disaster Recovery
Component Communication
User
kubectl
kubectl
Sends HTTPS Request
API Server
Authentication
Authorization
Admission Controller
API Server
Reads And Writes
etcd
Scheduler
Watches API Server
Assigns Node
Controller Manager
Watches API Server
Maintains Desired State
kubelet
Watches API Server
Creates Containers
kubelet
Uses
CRI
CRI
Communicates With
Container Runtime
Container Runtime
Starts Containers
CNI
Creates Network
CSI
Attaches Storage
kube-proxy
Routes Traffic
Pod
Running Application
Linux Directories
/etc/kubernetes/
/etc/kubernetes/manifests/
/etc/kubernetes/pki/
/var/lib/etcd/
/var/lib/kubelet/
/etc/cni/net.d/
/opt/cni/bin/
/run/containerd/
/etc/containerd/
/var/lib/containerd/
/var/log/pods/
/var/log/containers/
Enterprise Troubleshooting
Cluster Health
kubectl cluster-info
kubectl get nodes
kubectl get pods -A
kubectl get componentstatuses
API Server
journalctl -u kubelet
crictl ps
kubectl get --raw /healthz
etcd
etcdctl endpoint health
etcdctl member list
Scheduler
kubectl describe pod
kubectl get events
kubelet
systemctl status kubelet
journalctl -u kubelet
Container Runtime
crictl ps
crictl images
ctr containers list
Networking
kubectl get svc
kubectl get endpoints
iptables -L
ip route
Storage
kubectl get pv
kubectl get pvc
kubectl describe pvc
Enterprise Best Practices
High Availability Control Plane
Multiple etcd Members
Regular etcd Backups
RBAC
Pod Security Admission
Network Policies
TLS Certificates
Resource Requests
Resource Limits
Monitoring
Logging
Disaster Recovery
Upgrade Strategy
Backup Strategy
GitOps
Infrastructure As Code