인프라 & 클라우드 · 심화
Kubernetes가 다양한 컨테이너 런타임(Docker, containerd, CRI-O 등)과 상호작용할 수 있도록 하는 Container Runtime Interface(CRI)의 역할과 중요성에 대해 설명하고, 만약 특정 요구사항(예: 보안 강화, 성능 최적화)을 위해 기존 런타임 대신 자체 개발한 커스텀 컨테이너 런타임을 Kubernetes 클러스터에 통합해야 한다면, 어떤 단계를 거쳐야 하며 어떤 기술적 고려사항이 있을지 설명해 주십시오.
힌트 · CRI의 gRPC 서비스 인터페이스 구현, OCI(Open Container Initiative) 표준 준수, 그리고 런타임 통합 시 Pod의 라이프사이클 관리 및 로깅/모니터링 연동 방안을 중심으로 설명할 수 있습니다.
CRI컨테이너 추상화런타임 플러그인OCI (Open Container Initiative)kubelet
모범답안
Kubernetes의 CRI는 컨테이너 런타임과의 추상화 계층 역할을 합니다. 이를 통해 Kubernetes는 Docker, containerd, CRI-O 등 다양한 런타임을 동일한 방식으로 관리할 수 있습니다. CRI는 gRPC 인터페이스를 통해 kubelet과 런타임 간 통신을 정의하며, OCI 표준 준수를 통해 컨테이너 이미지 및 런타임 호환성을 보장합니다.
자체 커스텀 런타임을 통합하려면, 먼저 CRI 인터페이스를 구현해야 합니다. 즉, 컨테이너 생성, 시작, 중지, 삭제 등 Pod 라이프사이클 관리를 위한 gRPC API를 개발해야 합니다. 또한, OCI 호환 이미지 포맷을 지원하고, 기존 런타임의 보안 및 성능 최적화 기능을 커스텀 런타임에 반영해야 합니다. 통합 후에는 kubelet이 커스텀 런타임을 인식하도록 설정하고, 로깅 및 모니터링 시스템과의 연동 방안도 마련해야 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Docker / Kubernetes 면접 질문
- Kubernetes 환경에서 애플리케이션의 복잡한 배포, 관리, 운영 라이프사이클을 자동화하기 위해 Custom Resource Definition(CRD)과 Controller를 활용하는 Operator 패턴을 설계하고 구현해야 한다면, 어떤 핵심 구성 요소를 고려하고 어떤 방식으로 애플리케이션의 상태 관리 및 자동 복구를 구현할 것인지 설명해 주십시오.
- MSA 환경에서 Kubernetes 기반의 서비스 메쉬(Service Mesh)를 도입하여 Blue/Green 배포, Canary 배포, A/B 테스트와 같은 고급 트래픽 관리 전략을 구현하려고 합니다. 서비스 메쉬가 이러한 전략들을 어떻게 지원하며, 특히 요청 기반 라우팅(request-based routing) 및 폴트 인젝션(fault injection)과 같은 기능들을 어떻게 활용하여 실제 운영 환경에 적용할 수 있을지 구체적인 시나리오와 함께 설명해 주십시오.
- 대규모 Kubernetes 클러스터에서 특정 워크로드의 스케줄링 지연이 발생하거나, 노드 자원 활용률이 불균형하게 나타나는 문제가 지속될 때, 기본 스케줄러의 한계를 극복하고 최적의 스케줄링을 달성하기 위한 방안을 제시해 주십시오. 이에는 커스텀 스케줄러 구현, 스케줄러 확장(Scheduler Extender), 또는 고급 스케줄링 정책(Taints/Tolerations, Node Affinity/Anti-Affinity, PriorityClass)의 복합적인 활용이 포함될 수 있습니다.
- Kubernetes 환경에서 대규모 데이터베이스나 고성능 컴퓨팅(HPC) 워크로드와 같이 I/O 성능이 매우 중요한 스테이트풀 애플리케이션을 운영할 때, PersistentVolume(PV) 및 PersistentVolumeClaim(PVC)을 활용한 스토리지 솔루션의 성능 병목 현상을 진단하고 최적화하기 위한 방안을 제시해 주십시오. 특히, Container Storage Interface(CSI)를 활용한 커스텀 스토리지 드라이버 개발 또는 기존 드라이버 최적화 관점에서 설명해 주십시오.
- Kubernetes 클러스터 내에서 Pod 간 통신 문제를 진단하고 해결해야 할 때, 특히 Network Policy와 CNI(Container Network Interface) 플러그인의 복합적인 상호작용으로 인해 발생하는 문제에 초점을 맞춰 설명해 주십시오. 특정 Pod가 예상치 못하게 다른 Pod와 통신하지 못하거나, 외부 네트워크 접근에 실패하는 상황을 가정하고, 문제 진단 방법과 해결 절차를 구체적으로 제시해 주십시오.
- Kubernetes 클러스터의 보안을 최고 수준으로 강화하기 위해, Pod Security Standards(PSS)를 효과적으로 적용하고, Admission Controllers를 활용하여 클러스터에 배포되는 모든 워크로드에 대한 보안 정책을 강제하는 방안을 설계해 주십시오. 특히, PSS의 `restricted` 프로파일을 준수하면서도 특정 예외를 허용해야 하는 경우, 이를 어떻게 유연하게 관리할 수 있을지 설명해 주십시오.