news 2026/7/12 20:22:32

Kubernetes工作负载管理:Docker and Kubernetes Fundamentals Hands-On Pod与Deployment详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kubernetes工作负载管理:Docker and Kubernetes Fundamentals Hands-On Pod与Deployment详解

Kubernetes工作负载管理:Docker and Kubernetes Fundamentals Hands-On Pod与Deployment详解

【免费下载链接】Fundamentals-HandsOnFiles for the Docker and Kubernetes Fundamentals Hands-On labs项目地址: https://gitcode.com/gh_mirrors/fu/Fundamentals-HandsOn

Kubernetes工作负载管理是容器编排的核心环节,而Pod与Deployment作为基础组件,在Docker and Kubernetes Fundamentals Hands-On项目中占据重要地位。本文将通过实操案例,带你掌握Pod的创建与管理、Deployment的声明式部署及动态扩缩容技巧,轻松入门Kubernetes工作负载管理。

认识Kubernetes工作负载架构

在Kubernetes生态中,工作负载是对容器化应用的抽象管理单元。从单个容器到复杂微服务,都可通过工作负载实现自动化运维。项目提供的架构图清晰展示了多组件协作模式:

![Kubernetes工作负载架构图](https://raw.gitcode.com/gh_mirrors/fu/Fundamentals-HandsOn/raw/5eefc6af4a9cc4c96aeec68b68d03514475af0dc/L09-05 Docker Compose - Sample App/architecture.png?utm_source=gitcode_repo_files)

图:Kubernetes工作负载组件关系示意图(来自项目L09-05章节)

核心工作负载类型

  • Pod:最小部署单元,包含一个或多个容器
  • Deployment:声明式管理Pod和ReplicaSet
  • StatefulSet:管理有状态应用
  • DaemonSet:确保所有节点运行相同Pod

Pod:Kubernetes的最小部署单元

Pod作为Kubernetes的原子部署单元,封装了应用容器、存储资源和网络配置。在L21-04 Pods实验中,我们可以通过两种方式创建Pod:

1. 命令式创建(快速测试)

# 创建Nginx Pod kubectl run mynginx --image=nginx # 查看Pod状态 kubectl get pods -o wide

这种方式适合临时测试,执行后会立即在集群中启动一个Nginx容器实例。通过kubectl describe pod mynginx可查看详细配置和运行状态。

2. 声明式创建(生产推荐)

项目提供的myapp.yaml文件展示了规范的Pod定义:

apiVersion: v1 kind: Pod metadata: name: myapp-pod spec: containers: - name: myapp-container image: busybox command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600'] env: - name: DBCON value: "mysql://user:pass@localhost:3306/db"

通过kubectl create -f myapp.yaml创建后,可使用kubectl exec -it myapp-pod -- bash进入容器内部,验证环境变量配置:

echo $DBCON # 输出: mysql://user:pass@localhost:3306/db

⚠️ 注意:Pod具有临时性,删除后不会自动重建。生产环境应使用Deployment进行管理。

Deployment:声明式管理Pod生命周期

Deployment通过声明式配置实现Pod的自动化管理,包括创建、更新和回滚。L24-05 Deployments章节展示了完整的Deployment使用流程:

1. 部署应用

使用项目提供的deploy-example.yaml创建Deployment:

kubectl apply -f deploy-example.yaml

Deployment会自动创建ReplicaSet和Pod,确保指定数量的副本始终运行:

# 查看部署状态 kubectl get deploy kubectl get rs kubectl get pods -o wide

2. 动态扩缩容

通过修改Deployment配置可轻松实现水平扩展:

# 扩展到3个副本 kubectl scale deployment deploy-example --replicas=3 # 查看扩展结果 kubectl get pods

3. 滚动更新

Deployment支持零停机更新应用版本:

# 更新镜像版本 kubectl set image deployment/deploy-example app=nginx:1.21 # 查看更新状态 kubectl rollout status deployment/deploy-example

4. 版本回滚

当新版本出现问题时,可快速回滚到历史版本:

# 查看历史版本 kubectl rollout history deployment/deploy-example # 回滚到上一版本 kubectl rollout undo deployment/deploy-example

Pod与Deployment最佳实践

1. 资源配置

为Pod设置资源请求和限制,避免资源争抢:

resources: requests: cpu: "100m" memory: "128Mi" limits: cpu: "200m" memory: "256Mi"

2. 健康检查

配置存活探针和就绪探针,确保应用可用性:

livenessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 30 periodSeconds: 10

3. 标签管理

合理使用标签组织Pod,便于选择器匹配和资源管理:

metadata: labels: app: myapp environment: production version: v1

总结:从基础到实践的工作负载管理

通过Docker and Kubernetes Fundamentals Hands-On项目的L21-04 Pods和L24-05 Deployments实验,我们掌握了Kubernetes工作负载的核心管理能力。Pod作为最小部署单元,提供了容器运行的基础环境;而Deployment则通过声明式API实现了Pod的自动化生命周期管理,包括扩缩容、滚动更新和版本回滚等关键功能。

要深入学习更多工作负载类型,可继续探索项目中的StatefulSet(L24-09 StatefulSet)和DaemonSet(L24-07 DaemonSet)等高级主题,构建更健壮的容器化应用架构。

提示:所有实验文件可通过以下命令获取完整项目:

git clone https://gitcode.com/gh_mirrors/fu/Fundamentals-HandsOn

【免费下载链接】Fundamentals-HandsOnFiles for the Docker and Kubernetes Fundamentals Hands-On labs项目地址: https://gitcode.com/gh_mirrors/fu/Fundamentals-HandsOn

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 20:19:12

基于流体力学复习数学:积分

1 积分的定义积分(integral)包括不定积分(indefinite integral)和定积分(definite integral)两类。1.1 不定积分不定积分为求导的逆过程。其中,F(x) 称为 f(x) 的原函数,f(x) 称为被…

作者头像 李华
网站建设 2026/7/12 20:16:22

【吃透 MySQL InnoDB连载】第 9 章・企业级 MySQL 内核开发落地规范

第 9 章 企业级 MySQL 内核开发落地规范经过前面从 MySQL 架构、事务隔离、锁机制、MVCC、三大日志、索引原理、内存页管理、高阶 SQL 调优全链路实战学习,本章汇总全书故障经验,结合 InnoDB 底层内核运行逻辑,形成整套企业标准化落地开发与运…

作者头像 李华
网站建设 2026/7/12 20:12:27

Hackertab.dev数据来源揭秘:15+顶级技术平台内容一网打尽

Hackertab.dev数据来源揭秘:15顶级技术平台内容一网打尽 【免费下载链接】hackertab.dev A Chrome 🌐 & Firefox 🦊 extension to discover the latest developer news and tools in one tab! 项目地址: https://gitcode.com/gh_mirror…

作者头像 李华
网站建设 2026/7/12 20:11:59

我重新梳理AI大模型就业后,先删掉了这些无效投入

这篇不先堆名词。我们把《我重新梳理AI大模型就业后,先删掉了这些无效投入》拆成几级台阶,看完至少知道下一步该学什么、该练什么。摘要先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做,以及从哪里动…

作者头像 李华
网站建设 2026/7/12 20:11:58

表格 Claude 工具哪个好用|AI 导出鸭凭借全能实力稳居优选行列

1:表格Claude工具哪个好用|AI 导出鸭凭借全能实力稳居优选行列 2:AI 导出鸭实力测评:表格Claude工具哪个好用全方位深度解析 3:表格Claude工具哪个好用不用纠结,AI 导出鸭轻松搞定表格导出难题 引言 如今大…

作者头像 李华