apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
  labels:
    app: web
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 100%
      maxUnavailable: 0%
  template:
    metadata:
      name: web                               # Название Pod
      labels: # Метки в формате key: value
        app: web
    spec: # Описание Pod
      initContainers:
        - name: html
          image: busybox:1.32.0
          command: [ 'sh', '-c', 'wget -O- https://tinyurl.com/otus-k8s-intro | sh' ]
          volumeMounts:
            - name: app
              mountPath: /app
      containers: # Описание контейнеров внутри Pod
        - name: web-server                      # Название контейнера
          image: tjma/webserver:alpine-0.1    # Образ из которого создается контейнер
          imagePullPolicy: IfNotPresent
          livenessProbe:
            tcpSocket:
              port: 8000
          readinessProbe:
            httpGet:
              port: 8000
              path: /index.html
          volumeMounts:
            - name: app
              mountPath: /app
      volumes:
        - name: app
          emptyDir: { }
      restartPolicy: Always
  selector:
    matchLabels:
      app: web
