Kubernetes 核心概念与实战:从 Pod 到 Deployment 的第一步

举报
yd_226023071 发表于 2026/11/04 09:43:55 2026/11/04
【摘要】 从 Pod、Deployment、Service 三大核心概念入手,带你用 kubectl 部署第一个应用,理解 Kubernetes 声明式 API 的思想与常用命令,迈出云原生实战第一步。

为什么需要 Kubernetes

当容器数量从几个增长到几十上百个,手动管理容器的启动、扩缩容、故障恢复和网络互联变得不再现实。Kubernetes(简称 K8s)正是为解决这个问题而生的容器编排平台:它把一组机器抽象成统一的资源池,你只需声明式地描述“应用应该长什么样”,平台会负责把实际状态收敛到期望状态。

架构速览

Kubernetes 集群分为控制平面(Control Plane)和工作节点(Node)。控制平面包含 API Server、etcd、Scheduler 和 Controller Manager,负责做决策;工作节点运行 kubelet 和容器运行时,负责执行。kubectl 是我们与 API Server 对话的命令行工具,几乎所有操作都通过它完成。

核心概念

Pod 是 Kubernetes 中最小的调度单元。一个 Pod 可以包含一个或多个共享网络与存储的容器,通常一个 Pod 运行一个应用实例。Pod 是短暂的,重建后 IP 会变化,因此不要直接依赖 Pod 做服务发现。

Deployment 管理 Pod 的副本数与滚动更新。我们声明“需要 3 个副本”,Deployment 控制器会保证始终有 3 个 Pod 在运行;某个 Pod 崩溃后会自动重建,更新镜像时则自动完成滚动发布。

Service 为一组 Pod 提供稳定的访问入口。Service 通过标签选择器把流量转发到后端 Pod,并提供 ClusterIP、NodePort、LoadBalancer 等类型,屏蔽了 Pod IP 变化带来的影响。

Namespace 用于在同一集群内做资源隔离,例如 dev、test、prod 各用一个命名空间,互不干扰。

ConfigMap 与 Secret 把配置与镜像解耦,避免把数据库密码写死在镜像里,是云原生应用的必备实践。

实战:部署第一个应用

把下面内容保存为 deploy.yaml:

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

依次执行:

kubectl apply -f deploy.yaml
kubectl get pods -l app=web-demo
kubectl scale deployment web-demo --replicas=5

扩缩容只需要修改 replicas,Kubernetes 会自动增减 Pod。对外暴露服务:

kubectl expose deployment web-demo --port=80 --type=NodePort
kubectl get svc web-demo

常用命令速查

  • kubectl get pods/svc/deploy:查看资源
  • kubectl describe pod <名称>:排查问题先看事件
  • kubectl logs -f <Pod>:实时查看日志
  • kubectl exec -it <Pod> – sh:进入容器调试

小结

掌握 Pod、Deployment、Service 这三个概念,就掌握了 Kubernetes 的大半日常操作。建议在本地用 minikube 或 kind 搭建单节点集群,把上面的 YAML 亲手跑一遍。“描述期望状态、平台自动收敛”的声明式思想,是云原生时代最重要的思维转变,也是继续学习 HPA、Ingress、Helm 的基础。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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