第三章:飞升上界 · 云原生与K8s
韩门已成气候,需飞升云上仙境,领悟Kubernetes的天道意志
楔子:韩门的困境
建立韩门后,韩立在源界中声名鹊起。他的微服务架构稳定可靠,能够处理大量的业务请求,赢得了众多客户的信任。
然而,随着业务规模的不断扩大,韩立发现了一个严重的问题:服务的管理和运维变得越来越困难。
每当流量增加时,韩立需要手动增加服务器,部署新的服务实例。这个过程需要:
- 购买或申请新的服务器
- 安装操作系统和依赖
- 部署Docker和配置网络
- 部署服务并配置监控
- 更新负载均衡配置
整个过程需要数小时甚至数天,响应速度太慢。而且,当流量减少时,服务器资源闲置,造成巨大的浪费。
更糟糕的是,当某个服务实例崩溃时,需要人工介入才能恢复。如果是在深夜,可能几个小时都无法恢复,严重影响业务。
“这样下去不行…“韩立看着运维团队疲惫的身影,心中涌起一股无力感。
他听说,在源界的高层,有一个叫做"云上仙境"的地方。那里有一种叫做"Kubernetes"的天道意志,可以自动调度资源、管理服务、实现扩缩容和自愈。
“我一定要飞升上界,掌握Kubernetes!“韩立下定了决心。
第一节:初入云上仙境
经过数月的准备,韩立终于踏上了飞升之路。他带着韩门的所有服务,来到了云上仙境。
云上仙境,是一个由无数服务器组成的巨大集群。这里的服务器被称为"节点”(Node),分为两种:
- Master节点:控制节点,负责整个集群的管理和调度
- Worker节点:工作节点,负责运行实际的业务服务
韩立刚进入云上仙境,就感受到了一股强大的意志——这就是Kubernetes,云上仙境的天道意志。
Kubernetes(简称K8s)是一个容器编排系统,它的核心思想是"声明式API”——你只需要告诉它你想要的状态,它会自动帮你实现。
比如,你想要3个用户服务的实例运行,你只需要声明:
apiVersion: apps/v1
kind: Deployment
metadata:
name: user-service
spec:
replicas: 3 # 我想要3个实例
selector:
matchLabels:
app: user-service
template:
metadata:
labels:
app: user-service
spec:
containers:
- name: user-service
image: user-service:1.0.0
ports:
- containerPort: 8080
Kubernetes会自动:
- 检查当前有多少个实例在运行
- 如果少于3个,创建新的实例
- 如果多于3个,删除多余的实例
- 如果某个实例崩溃,自动重启或创建新的实例
这就是"言出法随”——你只需要声明想要的状态,Kubernetes会自动帮你达成。
第二节:洞天法宝——Pod
在Kubernetes中,最小的部署单元是Pod。Pod就像源界中的"洞天法宝”,是一个独立的运行环境,可以包含一个或多个容器。
韩立创建了他的第一个Pod:
apiVersion: v1
kind: Pod
metadata:
name: user-service-pod
spec:
containers:
- name: user-service
image: user-service:1.0.0
ports:
- containerPort: 8080
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
Pod的特点: