컨테이너화된 애플리케이션의 배치 · 스케일링 · 운영을 자동화하는 오픈소스 관리 시스템이다. 구글이 설계했고 지금은 CNCF 가 관리한다. "K8s" 로 줄여 쓴다.
Kubernetes 는 최근 마이너 3개만 패치를 받는다. 패치 지원 기간은 약 1년이다.
| 계열 |
상태 |
지원 종료 |
| 1.37 |
현행. 최신 1.37.0 |
2027-10-28 |
| 1.36 |
유지보수 중. 최신 1.36.4 |
2027-06-28 |
| 1.35 |
유지보수 중. 최신 1.35.8 |
2027-02-28 |
- 하이퍼바이저와 스토리지를 무엇으로 고르느냐에 따라 직접 얹어야 하는 것이 달라진다.
- OS · 런타임 · CNI · kubectl 의 지원 조합을 어디서 확인하는지 정리했다.
- 현행 버전. containerd · kubeadm · Flannel 로 control-plane 1 + worker 2 구성.
- 지난 버전 기준. 저장소가 닫혀 그대로는 따라 할 수 없다.
- 지난 버전 기준. kubectl 바이너리만 내려받아 설치한다.
- kubeadm init 이 CRI 를 못 찾는 단계와 CRI 가 살아난 뒤 컨테이너가 뜨지 않는 단계를 갈라 본다.
- 단계별 파일과 공통 함수로 나눠 실패 지점부터 이어 돌릴 수 있게 만드는 구성이다.
- 인증서만 남고 뒤 단계가 비어 있는 상태에서 나오는 증상 셋과, 되살릴지 재설치할지의 기준이다.
- 테인트를 풀어 올려도 되는 것과 안 되는 것, 그리고 진입점 VIP 선택지를 정리한다.
- RHEL 계열 클러스터에 Ubuntu 워커를 붙일 때 맞춰야 하는 것.
- 이름을 쓸 수 있는 자리와 IP 로 고정되는 자리를 가른다.
- 이미지와 스냅샷이 쌓이는
root 를 다른 디스크로 옮긴다.
- device plugin 데몬셋 수준에서 장치 목록을 제한해 호스트 워크로드와 GPU 를 나눠 쓴다.
- device plugin 이 MIG 장치를 읽지 못할 때의 권한 설정.
- Deployment · Service · ConfigMap 매니페스트 작성.
- 실행 명령과 인자 지정, 환경 변수 치환, 리소스 표기와 이미지 가져오기.
- Secret 값을 컨테이너 환경 변수로 넘긴다.
- ServiceAccount 에 붙은 pull secret 이 실제로 쓰이는지 확인한다.
- kubelet 이 치환하는 자리와 컨테이너 셸이 치환하는 자리를 가른다.
- 환경 변수로 쓴 값과 볼륨으로 마운트한 값의 반영 방식이 다르다.
- 파드마다 달라야 하는 자기 주소를 ConfigMap 대신 Downward API 로 채우는 방법과 한계다.
- metadata.namespace 는 고정 문자열만 받는다는 점과 실제로 쓰는 대안이다.
- 파드 하나만 맞출 때와 클러스터 전체에 적용할 때의 방법, 그래도 로그 시각이 안 바뀔 때다.
- liveness · readiness 프로브와 정상 종료 처리.
- 파드에 정체성을 주는가로 갈리는 차이와, 만들고 나면 못 바꾸는 필드를 다룬다.
- 기본은 CronJob 이고 사이드카 cron 이 정당화되는 조건과 그 함정을 정리한다.
- 데드라인 · OOM · 축출 중 무엇이 끝냈는지 먼저 확정하고 그에 맞는 대처를 고른다.
- nodeSelector · affinity · taint.
- 무엇을 초과한 것인지 가르고 requests · 할당 가능량 · 쿼터 가운데 어디를 손댈지 정한다.
- init 컨테이너가 끝나지 않는 원인을 찾는다.
- finalizer 와 볼륨 분리 지연을 확인하고 강제 삭제 여부를 정한다.
- 볼륨 · 이름 해석 · 연결을 미리 확인하는 임시 파드.
- 파드에 주입된 토큰으로 API 서버를 호출한다.
- 도커 소켓을 마운트하지 않고 파드 안에서 이미지를 굽는 구성과 이미지 출처 확인이다.
- 환경별로 다른 값만 빼내는 것이 목적이라는 전제와 손·자동 두 가지 변환 순서다.
- 적용된 values 를 되찾고 업그레이드 · 재설치한다.
- 사내 레지스트리에 차트를 올릴 때의 인증서 신뢰 설정.
- 결과가 비거나 경고가 출력에 섞이는 원인을 찾는다.
- 대량 매니페스트 적용에서 일부만 패치 생성이 실패할 때의 원인과 조치다.
- 노드 대 노드로 열어야 하는 포트를 쿠버네티스 자체 · CNI 모드 · DNS · 스토리지로 나눠 적었다.
- 노드가 NotReady 로 남고 CNI 설정을 읽지 못할 때.
- Calico 의 IP_AUTODETECTION_METHOD 기본값이 다른 인터페이스를 고르면서 생기는 장애다.
- 방화벽을 켜면 응용이 줄줄이 깨지는 증상의 원인과, 대역만 열어서는 부족한 이유다.
- 베어메탈에서 LoadBalancer 타입 서비스를 쓴다.
- ClusterIP · NodePort · LoadBalancer 를 언제 쓰는지.
- CoreDNS 가 노드 resolv.conf 를 상위로 삼아 내부 이름 해석까지 막힐 때의 Corefile 구성이다.
- 노드의 hosts 가 파드에 들어가지 않는 이유와 hostAliases · ConfigMap 두 가지 방법이다.
- 서비스를 외부로 열지 않고 로컬 포트로 붙는다.
- 관리형 클러스터에서 LoadBalancer 로 붙이는 구성.
- 실제로 동작하는 분배 값과 쿠키 기반 어피니티.
- 컨트롤러가 기존 인그레스를 보지 않게 되는 클래스 값 두 가지와 바뀐 서비스 값 구조다.
- 5xx 숫자별 원인과 하위 경로 리다이렉트 처리.
- 테스트 방법을 바로잡고 노드를 넘는 통신인지 가른 뒤 externalTrafficPolicy 를 본다.
- 클러스터 안에서 Ceph 를 운영한다. 블록 · 파일 · 오브젝트 스토리지.
- 복제본이 깨져 Faulted 로 떨어질 때, 실사용량이 선언 용량을 넘을 때, 확장이 거부될 때다.
- 엔진을 고르고 반입할 이미지와 노드 요구사항을 정한다.
- 기본 경로가 루트 디스크를 갉아먹지 않게 StorageClass 와 내부 작업 디렉터리를 함께 옮긴다.
- PVC 가 어느 PV 에 붙는지와 볼륨을 바꾸는 방법.
- attach 와 mount 실패가 번갈아 찍힐 때의 확인 순서.
- subPath 가 하는 일과 확인 순서, Longhorn 을 쓸 때의 주의와 subPath 를 피하는 선택이다.
- CSI 스냅샷 객체 구조와 삭제가 막히는 이유.
- 특정 노드에서만 NFS 볼륨이 붙지 않을 때.
- CI 나 모니터링 서버에 줄 권한 제한 kubeconfig 를 만든다.
- Pod Security Admission 이 파드 생성을 막을 때.
- 보안 점검에서 요구되는 kubelet 설정 두 가지.
- 감사 로그 · PodSecurity admission · kubelet 익명 접근 차단을 static Pod 매니페스트에서 건다.
- 한 키에 값 하나라는 제약을 불리언 키 · nodeAffinity · 애너테이션으로 우회하는 방법이다.
- 파드 확장과 노드 확장 두 층을 구분하고, 노드를 만들어 줄 아래 계층별로 도구를 고른다.
- cordon 과 drain 으로 노드를 비우고 되돌린다.
- kubelet 하트비트가 끊긴 원인을 찾는다.
- kubelet 이 안 뜨는 것이 kubectl 접속 실패로 이어지는 경로와 어떤 파일이 빠졌는지 확정하는 법이다.
- healthz · livez · readyz 세 엔드포인트의 차이와 초기화 컨테이너 로그를 꺼내 보는 방법이다.
- 파드가 바로 넘어가지 않는 이유와 관련 대기 시간.
- docker 없는 노드에서 이미지를 다루는 법과, df 로는 여유가 보이는데 taint 가 안 풀릴 때다.
- 파드를 한꺼번에 띄울 때 kubelet 의 이미지 내려받기 한도에 걸려 ErrImagePull 로 넘어가는 경우다.
- 임시 컨테이너를 붙이고 종료 코드를 확인한다.
- kubectl logs 가 읽는 노드 로컬 파일의 경로와 형식, 타임스탬프가 전부 같게 찍히는 이유다.
- 노드는 복구 대상이 아니라 재생성 대상이라는 전제로 이미지의 쓸모를 다시 정한다.
- isvc 축약형의 정체와 predictor · transformer · explainer 를 묶어 관리하는 구조다.
- Rancher Kubernetes Engine.
- 설치 직후 helm-install 파드가 Proxy Error 로 반복 실패할 때의 진단과 설치 값 변경이다.
- API 가 아니라 어디까지 묶여 오느냐가 차이라는 관점에서 구성 요소와 선택 기준을 정리한다.
- Agent 가 헤드리스 서비스 이름을 풀지 못하는 경우.
- 차트·이미지를 밖에서 들여오는 절차와, 한 번 실패하면 CRD 가 남아 재설치가 막히는 함정이다.
- API 서버부터 kubelet 까지의 생성 경로.