k8s 之 Deployment 介绍与使用流程
Deployment 是最常用的 k8S 工作负载控制器(Workload Controllers),是 k8s 的一个抽象概念,用于更高级层次对象,部署和管理 Pod。Deployment 的主要功能:管理 Pod ,即应用程序;具有上线部署、副本设定、滚动升级、回滚等功能。
·
Deployment 是最常用的 k8S 工作负载控制器(Workload Controllers),是 k8s 的一个抽象概念,用于更高级层次对象,部署和管理 Pod。
Deployment 的主要功能
- 应用部署
- 应用升级
- 应用实例扩容和缩容
- 发布失败回滚
- 应用下线
nginx.yaml 文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: chiyi-nginx
namespace: voip
spec:
replicas: 3
selector:
matchLabels:
app: chiyi-nginx
template:
metadata:
labels:
app: chiyi-nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: chiyi-nginx
namespace: voip
spec:
selector:
app: chiyi-nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
部署或滚动升级 deployment
kubectl apply -f nginx.yaml
说明:
1. 第一次执行此命令为上线部署 deployment
2. 修改 image 版本号后执行,则为滚动升级 deployment
3. 修改 replicas 副本数数量后执行,则是对 deployment 进行水平扩缩容
免交互升级
kubectl set image deployment chiyi-nginx nginx=nginx:1.21 --record=true -n voip
查看升级过程
kubectl describe deployment chiyi-nginx -n voip
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 8m3s deployment-controller Scaled up replica set chiyi-nginx-5bbf8bff4b to 3
Normal ScalingReplicaSet 3m29s deployment-controller Scaled up replica set chiyi-nginx-6c985f5867 to 1
Normal ScalingReplicaSet 2m53s deployment-controller Scaled down replica set chiyi-nginx-5bbf8bff4b to 2
Normal ScalingReplicaSet 2m53s deployment-controller Scaled up replica set chiyi-nginx-6c985f5867 to 2
Normal ScalingReplicaSet 2m5s deployment-controller Scaled down replica set chiyi-nginx-5bbf8bff4b to 1
Normal ScalingReplicaSet 2m5s deployment-controller Scaled up replica set chiyi-nginx-6c985f5867 to 3
Normal ScalingReplicaSet 2m4s deployment-controller Scaled down replica set chiyi-nginx-5bbf8bff4b to 0
查看历史发布版本
kubectl rollout history deployment chiyi-nginx -n voip
回滚到上一个版本
kubectl rollout undo deployment chiyi-nginx -n voip
回滚历史指定版本
kubectl rollout undo deployment chiyi-nginx --to-revision=1 -n voip
水平扩缩容 (replicas 参数控制 Pod 副本数量)
kubectl scale deployment chiyi-nginx --replicas=10 -n voip
实时查看 pods
kubectl get pods -n voip -w
项目下线,将资源删除
方法一:
kubectl delete -f nginx.yaml
方法二:
kubectl delete deployment chiyi-nginx -n voip
kubectl delete service chiyi-nginx -n voip
更多推荐
已为社区贡献8条内容
所有评论(0)