안녕하세요, 사내 k8s 클러스터 1.30에서 1.31로 업그레이드 검토 중입니다. 사이드카 컨테이너가 GA 됐다고 하는데, 저희는 Istio 1.22를 쓰고 있고 OpenTelemetry Collector를 사이드카로 붙여 쓰고 있습니다. 1.31로 올리면 뭐가 자동으로 좋아지고 뭘 직접 바꿔야 하나요?
안녕하세요, 사내 k8s 클러스터 1.30에서 1.31로 업그레이드 검토 중입니다. 사이드카 컨테이너가 GA 됐다고 하는데, 저희는 Istio 1.22를 쓰고 있고 OpenTelemetry Collector를 사이드카로 붙여 쓰고 있습니다. 1.31로 올리면 뭐가 자동으로 좋아지고 뭘 직접 바꿔야 하나요?
댓글 4
좋은 시점입니다. 정리해드릴게요.
1.31에서 자동으로 좋아지는 것 (코드 변경 없음)- Job 종료 정상화: 기존엔 사이드카(Istio·OTel) 때문에 Job이 Completed 상태로 안 빠지던 문제 → 자동 해결
- 시작 순서 보장: Istio sidecar가 ready 되기 전에 메인 컨테이너가 외부 호출하던 race condition → 해결
- graceful shutdown: 메인 종료 후 sidecar에 SIGTERM 자동 전파 → 마지막 트레이스/로그 안 사라짐
꼭 손봐야 할 것- Istio: 1.24 이상으로 함께 업그레이드 권장. 1.22도 동작은 하지만 새 라이프사이클을 활용 못 합니다.
- OTel Collector:
- Pod manifest 직접 작성한 sidecar:
업그레이드 체크리스트otel-operator를 0.105+로 업그레이드하면 sidecar 모드를 자동으로 새 형식으로 주입합니다.containers에 있던 것을initContainers로 옮기고restartPolicy: Always추가.Datadog의 경우 사이드카 모드가 비교적 최근에 추가됐어요. 권장:
useSidecar: true로 명시하거나, Helm values에서agents.useNewSidecarLifecycle: true업그레이드 순서는 cluster-agent 먼저 → 노드 에이전트 → 사이드카 주입입니다. 거꾸로 하면 메트릭이 일시적으로 누락됩니다. 그리고 신규 라이프사이클로 바꾸면 Datadog 콘솔에서 Job/CronJob의 "incomplete" 알람이 사라지는 게 가장 체감이 큰 변화일 거예요.