05Deployment控制器–管理应用

Deployment介绍
    Deployment是最常用的K8S工作负载控制器(Workload Controllers),是k8s的一个抽象概念,用于更高级层次对象,部署和字管理pod
    Deployment 的主要功能:
        管理Pod,即应用程序
        具有上线部署,副本设定,滚动升级,回滚等功能。
应用场景:网站、API 微服务



应用生命周期管理流程




应用程序开发出来,部署到相应的环境,版本的迭代(升级),频繁的升级产生一些问题,回滚到一个正常的版本,业务结束,下线。

应用部署:

第一步:部署镜像
kubectl create deployment web --image=nginx:1.16 --replicas=3

或者
kubectl apply -f xxx.yaml

vim daemon.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-mes
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web-mes
  template:
    metadata:
      labels:
        app: web-mes
    spec:
      containers:
      - name: web-mes
        image: nginx:1.16
---
apiVersion: v1
kind: Service
metadata:
  name: web-mes
spec:
  selector:
    app: web-mes
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  type: NodePort

kubectl apply -f daemon.yaml




浏览器访问:



应用升级:


直接修改daemon.yaml 把里面的镜像版本1.16 改成 1.17,然后重新应用一下daemon.yaml




重新刷新浏览器,进行验证:


kubectl describe deployment web-mes


应用实例扩容和缩容
发布失败回滚
应用下线