Kubernetes
Windows 11·VMware·Rocky Linux 실습실에서 Kubernetes 설치부터 배포, 장애 분석과 백업·복구까지 이어집니다.
-

Kubernetes ImagePullBackOff 원인 찾기
ImagePullBackOff에서 Pod 이벤트를 읽고 이미지 태그·레지스트리 인증·노드 네트워크·인증서 문제를 나누어 확인하는 방법입니다.
-
![[쿠버네티스 학습 01] Windows 11·VMware와 Rocky Linux 실습 환경](https://blog.maruops.com/wp-content/uploads/2026/10/maruops-photo-107-768x502.jpg)
[쿠버네티스 학습 01] Windows 11·VMware와 Rocky Linux 실습 환경
Windows 11 안에 Rocky Linux VM 세 대를 만들고 Kubernetes를 설치하는 연재입니다. 우선 VM 사양과 IP 대역을 정해 둘게요. 호스트 메모리가 부족하거나 VPN 대역과 겹치면 뒤의 설치가 정상이어도 실습이 막힐 수 있습니다.
-
![[쿠버네티스 학습 02] Rocky Linux 고정 IP·시간·커널 설정](https://blog.maruops.com/wp-content/uploads/2026/10/maruops-photo-088-768x966.jpg)
[쿠버네티스 학습 02] Rocky Linux 고정 IP·시간·커널 설정
클러스터를 만든 뒤 IP가 바뀌면 인증서와 kubelet 통신까지 확인해야 합니다. 설치 전에 재부팅해도 같은 주소와 설정으로 돌아오는지 확인해 두면 편해요. 아래 Linux 명령은 별도 표시가 없으면 세 노드 모두에서 labadmin 으로 실행합니다.
-
![[쿠버네티스 학습 03] containerd 2.x와 kubeadm 설치](https://blog.maruops.com/wp-content/uploads/2026/10/maruops-photo-000-768x510.jpg)
[쿠버네티스 학습 03] containerd 2.x와 kubeadm 설치
kubelet은 CRI 인터페이스로 containerd에 컨테이너 실행을 요청합니다. containerd는 이미지를 받고 컨테이너를 관리해요. 여기서는 세 노드에 런타임과 Kubernetes 패키지를 준비하고, CRI 응답과 패치 버전까지 확인합니다.
-
![[쿠버네티스 학습 04] 클러스터 구성과 Calico 연결](https://blog.maruops.com/wp-content/uploads/2026/10/maruops-photo-014-768x511.jpg)
[쿠버네티스 학습 04] 클러스터 구성과 Calico 연결
런타임과 패키지가 준비됐다면 컨트롤 플레인을 구성할 차례입니다. kubeadm이 인증서와 설정을 만들고 kubelet이 구성 요소를 실행합니다. 이어서 Pod 네트워크를 붙이고 워커를 추가해요. 진행 순서는 init → CNI → join → 통신 확인 입니다.
-
![[쿠버네티스 학습 05] Deployment 배포와 롤링 업데이트](https://blog.maruops.com/wp-content/uploads/2026/10/maruops-photo-009-768x576.jpg)
[쿠버네티스 학습 05] Deployment 배포와 롤링 업데이트
웹 서버 두 개를 배포한 뒤 Pod 하나를 지워 보겠습니다. 새 Pod가 만들어지는 과정을 보면 선언한 복제본 수를 유지하는 동작이 드러나요. 명령은 cp01에서 실행하고 일반 Pod는 워커에 배치합니다.
-
![[쿠버네티스 학습 06] Service·DNS와 Windows에서의 접속 경로](https://blog.maruops.com/wp-content/uploads/2026/10/maruops-photo-013-768x509.jpg)
[쿠버네티스 학습 06] Service·DNS와 Windows에서의 접속 경로
Pod가 교체돼도 같은 주소로 웹 서버에 접속하려면 Service가 필요합니다. Windows에서 받은 요청이 어느 포트를 거쳐 Pod까지 가는지 따라가 볼게요. 이 예제의 경로는 Windows → 노드:30080 → Service → 준비된 Pod:8080 입니다.
-
![[쿠버네티스 학습 07] local PV·PVC로 파일 남기기](https://blog.maruops.com/wp-content/uploads/2026/10/maruops-photo-062-768x736.jpg)
[쿠버네티스 학습 07] local PV·PVC로 파일 남기기
컨테이너의 쓰기 계층에만 둔 파일은 새 컨테이너를 만들 때 그대로 이어지지 않습니다. 데이터를 남기려면 어디에 저장할지 따로 정해야 해요. wk01의 디렉터리를 local PV로 연결하고 Pod 재생성 전후를 비교하겠습니다.
-
![[쿠버네티스 학습 08] RBAC·NetworkPolicy·Pod 실행 권한](https://blog.maruops.com/wp-content/uploads/2026/10/maruops-photo-017-768x1024.jpg)
[쿠버네티스 학습 08] RBAC·NetworkPolicy·Pod 실행 권한
앞에서 만든 관리자 kubeconfig를 모든 앱과 자동화에 넣을 필요는 없습니다. 작업에 맞는 권한을 따로 주는 편이 유출 시 범위를 줄일 수 있어요. 이 글에서는 API 권한, Pod 통신, 컨테이너 실행 조건을 각각…