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

其他的工作负载

posted @   zhang790  阅读(803)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示