apiVersion: apps/v1
kind: Deployment
metadata:
  name: goods
  namespace: etcd-demo
  labels:
    app: goods
spec:
  # 期望 pod 数量
  replicas: 3
  # 新创建的 pod 在运行指定秒数后才视为运行可用，配合就绪探针可以在滚动升级失败的时候阻止升级，避免部署出错的应用
  minReadySeconds: 2
  strategy:
    rollingUpdate:
      # 滚动升级过程中最多允许超出期望副本数的数量，比如期望3，maxSurge 配置为1，则最多存在4个pod，也可以配置百分比
      maxSurge: 1
      # 滚动升级过程中最多允许存在不可用的 pod 数量，配置为0表示升级过程中所有的 pod 都必须可用，即 pod 挨个替换，也可以配置百分比
      maxUnavailable: 0
  # 匹配器，匹配 pod 的方式
  selector:
    matchLabels:
      app: goods
  template:
    metadata:
      name: goods
      labels:
        app: goods
    spec:
      imagePullSecrets:
        - name: harbor-jormin
      containers:
        - name: goods
          image: harbor.wcxst.com/etcd-demo/goods:latest
          # 就绪探针
          readinessProbe:
            # 执行周期，单位：秒
            periodSeconds: 1
            # 初始化延迟，单位：秒
            initialDelaySeconds: 3
            httpGet:
              path: /
              port: 80
