Kubernetes-概念详解
目录
Kubernetes 概念详解
Kubernetes 概念详解
一、核心资源体系架构
Kubernetes 作为容器编排系统,通过一系列核心资源实现对分布式应用的全生命周期管理。以下是关键资源的分类与关系:
二、基础资源详解
1. Pod(最小调度单元)
定义 :包含一个或多个紧密协作的容器
特性:
共享网络命名空间
共享存储卷
生命周期一致性
典型场景:
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
2. Namespace(逻辑隔离域)
作用:
资源隔离
权限控制
环境区分
操作示例:
kubectl create namespace dev
kubectl get pods -n dev
三、配置管理资源
1. ConfigMap(非敏感配置)
使用方式:
作为环境变量注入
挂载为配置文件
直接在 YAML 中引用
创建示例:
kubectl create configmap app-config --from-literal=APP_COLOR=blue
2. Secret(敏感信息管理)
类型:
Opaque(通用类型)
kubernetes.io/dockerconfigjson(镜像仓库认证)
kubernetes.io/basic-auth(基础认证)
安全特性:
加密存储(需开启 etcd 加密)
最小化挂载
审计日志
四、服务发现与负载均衡
1. Service(四层负载均衡)
类型对比:
2. Ingress(七层负载均衡)
核心功能:
基于域名的路由
SSL 终止
请求转发策略
速率限制
五、工作负载管理
1. Deployment(无状态应用)
特性:
滚动更新
回滚机制
副本管理
升级策略:
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
2. StatefulSet(有状态应用)
关键特性:
唯一网络标识
持久化存储
有序部署 / 扩展
状态持久化
典型应用场景:
数据库集群(MySQL/PostgreSQL)
消息队列(Kafka/RabbitMQ)
分布式缓存(Redis 集群)
六、存储管理
1. Volume(存储卷)
类型分类:
临时卷(emptyDir)
持久卷(PersistentVolume)
云存储卷(AWS EBS/GCE PD)
网络存储卷(NFS/GlusterFS)
2. PersistentVolumeClaim(PVC)
生命周期:
用户创建 PVC
系统匹配 PV
绑定到 Pod
释放后回收策略
七、高级调度
1. NodeSelector(节点选择)
nodeSelector:
disktype: ssd
2. Tolerations & Taints(污点与容忍)
污点设置:
kubectl taint nodes node1 key=value:NoSchedule
容忍配置:
tolerations:
- key: "key"
operator: "Equal"
value: "value"
effect: "NoSchedule"
八、运维管理
1. Horizontal Pod Autoscaler(HPA)
配置示例:
kubectl autoscale deployment web --cpu-percent=80 --min=2 --max=10
2. Job/CronJob(批处理任务)
定时任务示例:
apiVersion: batch/v1beta1
kind: CronJob
spec:
schedule: "0 */6 * * *"
jobTemplate:
spec:
containers:
- name: backup
image: busybox
command: ["/bin/sh", "-c", "echo Backup executed at $(date)"]