k8s中的Deployment【工作负载】

Deployment

控制Pod,使Pod拥有多副本、自愈、扩缩容等能力。

# 两种创建Pod的方式
kubectl run mynginx --image=nginx
kubectl create deployment mytomcat --image=tomcat:8.5.68
# 删除部署方式
kubectl get deploy
kubectl delete deploy mytomcat 

多副本能力

kubectl create deployment my-dep --image=nginx --replicas=3

不同的副本可能会部署到不同节点。

通过资源配置文件方式创建deployment:

apiVersion: 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

扩缩容能力

在这里插入图片描述

# 扩容
kubectl scale deploy/my-dep --replicas=5
# 缩容
kubectl scale deploy/my-dep --replicas=3
# 编辑yaml文件实现扩缩容
kubectl edit deploy my-dep

自愈能力&故障转移

使用deployment部署的应用,不怕应用崩溃和机器宕机。
如果应用崩溃,会重新启动一个Pod,即自愈能力,可以用docker stop测试。
如果发生宕机,Pod会转移到其他机器上去运行,即故障转移,可以关闭某个节点测试。

# 实时监控Pod状态
kubectl get pod -w

滚动更新

kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
不停机更新,直到全部更换为新版本:
在这里插入图片描述

版本回退

# 历史记录
kubectl rollout history deployment/my-dep
# 查看某个历史详情
kubectl rollout history deployment/my-dep --reversion=2
# 回滚(回到上次)
kubectl rollout undo deployment/my-dep 
kubectl rollout undo deployment/my-dep --to-reversion=2
# 回滚(回到指定版本)

总结

除了Deployment,k8s还有StatefulSet、DaemonSet、Job等类型资源,我们都称为工作负载。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值