1、Deployment控制器应用场景

  • 部署无状态应用
  • 管理Pod和ReplicaSet
  • 部署,滚动升级
  • 弹性伸缩等功能

2、Deployment控制器部署应用

2.1 应用部署

(1) 导出yaml文件

kubectl create deployment web01 --image=nginx --dry-run -o yaml > web01.yaml

(2) 使用yaml部署应用

kubectl apply -f web01.yaml

(3) 查看容器是否为running

kubectl get deployments.apps/web01

2.2 应用发布

(1) 导出yaml文件 注意名称

kubectl expose deployment web01 --port=80 --type=NodePort --target-port=80 --name=web01-server  --dry-run -o yaml > web01-server.yaml

(2) 使用yaml部署

kubectl apply -f web01-server.yaml

(3) 查看端口号

$ kubectl get svc/web01-server
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
web01-server NodePort 10.109.4.139 <none> 80:32149/TCP 3m17s

(4) 浏览器访问http://任何node节点IP:32149

3、升级回滚

(1) 升级

kubectl set image  deployment web01 nginx=nginx:1.15 --record=true

--record=true kubectl apply 每次更新应用时 Kubernetes 都会记录下当前的配置,保存为一个 revision(版次),这样就可以回滚到某个特定 revision

(2) 回滚到上一个版本

kubectl rollout undo deployment web01

(3) 回滚到指定版本

# 查看回滚版本
kubectl rollout history deployment web01
# 回滚到指定版本
kubectl rollout undo deployment web01 --to-revision=1

4、 弹性伸缩

5、Deployment YAML详解

连接​: ​​K8S YAML详细解释​​.