Kubernetes 入门:

一、Kubernetes 是什么?

传统部署方式

手动管理服务器

负载均衡配置复杂

维护困难

Kubernetes部署方式

智能容器编排

自动负载均衡

自动化运维

二、Kubernetes 的核心特性

K8s核心特性

自动化部署

智能调度

资源管理

系统自愈

自动重启

故障转移

健康检查

水平扩展

HPA自动扩缩

负载均衡

服务发现

DNS命名

负载均衡

自动更新

滚动更新

零停机部署

版本回滚

配置管理

ConfigMap

Secret

存储管理

持久化存储

多种存储类型

批量作业

Job

CronJob

三、Kubernetes 的总体架构

Worker Node 3

Worker Node 2

Worker Node 1

Control Plane (Master)

kube-apiserver
集群入口

etcd
键值存储

kube-scheduler
调度器

kube-controller-manager
控制器管理器

etcd
持久化存储

kubelet
节点代理

Container Runtime
容器运行时

kube-proxy
网络代理

Pod
容器组

应用容器

kubelet
节点代理

Container Runtime
容器运行时

kube-proxy
网络代理

Pod
容器组

应用容器

kubelet
节点代理

Container Runtime
容器运行时

kube-proxy
网络代理

Pod
容器组

应用容器

四、Kubernetes 的核心基础概念

3. Pod 结构

Pod

共享网络命名空间

共享存储卷

容器1
主应用

容器2
Sidecar

容器3
Init容器

IP地址
localhost通信

data
共享文件系统

4. Service 工作原理

客户端

Service
my-service:80

负载均衡

Pod1
IP: 10.1.0.1

Pod2
IP: 10.1.0.2

Pod3
IP: 10.1.0.3

容器

容器

容器

Selector:
app=myapp

7. Deployment 管理流程

Pod ReplicaSet Deployment 用户 Pod ReplicaSet Deployment 用户 滚动更新开始 创建Deployment (replicas: 3, image: v1) 创建ReplicaSet v1 创建3个Pod (v1) Pod Running 状态更新 部署完成 更新镜像到v2 创建ReplicaSet v2 创建1个Pod (v2) Pod Running 删除1个Pod (v1) 创建1个Pod (v2) Pod Running 删除1个Pod (v1) 创建1个Pod (v2) Pod Running 删除1个Pod (v1) 滚动更新完成

9. StatefulSet 与 Deployment 对比

StatefulSet (有状态)

web-0

有序稳定名称

web-1

web-2

持久化存储

数据持久性

稳定网络标识

可预测访问

存储卷1

存储卷2

存储卷3

Deployment (无状态)

web-76d7c5b8c7

随机名称

web-76d7c5b8c8

web-76d7c5b8c9

临时存储

无持久性

动态IP

无稳定网络标识

10. ConfigMap 工作原理

应用配置

传统方式

打包到Docker镜像

修改需重建镜像

应用配置

ConfigMap方式

创建ConfigMap对象

Pod通过环境变量引用

Pod通过Volume挂载

动态更新配置

13. Ingress 工作原理

路径: /api

域名: app.example.com

路径: /admin

互联网用户

Ingress Controller
Nginx/Traefik

路由规则

Service: api-service

Service: web-service

Service: admin-service

Pod: api-1

Pod: api-2

Pod: web-1

Pod: web-2

Pod: web-3

Pod: admin-1

SSL/TLS终止

负载均衡

访问控制

14. HPA 自动扩缩容

当前: 80%
目标: 50%

当前: 20%
目标: 50%

当前: 50%
目标: 50%

监控指标

HPA控制器
检查CPU使用率

需要扩容

需要缩容

保持现状

增加副本数: 3→5

减少副本数: 3→2

Deployment
创建新Pod

Deployment
删除Pod

负载降低
CPU: 80%→50%

负载提高
CPU: 20%→50%

15. kubectl 工作流程

Pod kubelet Scheduler Controller Manager etcd存储 kube-apiserver kubectl CLI 开发者/管理员 Pod kubelet Scheduler Controller Manager etcd存储 kube-apiserver kubectl CLI 开发者/管理员 kubectl apply -f deployment.yaml REST API 请求 存储资源定义 通知控制器 创建ReplicaSet 调度Pod 选择节点 创建Pod指令 启动容器 容器运行状态 状态报告 更新状态 返回结果 显示结果

五、Kubernetes 学习路径

Pod Service Volume 可观测性 外部访问 密钥管理 批处理任务 持久化存储 掌握Master/Node 无状态应用 有状态应用 服务发现 理解Docker基础 网络安全 自动扩缩容 节点守护进程 资源管理 配置管理
基础知识
基础知识
理解Docker基础
理解容器概念
理解容器概念
掌握Master/Node
学习K8s架构
学习K8s架构
Pod Service Volume
核心概念入门
核心概念入门
工作负载
工作负载
无状态应用
Deployment
Deployment
有状态应用
StatefulSet
StatefulSet
节点守护进程
DaemonSet
DaemonSet
批处理任务
Job/CronJob
Job/CronJob
配置与存储
配置与存储
配置管理
ConfigMap
ConfigMap
密钥管理
Secret
Secret
持久化存储
PV/PVC
PV/PVC
网络与服务
网络与服务
服务发现
Service
Service
外部访问
Ingress
Ingress
网络安全
网络策略
网络策略
运维与监控
运维与监控
自动扩缩容
HPA
HPA
资源管理
资源配额
资源配额
可观测性
监控日志
监控日志
Kubernetes 学习路径

核心概念关系图

Namespace

Deployment

StatefulSet

DaemonSet

Service

ConfigMap

Secret

Ingress

ReplicaSet

Pod

Container 1

Container 2

Container 3

Volume

PersistentVolume

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐