品牌策划 网站源码,跟做网站相关的法律,文化传播 wordpress,wordpress 常数函数以下内容均来自个人笔记并重新梳理#xff0c;如有错误欢迎指正#xff01;如果对您有帮助#xff0c;烦请点赞、关注、转发#xff01;欢迎扫码关注个人公众号#xff01; 目录
一、基本介绍
二、工作原理
三、相关特性
四、资源清单#xff08;示例#xff09;
五…以下内容均来自个人笔记并重新梳理如有错误欢迎指正如果对您有帮助烦请点赞、关注、转发欢迎扫码关注个人公众号 目录
一、基本介绍
二、工作原理
三、相关特性
四、资源清单示例
五、常用操作 一、基本介绍
在 Kubernetes 中Deployment 是一种高级 API 对象用于声明式地管理无状态应用的生命周期确保指定数量的 Pod 副本始终运行并且是最新的。
说明无状态应用Stateless Application是指应用程序在处理客户请求时不会存储客户端的任何状态信息。简单来说无状态应用不会记住之前的交互或状态每次客户端发起请求时应用都会从头开始处理请求不依赖于之前的任何状态信息。 在无状态应用中所有的请求都被视为独立的、没有关联的事件。
Deployment 控制器可以确保无状态应用的高可用性和一致性支持
动态创建和销毁 Pod查看升级进度和状态升级回滚并具有版本记录暂停和恢复升级滚动重启 二、工作原理
Deployment 控制器通过 ReplicaSet副本集控制器来管理 Pod 的生命周期。ReplicaSet 确保指定数量的 Pod 副本始终运行。
Deployment 控制器的工作流程如下
创建 Deployment用户创建一个 Deployment 对象定义了应用的预期状态包括 Pod 模板、副本数量等创建 ReplicaSetDeployment 控制器创建或更新一个 ReplicaSet以确保 Pod 副本的数量与预期状态一致创建 PodReplicaSet 根据 Deployment 定义的 Pod 模板创建或更新 Pod监控 PodDeployment 控制器持续监控 Pod 的状态确保副本数量与预期状态一致更新 Pod当用户更新 Deployment 时控制器会根据定义的更新策略逐步替换旧版本的 Pod 三、相关特性
声明式更新用户可以定义应用的预期状态Deployment 控制器会自动将当前状态更改为预期状态自愈能力如果 Pod 由于某些原因失败Deployment 控制器会自动替换它们水平扩展用户可以指定 Pod 副本的数量并根据需要进行水平扩展或缩减滚动更新Deployment 控制器支持滚动更新创建新 Pod 逐步替换旧 Pod以确保应用的高可用性回滚支持如果更新过程中出现问题可以轻松回滚到以前的版本 四、资源清单示例
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: demo-deployment
spec:replicas: 3selector:matchLabels:app: demo-deploymenttemplate:metadata:labels:app: demo-deploymentspec:containers:- name: demo-containerimage: demo-image:latestports:- containerPort: 80
上述 deployment.yaml 文件定义了一个名为 demo-deployment 的 Deployment 对象该对象包括 3 个 Pod 副本每个 Pod 包含一个名为 demo-container 的业务容器业务容器使用 demo-image:latest 镜像并指定监听端口为 80。
说明可以通过以下命令查看 Deployment 资源清单支持定义的内容
kubectl explain deployment --recursive 五、常用操作
1、创建 Deployment
# 方式一命令行
kubectl create deployment demo-deployment --imagedemo-image:latest# 方式二资源清单
kubectl create -f deployment.yaml
或
kubectl apply -f deployment.yaml
2、更新 Deployment
# 方式一更新 deployment.yaml 内容后执行
kubectl apply -f deployment.yaml# 方式二更新镜像
kubectl set image deployment demo-deployment appdemo-image:v1# 方式三更新环境变量
kubectl set env deployment demo-deployment keynamekeyvalue 3、回滚 Deployment
# 默认回滚至上一版本
kubectl rollout undo deployment demo-deployment# 回滚至指定版本
kubectl rollout undo deployment demo-deployment --to-revision3# 查看可回滚版本
kubectl rollout history deployment demo-deployment 4、查看 Deployment
kubetcl get deployment