WEBBOOK CHAPTER

Git에서 EKS까지: 19장 probe·resource·securityContext를 장애 예방 장치로 쓴다

19장 probe·resource·securityContext를 장애 예방 장치로 쓴다

공식 Kubernetes 문서의 경계는 명확하다. request는 scheduler가 Pod를 놓을 node를 판단하는 기준이고, limit은 runtime에서 사용량을 제한하는 기준이다. CPU limit 초과는 throttling, memory limit 초과는 OOMKill로 나타날 수 있다.

FlowNote의 시작값은 측정 전 가설이다.


resources:
  requests: { cpu: 100m, memory: 96Mi }
  limits: { cpu: 500m, memory: 256Mi }

실제 traffic에서 usage percentile, latency, throttling, OOM, node bin-packing을 보고 조정한다. request를 무조건 낮추면 scheduler가 node를 과밀하게 채우고, 너무 높이면 node가 불필요하게 생긴다.

runAsNonRoot, allowPrivilegeEscalation: false, readOnlyRootFilesystem, capability drop은 기본 방어선이다. 애플리케이션이 임시 파일을 써야 한다면 root filesystem write를 다시 여는 대신 emptyDir volume을 필요한 path에 mount한다. container가 root를 요구한다면 이유와 제거 계획을 기록한다.