Kubernetes theory
March 24, 2023

terminationGracePeriodSeconds

Это поле обозначает время, которое отводится контейнеру в поде для его корректного завершения.

Если контейнер не успевает корректно завершится за указанное в данном поле время, то он получает сигнал KILL (SIGKILL).

Данный параметр может передаваться в манифесте пода/деплоймента/etc.

Если данное поле не указывать в манифесте, то, по умолчанию, устанавливается значение 30. Но некоторым приложениям этого времени не хватает для завершения. Например, приложениям с Java.

Пример.

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: cam-nginx99
  namespace: default
  labels:
    app: nginx
    environment: prod
  annotations:
    author: cameda
spec:
  containers:
  - name: nginx99
    image: nginx:latest
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 80
    - containerPort: 443
    resources:
      requests:
        cpu: 300m
        memory: 300Mi
      limits:
        memory: 400Mi
  restartPolicy: Always
  hostname: nginx99
  subdomain: web
  terminationGracePeriodSeconds: 90
EOF

В данном примере увеличили значение terminationGracePeriodSeconds: 90