Deployment 概念

用于部署无状态的服务,这个最常用的控制器。一般用于管理维护企业内部无状态的微服
务,比如 configserver、zuul、springboot。他可以管理多个副本的 Pod 实现无缝迁移、自动扩容
缩容、自动灾难恢复、一键回滚等功能。
 
创建一个 Deployment
kubectl create deployment nginx-sd --image=nginx:1.15.2
从文件创建:
root@k8s-master:~# cat nginx-deploy.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2020-09-19T02:41:11Z"
  generation: 1
  labels:
    app: nginx
  name: nginx
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 2 #副本数
  revisionHistoryLimit: 10 # 历史记录保留的个数
  selector:
    matchLabels:
      app: nginx
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx:1.15.2
        imagePullPolicy: IfNotPresent
        name: nginx
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
 
root@k8s-master:~# kubectl create -f nginx-deploy.yaml 
状态解析:
root@k8s-master:~# kubectl get deploy -owide
NAME       READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES         SELECTOR
nginx      2/2     2            2           23h   nginx        nginx:1.15.2   app=nginx
nginx-sd   1/1     1            1           37m   nginx        nginx:1.15.2   app=nginx-sd
➢NAME: Deployment 名称
➢READY:Pod 的状态,已经 Ready 的个数
➢ UP-TO-DATE:已经达到期望状态的被更新的副本数
➢ AVAILABLE:已经可以用的副本数
➢ AGE:显示应用程序运行的时间
➢ CONTAINERS:容器名称
➢IMAGES:容器的镜像
➢ SELECTOR:管理的 Pod 的标签

 

Deployment 的更新
更改 deployment 的镜像并记录:

 

 

 

posted @ 2022-12-14 16:01  阿U-root  阅读(69)  评论(0)    收藏  举报