用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
【Kubernets】Kubernets资源类型Deployment详细先容 ...
【Kubernets】Kubernets资源类型Deployment详细先容
惊雷无声
论坛元老
|
2025-2-23 00:38:16
|
显示全部楼层
|
阅读模式
楼主
主题
1837
|
帖子
1837
|
积分
5511
Kubernets资源概览
Kubernetes Deployment 资源类型详细先容
Deployment 是 Kubernetes 中用于管理
无状态应用
的核心资源类型之一。它提供了一种声明式的方式来界说应用的期望状态,并确保 Pod 的副本数、更新策略和回滚机制等都能按照预期运行。
Deployment 的重要功能
声明式更新
:
界说应用的期望状态(如副本数、镜像版本等),Kubernetes 会主动调整实际状态以匹配期望状态。
副本管理
:
确保指定命量的 Pod 副本始终运行。
支持动态扩缩容。
滚动更新
:
支持无缝更新应用版本,徐徐更换旧版本的 Pod。
可以配置更新策略(如最大不可用 Pod 数和最大超出副本数)。
回滚机制
:
如果更新失败,可以快速回滚到之前的稳定版本。
健康查抄
:
联合 Readiness Probe 和 Liveness Probe,确保只有健康的 Pod 才会吸收流量。
版本汗青
:
记载每次更新的汗青,方便回滚和审计。
Deployment 的核心字段
以下是一个典范的 Deployment 配置文件示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
labels:
app: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: myapp:1.0
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /healthz
port: 80
initialDelaySeconds: 3
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 80
initialDelaySeconds: 5
periodSeconds: 10
restartPolicy: Always
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
复制代码
字段详解
1.
metadata
name
:Deployment 的名称。
labels
:为 Deployment 添加标签,用于组织和选择资源。
2.
spec
replicas
:指定 Pod 的副本数。例如,replicas: 3 表示运行 3 个 Pod。
selector
:界说 Deployment 如何选择管理的 Pod。
matchLabels
:通过标签选择 Pod。必须与 template.metadata.labels 匹配。
3.
template
界说 Pod 的模板,用于创建 Pod。
metadata
:Pod 的元数据,包罗标签。
spec
:Pod 的规格,界说容器、卷、环境变量等。
4.
containers
界说 Pod 中的容器。
name
:容器名称。
image
:容器镜像。
ports
:容器暴露的端口。
resources
:资源哀求和限制。
requests
:容器启动所需的最小资源。
limits
:容器可以利用的最大资源。
livenessProbe
:健康查抄,用于判断容器是否存活。
readinessProbe
:停当查抄,用于判断容器是否准备好吸收流量。
5.
strategy
界说更新策略。
type
:更新类型,默认为 RollingUpdate。
RollingUpdate
:滚动更新,徐徐更换旧 Pod。
Recreate
:先删除所有旧 Pod,再创建新 Pod。
rollingUpdate
:滚动更新的详细配置。
maxUnavailable
:更新过程中答应的最大不可用 Pod 数(可以是数字或百分比)。
maxSurge
:更新过程中答应的最大超出副本数(可以是数字或百分比)。
6.
restartPolicy
界说 Pod 的重启策略,默认为 Always。
可选值:
Always:容器退出时总是重启。
OnFailure:容器失败时重启。
Never:容器退出时不重启。
Deployment 的生命周期
创建 Deployment
:
用户通过 kubectl apply -f deployment.yaml
创建 Deployment。
Kubernetes 根据 spec.template 创建 Pod。
更新 Deployment
:
修改 Deployment 的配置(如镜像版本)并重新应用。
Kubernetes 根据更新策略(如滚动更新)徐徐更换旧 Pod。
回滚 Deployment
:
如果更新失败,可以通过 kubectl rollout undo deployment/<deployment-name> 回滚到之前的版本。
扩缩容
:
修改 replicas 字段并重新应用,Kubernetes 会主动调整 Pod 的数量。
删除 Deployment
:
通过 kubectl delete deployment/<deployment-name> 删除 Deployment,同时会删除其管理的所有 Pod。
Deployment 的常用操纵
1. 创建 Deployment
kubectl apply -f deployment.yaml
复制代码
2. 查看 Deployment 状态
kubectl get deployments
复制代码
3. 查看 Pod 状态
kubectl get pods -l app=myapp
复制代码
4. 更新 Deployment(修改镜像版本)
kubectl set image deployment/myapp-deployment myapp-container=myapp:2.0
复制代码
5. 回滚 Deployment
kubectl rollout undo deployment/myapp-deployment
复制代码
6. 查看更新汗青
kubectl rollout history deployment/myapp-deployment
复制代码
7. 扩缩容
kubectl scale deployment/myapp-deployment --replicas=5
复制代码
8. 删除 Deployment
kubectl delete deployment/myapp-deployment
复制代码
Deployment 的适用场景
无状态应用
:
例如 Web 服务器、API 服务等。
每个 Pod 是独立的,不依赖本地存储或状态。
滚动更新
:
必要无缝更新应用版本,制止停机。
主动恢复
:
当 Pod 失败时,Deployment 会主动创建新的 Pod 更换。
多副本负载均衡
:
通过 Service 将流量负载均衡到多个 Pod。
总结
Deployment
是 Kubernetes 中用于管理无状态应用的核心资源。
它支持副本管理、滚动更新、回滚和健康查抄等功能。
通过声明式配置,用户可以轻松界说和管理应用的期望状态。
适用于必要高可用性、无缝更新和主动恢复的场景。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
惊雷无声
论坛元老
这个人很懒什么都没写!
楼主热帖
记一次实战 Shiro反序列化内网上线 ...
基于 Sealos 的镜像构建能力,快速部署 ...
蚂蚁金服杨军:蚂蚁数据分析平台的演进 ...
Linux之iptables(NAT表)——实验篇 ...
1亿条数据批量插入 MySQL,哪种方式最 ...
超融合走向红海,下一代超融合是新蓝海 ...
联合评测 DapuStor Roealsen5 NVMe SSD ...
【学习笔记】WPF-02:XMAL基础 ...
Neo4j
学习TraceLogging事件,使用ETW记录, ...
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
网络安全
Oracle
向量数据库
分布式数据库
快速回复
返回顶部
返回列表