Please enable JavaScript.
Coggle requires JavaScript to display documents.
Phase 4 — Kubernetes Architecture (Enterprise Level) - Coggle Diagram
Phase 4 — Kubernetes Architecture (Enterprise Level)
Phase 4 — Kubernetes Architecture (Enterprise Level)
Kubernetes Architecture
What is Kubernetes
Definition
Why Kubernetes
Problems Kubernetes Solves
High Availability
Scalability
Self Healing
Automation
Rolling Updates
Rollback
Service Discovery
Load Balancing
Resource Management
Kubernetes Cluster
Cluster Components
Enterprise Architecture
Control Plane
Worker Nodes
Communication Flow
Security Model
Kubernetes Cluster
Control Plane
Worker Nodes
kubectl Client
Users
Applications
Pods
Networking
Storage
Control Plane
Purpose
Brain of Kubernetes
Cluster Management
Desired State Management
Scheduling
Security
Cluster Health
Components
API Server
Scheduler
Controller Manager
Cloud Controller Manager
etcd
Admission Controllers
API Server (kube-apiserver)
Purpose
Responsibilities
Central Management Point
Authentication
Authorization
Admission
API Validation
REST API
Object Storage
Resource Management
Cluster Communication
Listens On
TCP Port 6443
Certificate Location
/etc/kubernetes/pki/
Static Pod Manifest
/etc/kubernetes/manifests/kube-apiserver.yaml
Configuration
Command Line Flags
Certificates
Audit Logging
Encryption Provider
Authentication Methods
Certificates
Tokens
OpenID Connect
Service Accounts
Authorization Methods
RBAC
Node Authorization
ABAC
Webhook
Admission Control
Mutating Admission
Validating Admission
Common Commands
kubectl cluster-info
kubectl api-resources
kubectl api-versions
kubectl get componentstatuses
Logs
journalctl
kubectl logs
Enterprise Best Practices
Scheduler (kube-scheduler)
Purpose
Responsibilities
Pod Placement
Resource Selection
Node Selection
Affinity
Anti Affinity
Taints
Tolerations
Topology Spread
Scheduling Process
Watch API Server
Filter Nodes
Score Nodes
Bind Pod
Scheduling Policies
Scheduler Profiles
Static Pod Manifest
/etc/kubernetes/manifests/kube-scheduler.yaml
Commands
kubectl describe pod
kubectl get events
Logs
Enterprise Scheduling Strategy
Controller Manager (kube-controller-manager)
Purpose
Responsibilities
Desired State
Reconciliation Loop
Controllers
Deployment Controller
ReplicaSet Controller
Replication Controller
Node Controller
Namespace Controller
Job Controller
CronJob Controller
Endpoint Controller
EndpointSlice Controller
ServiceAccount Controller
Token Controller
PersistentVolume Controller
PersistentVolumeClaim Controller
Garbage Collector
ResourceQuota Controller
Horizontal Pod Autoscaler Controller
Static Pod Manifest
/etc/kubernetes/manifests/kube-controller-manager.yaml
Commands
kubectl get deployment
kubectl describe deployment
Logs
Enterprise Controller Operations
Cloud Controller Manager
Purpose
Cloud Provider Integration
Cloud Platforms
AWS
Azure
Google Cloud
OpenStack
VMware
Controllers
Node Controller
Route Controller
Load Balancer Controller
Volume Controller
Static Pod Manifest
/etc/kubernetes/manifests/kube-cloud-controller-manager.yaml
Enterprise Cloud Integration
etcd
Purpose
Distributed Key Value Database
Cluster Database
Stores
Pods
Deployments
Secrets
ConfigMaps
Nodes
Services
RBAC
Certificates
Leases
Events
Communication
API Server
Default Ports
2379
2380
Data Directory
/var/lib/etcd
Static Pod Manifest
/etc/kubernetes/manifests/etcd.yaml
Backup
etcdctl snapshot save
Restore
etcdctl snapshot restore
Health Check
etcdctl endpoint health
Enterprise Backup Strategy
Disaster Recovery
Admission Controllers
Purpose
Admission Process
Mutating Admission
Validating Admission
Built-in Controllers
NamespaceLifecycle
LimitRanger
ServiceAccount
ResourceQuota
PodSecurity
DefaultStorageClass
DefaultTolerationSeconds
Priority
RuntimeClass
External Admission
Webhook
Enterprise Policy Enforcement
Worker Node
Purpose
Responsibilities
Run Pods
Execute Containers
Connect Storage
Connect Network
Report Status
Components
kubelet
kube-proxy
Container Runtime
CRI
CNI
CSI
Linux Requirements
CPU
Memory
Storage
Kernel
cgroups
Namespaces
iptables
nftables
Commands
kubectl get nodes
kubectl describe node
kubelet
Purpose
Node Agent
Responsibilities
Register Node
Watch API Server
Create Pods
Start Containers
Monitor Containers
Report Status
Mount Volumes
Execute Liveness Probe
Execute Readiness Probe
Execute Startup Probe
Configuration
/var/lib/kubelet/
/etc/kubernetes/kubelet.conf
/var/lib/kubelet/config.yaml
Service
systemctl status kubelet
Logs
journalctl -u kubelet
Enterprise Monitoring
kube-proxy
Purpose
Network Proxy
Responsibilities
Service Networking
Load Balancing
iptables Rules
IPVS Rules
Packet Forwarding
Proxy Modes
iptables
IPVS
nftables
Commands
iptables
ipvsadm
kubectl get svc
Logs
Enterprise Networking
Container Runtime
Purpose
Responsibilities
Pull Images
Create Containers
Start Containers
Stop Containers
Delete Containers
Image Cache
Runtime Isolation
Runtime Examples
containerd
CRI-O
Runtime Service
systemctl status containerd
Runtime Socket
/run/containerd/containerd.sock
Enterprise Runtime Management
Container Runtime Interface (CRI)
Purpose
Standard Runtime Interface
Communication
kubelet
Container Runtime
CRI API
Runtime Implementations
containerd
CRI-O
Enterprise Runtime Standardization
Container Network Interface (CNI)
Purpose
Pod Networking
Responsibilities
IP Assignment
Network Routing
Network Isolation
Overlay Networks
Network Policies
Configuration Directory
/etc/cni/net.d/
Plugin Directory
/opt/cni/bin/
Enterprise CNI Solutions
Calico
Cilium
Flannel
Weave Net
Antrea
Commands
ip addr
ip route
bridge
ss
tcpdump
Container Storage Interface (CSI)
Purpose
Storage Integration
Responsibilities
Volume Provisioning
Volume Attachment
Volume Mounting
Snapshot
Expansion
Storage Classes
Persistent Volumes
Persistent Volume Claims
CSI Drivers
AWS EBS
Azure Disk
Google Persistent Disk
VMware vSphere CSI
NFS CSI
Ceph CSI
Longhorn
Enterprise Storage
Communication Flow
User
kubectl
kubectl
API Server
API Server
Authentication
Authorization
Admission Controller
etcd
Scheduler
Controller Manager
kubelet
Scheduler
API Server
Controller Manager
API Server
kubelet
API Server
Container Runtime
CNI
CSI
kube-proxy
API Server
Container Runtime
Linux Kernel
CNI
Linux Network
CSI
Storage Backend
Linux Directories
/etc/kubernetes/
/etc/kubernetes/manifests/
/etc/kubernetes/pki/
/var/lib/kubelet/
/var/lib/etcd/
/etc/cni/net.d/
/opt/cni/bin/
/run/containerd/
/var/log/
/var/log/pods/
/var/log/containers/
Linux Services
kubelet
containerd
crio
Enterprise Ports
6443
2379
2380
10250
10257
10259
Enterprise Commands
kubectl cluster-info
kubectl version
kubectl get nodes
kubectl describe node
kubectl get pods --all-namespaces
kubectl get componentstatuses
kubectl get events
kubectl top nodes
kubectl top pods
kubectl logs
kubectl exec
kubectl describe
kubectl api-resources
kubectl api-versions
systemctl status kubelet
systemctl status containerd
journalctl -u kubelet
crictl ps
crictl images
crictl logs
ctr containers list
ctr images list
Enterprise Troubleshooting
API Server Down
etcd Failure
Scheduler Failure
Controller Failure
kubelet Failure
kube-proxy Failure
Container Runtime Failure
CNI Failure
CSI Failure
Node Not Ready
Pod Pending
Pod CrashLoopBackOff
ImagePullBackOff
Network Failure
Storage Failure
Certificate Expired
Authentication Failure
Authorization Failure
Admission Failure
Enterprise Best Practices
High Availability Control Plane
Multiple etcd Members
RBAC
TLS Everywhere
Network Policies
Pod Security
Secrets Encryption
Backup etcd
Monitor Cluster
Audit Logs
Resource Limits
Resource Requests
Node Labels
Node Taints
Namespaces
Storage Classes
Cluster Autoscaling
Logging
Monitoring
Disaster Recovery