目录

Kubernetes-概念详解

Kubernetes 概念详解

Kubernetes 概念详解

一、核心资源体系架构

Kubernetes 作为容器编排系统,通过一系列核心资源实现对分布式应用的全生命周期管理。以下是关键资源的分类与关系:

https://i-blog.csdnimg.cn/direct/40a65c1e86874b949d97399638b1e26c.png

二、基础资源详解

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(四层负载均衡)

类型对比:

https://i-blog.csdnimg.cn/direct/1bdf89f31646455697769affc9b28b82.png

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)"]

九、概念对比

https://i-blog.csdnimg.cn/direct/10b92bcdd47a403aa97c9eaee46aeab2.png