k8s-deployment详解
Deployment概念
属于一种工作负载,也称为Controller(其他的Controller包括ReplicaSet、 DaemonSet、 StatefuleSet、 Job)
一次性部署多个Pod,控制Pod,使Pod拥有多副本,自愈,扩容缩容能力
Deployment的一次部署流程
1.kubectl创建deploymnet
2.deployment创建指定副本数量的ReplicaSet
3.ReplicaSet创建Pod
## 对象的命名方式是=父对象+随机字符创
## 如下图
deployment相关命令
# 创建一次deployment 选用tomcat镜像
kubectl create deployment mytomcat --image=tomcat:8.5.68
# 获取当前命名空间内的部署
kubectl get deployment
# 删除deployment
kubectl delete deployment <deployment名称>
deployment具有自愈能力,如果只是删除一次deployment中的某个pod deployment会自动进行恢复,需要删除deployment才有效
deployment的创建也可以使用yaml的方式
# 多副本创建
kubectl create deployment my-dep --image=nginx --replicas=3
# 多副本创建(yaml)
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: my-dep
name: my-dep
spec:
replicas: 3
selector:
matchLabels:
app: my-dep
template:
metadata:
labels:
app: my-dep
spec:
containers:
- image: nginx
name: nginx
# 集群的扩容和缩容 修改replicas的数字
kubectl scale --replicas=5 deployment/my-dep
# 集群的扩缩容,使用编辑yaml文件
kubectl edit deployment my-dep 修改replicas
版本控制
#历史记录
kubectl rollout history deployment/my-dep
#查看某个历史详情
kubectl rollout history deployment/my-dep --revision=2
#回滚(回到上次)
kubectl rollout undo deployment/my-dep
#回滚(回到指定版本)
kubectl rollout undo deployment/my-dep --to-revision=2
其他的工作负载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)