Kubernetes 入门:容器编排的第一课

举报
yd_234268181 发表于 2026/11/05 22:58:58 2026/11/05
【摘要】 写给零基础新手:如果你已经会用 Docker 跑起一个容器,下一步要学的就是 Kubernetes——它负责把一堆容器管起来。 一、Kubernetes 是什么Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化部署、扩缩容和管理容器化应用程序。一句话理解:Docker 解决的是"一个容器怎么跑",Kubernetes 解决的是"一堆容器怎么一起跑"。它最初由 Googl...

写给零基础新手:如果你已经会用 Docker 跑起一个容器,下一步要学的就是 Kubernetes——它负责把一堆容器管起来。

一、Kubernetes 是什么

Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化部署、扩缩容和管理容器化应用程序。

一句话理解:Docker 解决的是"一个容器怎么跑",Kubernetes 解决的是"一堆容器怎么一起跑"。

它最初由 Google 开源,现在由云原生计算基金会(CNCF)维护,是云原生的事实标准。

二、为什么需要容器编排

只用 Docker 的时候,很多事都要手工做:

  • 容器挂了,要手动重启;
  • 流量大了,要手动再起几个容器,还要自己配负载均衡;
  • 想升级版本,要一个个停掉旧容器、启动新容器,中间还会断服务;
  • 容器 IP 经常变,服务之间互相找对方也很麻烦。

Kubernetes 把这些脏活累活自动化了:它时刻盯着集群的"期望状态",发现现状和期望不一致,就自动修复。

三、核心概念:Pod、Deployment、Service

1. Pod:最小的部署单元

Pod 是 Kubernetes 中最小的可部署单元,里面包含一个或多个紧密协作的容器,共享网络和存储资源。

可以把 Pod 想象成一个"豌豆荚":通常一个 Pod 里只放一个主容器(比如 Nginx),需要时再塞一个辅助容器(比如日志收集)。

2. Deployment:管 Pod 的"管家"

Deployment 负责声明和管理 Pod 的期望状态:

  • 告诉集群"我要 3 个 Nginx 副本";
  • Pod 挂了,它自动补一个;
  • 升级时,它一个一个替换旧 Pod,实现滚动升级、不断服务。

3. Service:稳定的访问入口

Pod 的 IP 会变,直接访问 Pod 不靠谱。Service 为一组功能相同的 Pod 提供稳定的网络访问入口和负载均衡:集群内其他服务通过 Service 的名字就能找到它们,流量进来后由 Service 分发到后端的 Pod 上。

三者的关系可以这样记:Deployment 管着一组 Pod,Service 挡在 Pod 前面,对外提供统一入口。

用户请求 → Service(稳定入口)→ Deployment 管理的 Pod 们(真正干活的容器)

四、一个最小部署示例

下面的 YAML 会创建一个 Nginx 的 Deployment(2 个副本)和一个 Service:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.25
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
  - port: 80

部署并查看:

kubectl apply -f nginx-demo.yaml
kubectl get pods
kubectl get svc

能看到 2 个 Nginx Pod 在运行,Service 给了它们一个稳定的访问入口。

五、常见场景

  • 扩缩容:把 replicas: 2 改成 replicas: 5,再 apply 一次,集群自动补齐 3 个 Pod。
  • 滚动升级:把镜像版本改成 nginx:1.26,Deployment 会逐个替换 Pod,服务不中断。
  • 自愈:某个 Pod 崩溃,Deployment 马上拉起一个新的补上。
  • 服务发现:新服务只要访问 nginx-service 这个名字,不用关心 Pod 的 IP。

六、小结

  • Kubernetes 是容器编排平台,管的是"一堆容器怎么一起跑";
  • Pod 是最小部署单元,Deployment 负责管 Pod、做升级,Service 负责提供稳定访问入口;
  • 从一个最小的 Nginx 部署开始练,改改副本数、换换镜像版本,就能直观感受到编排的价值。

下一步可以试试在本地用 minikube 或 kind 搭一个单节点集群,把今天的 YAML 真正跑起来。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。