PDB 위반 제한 시간 구성

이 문서에서는 클러스터 노드 드레이닝이 포드 중단 예산(PDB)를 위반할 경우를 대비해서 제한 시간 값을 구성하는 방법을 보여줍니다.

노드가 드레이닝될 때는 해당 노드의 모든 포드를 종료해야 합니다. 기본적으로 포드 종료로 PDB가 위반될 경우 노드 드레이닝이 차단됩니다.

일부 경우에는 노드 드레이닝이 PDB 위반에 따라 차단될 수 있는 최대 시간을 구성해야 할 수 있습니다. 예를 들어 클러스터 업데이트 또는 업그레이드를 시작하기 전 제한 시간 값을 구성해야 할 수 있습니다. 또는 PDB 위반에 따라 현재 드레이닝이 차단되는 노드에 대해 제한 시간 값을 구성해야 할 수 있습니다.

제한 시간 값 설정

각 노드는 머신 객체로 제공됩니다.

클러스터의 머신 객체를 나열합니다.

kubectl --kubeconfig CLUSTER_KUBECONFIG get machines

CLUSTR_KUBECONIFG를 클러스터 kubeconfig 파일의 경로로 바꿉니다.

출력 예시:

my-node-pool-7f864959cd-cw472
my-node-pool-7f864959cd-kh86m
my-node-pool-7f864959cd-wtpvx

수정할 머신 객체를 엽니다.

kubectl --kubeconfig CLUSTER_KUBECONFIG edit machine MACHINE_NAME

MACHINE_NAME을 머신 객체의 이름으로 바꿉니다.

편집기에서 다음 주석을 추가합니다.

onprem.cluster.gke.io/pdb-violation-timeout: TIMEOUT

TIMEOUT을 제한 시간 기간을 지정하는 문자열로 바꿉니다. 유효한 시간 단위는 's', 'm', 'h'입니다. 시간 값 예시는 '1h', '1h30m', '10m', '100s'입니다.

제한 시간 값을 '0s'로 설정하면 PDB 위반이 시간 초과되지 않습니다. 이것은 기본 동작과 동일합니다.

예를 들면 다음과 같습니다.

apiVersion: cluster.k8s.io/v1alpha1
kind: Machine
metadata:
  annotations:
    kubelet-version: 1.23.5-gke.1502
    onprem.cluster.gke.io/gke-on-prem-version: 1.12.0-gke.430
    vm-ip-address: 203.0.113.2
    onprem.cluster.gke.io/pdb-violation-timeout: "5m"

수정 세션을 닫습니다.

순차적 업데이트

순차적 업데이트가 진행되는 동안 새 일시 급증 머신이 먼저 생성됩니다. 그런 후 이전 노드가 드레이닝되고 여기에 있는 모든 포드가 제거된 후 이전 머신 객체 및 노드 객체가 모두 삭제됩니다. PDB 위반 제한 시간 주석은 새로 생성된 머신 객체에 유지되지 않습니다.