카테고리: 컨테이너 오케스트레이션 ← 면접 질문 목록으로 돌아가기
Kubernetes의 전체 아키텍처를 설명하고, Control Plane과 Worker Node의 역할 차이를 설명해주세요.
kube-apiserver의 역할과 동작 방식에 대해 설명해주세요. 다른 컴포넌트들과 어떻게 통신하나요?
etcd의 역할과 중요성에 대해 설명해주세요. 왜 etcd의 백업이 중요한가요?
kube-scheduler의 스케줄링 과정을 단계별로 설명해주세요. Filtering과 Scoring 단계는 무엇인가요?
kube-controller-manager에 포함된 주요 컨트롤러들과 각각의 역할에 대해 설명해주세요.
cloud-controller-manager의 역할과 클라우드 프로바이더와의 통합 방식에 대해 설명해주세요.
kubelet의 역할과 동작 방식에 대해 설명해주세요. Pod의 상태를 어떻게 관리하나요?
kube-proxy의 역할과 iptables/IPVS 모드의 차이점에 대해 설명해주세요.
Container Runtime Interface(CRI)란 무엇이며, containerd와 CRI-O의 차이점은 무엇인가요?
Kubernetes에서 사용되는 CNI(Container Network Interface)란 무엇이며, 주요 CNI 플러그인들을 비교해주세요.
Pod란 무엇이며, 왜 컨테이너 대신 Pod 단위로 관리하나요?
Pod의 생명주기(Lifecycle) 단계(Pending, Running, Succeeded, Failed, Unknown)에 대해 각각 설명해주세요.
Pod의 재시작 정책(restartPolicy)인 Always, OnFailure, Never의 차이점과 사용 시나리오를 설명해주세요.
Pod가 Pending 상태에 머무는 원인들과 해결 방법을 설명해주세요.
Pod Phase와 Container State의 차이점은 무엇인가요?
Sidecar 패턴이란 무엇이며, 어떤 상황에서 사용하나요? 구체적인 예시를 들어주세요.
Ambassador 패턴이란 무엇이며, 프록시 역할을 하는 컨테이너의 활용 사례를 설명해주세요.
Adapter 패턴이란 무엇이며, 로그 포맷 변환 등의 활용 사례를 설명해주세요.
Init Container의 역할과 일반 컨테이너와의 차이점을 설명해주세요.
Init Container의 실행 순서와 실패 시 동작에 대해 설명해주세요.
Deployment의 역할과 ReplicaSet과의 관계에 대해 설명해주세요.
Deployment의 배포 전략(RollingUpdate, Recreate)을 비교하고, 각각의 사용 시나리오를 설명해주세요.
RollingUpdate 전략에서 maxSurge와 maxUnavailable 설정의 의미와 적절한 값 설정 방법을 설명해주세요.
Deployment의 롤백(rollback) 방법과 revision history 관리에 대해 설명해주세요.
Blue-Green 배포와 Canary 배포를 Kubernetes에서 구현하는 방법을 설명해주세요.
StatefulSet이란 무엇이며, Deployment와의 차이점을 설명해주세요.
StatefulSet에서 Pod 이름과 네트워크 ID의 안정성(stable identity)은 어떻게 보장되나요?
StatefulSet의 순차적 배포(ordered deployment)와 병렬 배포(parallel deployment) 방식의 차이를 설명해주세요.
StatefulSet에서 PersistentVolumeClaim 템플릿의 역할과 동작 방식을 설명해주세요.
StatefulSet 사용 시 Headless Service가 필요한 이유를 설명해주세요.
DaemonSet의 역할과 사용 사례(로그 수집, 모니터링 에이전트 등)를 설명해주세요.
DaemonSet에서 특정 노드에만 Pod를 배포하는 방법을 설명해주세요.
Job의 역할과 completions, parallelism 설정의 의미를 설명해주세요.
Job의 backoffLimit와 activeDeadlineSeconds 설정의 역할을 설명해주세요.
CronJob의 역할과 스케줄 표현식, concurrencyPolicy 설정에 대해 설명해주세요.
Kubernetes Service의 역할과 필요성에 대해 설명해주세요.
ClusterIP 타입 Service의 동작 방식과 사용 시나리오를 설명해주세요.
NodePort 타입 Service의 동작 방식과 포트 범위 제한에 대해 설명해주세요.
LoadBalancer 타입 Service의 동작 방식과 클라우드 환경에서의 프로비저닝 과정을 설명해주세요.
ExternalName 타입 Service의 역할과 사용 사례를 설명해주세요.
Headless Service란 무엇이며, StatefulSet과 함께 사용되는 이유를 설명해주세요.
Ingress의 역할과 Service와의 차이점을 설명해주세요.
Ingress Controller의 역할과 주요 구현체(NGINX, Traefik, HAProxy 등)를 비교해주세요.
Ingress에서 호스트 기반 라우팅과 경로 기반 라우팅을 설정하는 방법을 설명해주세요.
Ingress에서 TLS/SSL 인증서를 설정하는 방법과 cert-manager와의 연동에 대해 설명해주세요.
Ingress의 annotations을 활용한 설정(rate limiting, rewrites 등) 방법을 설명해주세요.
PersistentVolume(PV)과 PersistentVolumeClaim(PVC)의 개념과 관계를 설명해주세요.
PV의 접근 모드(ReadWriteOnce, ReadOnlyMany, ReadWriteMany)의 차이점을 설명해주세요.
PV의 Reclaim Policy(Retain, Delete, Recycle)의 차이점과 사용 시나리오를 설명해주세요.
StorageClass의 역할과 동적 프로비저닝(Dynamic Provisioning)의 동작 방식을 설명해주세요.
CSI(Container Storage Interface)의 역할과 주요 CSI 드라이버들에 대해 설명해주세요.
emptyDir, hostPath, configMap, secret 볼륨 타입의 차이점과 사용 사례를 설명해주세요.
ConfigMap의 역할과 생성 방법(literal, file, directory)에 대해 설명해주세요.
ConfigMap을 Pod에 주입하는 방법(환경변수, 볼륨 마운트)의 차이점을 설명해주세요.
Secret의 역할과 ConfigMap과의 차이점을 설명해주세요. Secret은 정말 안전한가요?
Secret의 타입(Opaque, kubernetes.io/dockerconfigjson, kubernetes.io/tls 등)에 대해 설명해주세요.
외부 시크릿 관리 도구(Vault, AWS Secrets Manager)와 Kubernetes Secret의 연동 방법을 설명해주세요.
ConfigMap/Secret 변경 시 Pod에 자동으로 반영되지 않는 이유와 해결 방법을 설명해주세요.
nodeSelector를 사용한 Pod 스케줄링 방법과 한계점을 설명해주세요.
Node Affinity와 nodeSelector의 차이점, requiredDuringSchedulingIgnoredDuringExecution와 preferredDuringSchedulingIgnoredDuringExecution의 차이를 설명해주세요.
Pod Affinity와 Pod Anti-Affinity의 개념과 사용 사례를 설명해주세요.
topologyKey의 역할과 topology spread constraints의 활용 방법을 설명해주세요.
Taint와 Toleration의 개념과 동작 방식을 설명해주세요.
Taint의 effect(NoSchedule, PreferNoSchedule, NoExecute)의 차이점을 설명해주세요.
Master/Control Plane 노드에 Pod가 스케줄되지 않는 이유와 이를 허용하는 방법을 설명해주세요.
Node에 문제가 생겼을 때 자동으로 적용되는 Taint(node.kubernetes.io/not-ready 등)에 대해 설명해주세요.
컨테이너의 resource requests와 limits의 차이점과 역할을 설명해주세요.
CPU와 Memory 리소스 단위(millicore, Mi, Gi)에 대해 설명해주세요.
requests만 설정했을 때와 limits만 설정했을 때의 동작 차이를 설명해주세요.
Memory limits을 초과했을 때와 CPU limits을 초과했을 때의 동작 차이를 설명해주세요.
Pod의 QoS(Quality of Service) 클래스(Guaranteed, Burstable, BestEffort)의 결정 기준과 의미를 설명해주세요.
LimitRange의 역할과 설정 방법(default, defaultRequest, min, max)을 설명해주세요.
ResourceQuota의 역할과 네임스페이스 단위 리소스 제한 방법을 설명해주세요.
PriorityClass의 역할과 Pod 우선순위 기반 스케줄링/프리엠션에 대해 설명해주세요.
HPA(Horizontal Pod Autoscaler)의 동작 원리와 설정 방법을 설명해주세요.
HPA에서 CPU/Memory 기반 스케일링과 Custom Metrics 기반 스케일링의 차이를 설명해주세요.
HPA의 스케일링 알고리즘과 stabilizationWindowSeconds 설정의 역할을 설명해주세요.
HPA 사용 시 주의사항과 Best Practice를 설명해주세요.
VPA(Vertical Pod Autoscaler)의 동작 원리와 HPA와의 차이점을 설명해주세요.
VPA의 updateMode(Off, Initial, Auto)의 차이점을 설명해주세요.
Cluster Autoscaler의 동작 원리와 노드 추가/삭제 조건을 설명해주세요.
HPA, VPA, Cluster Autoscaler를 함께 사용할 때의 고려사항을 설명해주세요.
RBAC(Role-Based Access Control)의 개념과 구성 요소(Role, ClusterRole, RoleBinding, ClusterRoleBinding)를 설명해주세요.
Role과 ClusterRole의 차이점, RoleBinding과 ClusterRoleBinding의 차이점을 설명해주세요.
RBAC에서 verbs(get, list, watch, create, update, patch, delete)의 의미를 설명해주세요.
최소 권한 원칙(Principle of Least Privilege)을 Kubernetes RBAC에서 적용하는 방법을 설명해주세요.
ServiceAccount의 역할과 Pod에서의 사용 방법을 설명해주세요.
ServiceAccount 토큰의 자동 마운트와 이를 비활성화하는 방법을 설명해주세요.
Kubernetes API 서버의 인증(Authentication) 방식들(X.509, Bearer Token, OIDC 등)을 설명해주세요.
kubeconfig 파일의 구조와 contexts, clusters, users 설정에 대해 설명해주세요.
NetworkPolicy의 역할과 Ingress/Egress 규칙 설정 방법을 설명해주세요.
NetworkPolicy가 적용되지 않는 경우(CNI 미지원 등)와 기본 정책에 대해 설명해주세요.
Pod Security Standards(Privileged, Baseline, Restricted)의 차이점을 설명해주세요.
Pod Security Admission Controller의 역할과 enforce, audit, warn 모드의 차이를 설명해주세요.
컨테이너의 securityContext 설정(runAsUser, runAsNonRoot, readOnlyRootFilesystem 등)에 대해 설명해주세요.
Liveness Probe의 역할과 설정 방법(httpGet, tcpSocket, exec)을 설명해주세요.
Readiness Probe의 역할과 Liveness Probe와의 차이점을 설명해주세요.
Startup Probe의 역할과 느린 시작 애플리케이션에서의 활용 방법을 설명해주세요.
Probe 설정값(initialDelaySeconds, periodSeconds, timeoutSeconds, failureThreshold)의 의미와 적절한 설정 방법을 설명해주세요.
잘못된 Probe 설정으로 인한 문제(CrashLoopBackOff, 서비스 불가 등)와 해결 방법을 설명해주세요.
kubectl logs 명령어의 다양한 옵션(-f, --previous, -c, --since)을 설명해주세요.
Kubernetes에서의 로깅 아키텍처와 노드 레벨/클러스터 레벨 로깅의 차이를 설명해주세요.
metrics-server의 역할과 kubectl top 명령어 사용 방법을 설명해주세요.
Prometheus를 활용한 Kubernetes 모니터링 구성 방법을 설명해주세요.
Kubernetes에서 수집해야 하는 주요 메트릭(Node, Pod, Container 레벨)을 설명해주세요.
Helm의 역할과 Chart, Release, Repository의 개념을 설명해주세요.
Helm Chart의 구조(Chart.yaml, values.yaml, templates/)를 설명해주세요.
Helm의 템플릿 함수와 values.yaml을 통한 설정 오버라이드 방법을 설명해주세요.
Helm의 Release 관리(install, upgrade, rollback, uninstall)와 Revision에 대해 설명해주세요.
Helm Hooks의 역할과 pre-install, post-install 등의 사용 사례를 설명해주세요.
Kubernetes 클러스터 버전 업그레이드 절차와 주의사항을 설명해주세요.
Control Plane 업그레이드와 Worker Node 업그레이드의 순서와 방법을 설명해주세요.
etcd 백업과 복구 방법을 설명해주세요.
kubectl drain과 cordon 명령어의 역할과 차이점을 설명해주세요.
노드 유지보수 시 Pod 안전하게 이동시키는 방법과 PodDisruptionBudget의 역할을 설명해주세요.
Pod가 CrashLoopBackOff 상태일 때의 원인 분석과 해결 방법을 설명해주세요.
Pod가 ImagePullBackOff 상태일 때의 원인과 해결 방법을 설명해주세요.
kubectl describe, kubectl logs, kubectl exec를 활용한 디버깅 방법을 설명해주세요.
kubectl debug 명령어를 활용한 ephemeral container 디버깅 방법을 설명해주세요.
Service에 연결되지 않는 Pod 문제 해결 방법(selector, endpoints 확인 등)을 설명해주세요.
DNS 관련 문제 해결 방법(CoreDNS 확인, nslookup 테스트 등)을 설명해주세요.
서비스 메시(Service Mesh)의 개념과 필요성에 대해 설명해주세요.
Sidecar Proxy 패턴과 서비스 메시에서의 트래픽 제어 방식을 설명해주세요.
Istio의 아키텍처와 주요 컴포넌트(Envoy, Istiod)에 대해 설명해주세요.
Istio의 트래픽 관리 기능(VirtualService, DestinationRule)에 대해 설명해주세요.
Istio의 보안 기능(mTLS, Authorization Policy)에 대해 설명해주세요.
Linkerd의 특징과 Istio와의 비교를 설명해주세요.
CRD(Custom Resource Definition)의 개념과 Kubernetes 확장 방법을 설명해주세요.
Custom Resource와 Custom Controller의 관계를 설명해주세요.
Operator 패턴이란 무엇이며, 어떤 상황에서 사용하나요?
Operator Framework(Operator SDK, Kubebuilder)를 활용한 Operator 개발 방법을 설명해주세요.
유명한 Operator 사례(Prometheus Operator, MySQL Operator 등)와 그 장점을 설명해주세요.
Kubernetes 클러스터 내 Pod 간 통신 원리를 설명해주세요.
Service의 ClusterIP가 동작하는 원리(kube-proxy, iptables/IPVS)를 설명해주세요.
Pod에서 외부 서비스로 통신할 때의 네트워크 흐름을 설명해주세요.
Gateway API의 개념과 Ingress와의 차이점을 설명해주세요.
멀티 클러스터 관리의 필요성과 주요 고려사항을 설명해주세요.
Federation의 개념과 멀티 클러스터 배포 전략을 설명해주세요.
GitOps의 개념과 ArgoCD를 활용한 Kubernetes 배포 방법을 설명해주세요.
Flux와 ArgoCD의 비교 및 선택 기준을 설명해주세요.