반응형
이슈사항
tigera-operator tigera-operator-8bb6c747f-xf6m7 0/1 Evicted 0 3m52s
tigera-operator tigera-operator-8bb6c747f-xfm2b 0/1 Evicted 0 2m38s
tigera-operator tigera-operator-8bb6c747f-xfpwm 0/1 Evicted 0 2m7s
tigera-operator tigera-operator-8bb6c747f-xgch9 0/1 Evicted 0 3m47s
tigera-operator tigera-operator-8bb6c747f-xgdlm 0/1 Evicted 0 16s
갑자기 특정 파드가 Evicted 상태로 방출되는 현상이 발생하였다.
보통 이런 경우, K8s 노드의 루트파일시스템이 80%를 넘어. kubelet이 사용하지 않은 데이터를 정리해서 용량을 확보하려다가 실패하여 노드에서 동작하는 파드들을 강제로 방출시켜발생한다. 노드가 방출되면 다른쪽 노드에 생성되어야 하는데, 다른 실행될 노드가 없다면 다시 해당 노드에 생성되고 방출되기를 반복하는 것이다.
# kubectl describe nodes [ 노드명 ]
Warning FreeDiskSpaceFailed 47m (x9 over 87m) kubelet (combined from similar events): Failed to garbage collect required amount of images. Attempted to free 5927389593 bytes, but only found 0 bytes eligible to free.
노드의 로그를 보니, kubelet의 가비지 컬렉터가 동작하여 공간을 확보하려다가 실패했다고 나와 있었다. 그래서 실제로 방출이 일어난 노드의 루트 파일시스템을 확인하니, 80% 사용중은 아니었지만 100G가 밖에 용량이 할당되어 있지 않아, 용량이 큰 이미지를 가져오거나 파드가 뜨기에는 부족하여 작업중 디스크 압박을 받기에 충분한 상황이었다.
해결내용
lsblk 명령으로 확인하니 루트파일시스템에 볼륨을 할당한 파티션에 360GB 정도가 더 남아있어서, 루트 파일시스템의 볼륨을 확장해주었고 디스크 압박은 사라졌다.
# 논리볼륨이 포함된 볼륨그룹의 용량 확인
sudo vgdisplay ubuntu-vg
# 논리볼륨 확장하기
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# 파일시스템 확장하기
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
# 조회하기
df -h
lsblk
그리고 아래 명령어로 Evicted 상태로 남아 있는 파드들을 모두 정리해주었다.
kubectl delete pod \
-n tigera-operator \
--field-selector status.phase=Failed
반응형
'Ops > Kubernetes' 카테고리의 다른 글
K8S NFS 동적 프로비저닝 구현하기 (0) | 2025.09.16 |
---|---|
kubectl로 여러 Kubernetes 클러스터 제어하기 (3) | 2025.08.25 |
[이슈] Traefik에서 대량으로 포트 오픈 시 발생한 이슈 (1) | 2025.08.07 |
ETCD BackUp / Restore ( ETCD 백업 및 복원 ) (0) | 2025.06.22 |
Kubernetes 네트워크 동작원리 (0) | 2025.06.18 |