Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JdbcTemplate
- docker
- AWS
- securitycontextholderfilter
- redis
- Spring
- 쿠버네티스
- 컨테이너
- Secret
- DI
- 스프링 부트
- 도메인
- JWT
- CORS
- argocd
- k8s
- @Transactional
- Spring Container
- MSA
- Spring Data JPA
- mybatis
- Web
- JPQL
- Iam
- JPA
- cicd
- 페이징
- kafka
- dockerhub
- Helm
Archives
- Today
- Total
look-forest
쿠버네티스 무게감있게 설치하기, 트러블슈팅 본문
구성 환경 개요
이러한 환경을 구축해둬야 이것저것 실험하기 좋다

VM 설치
내 PC에 VM을 설치하고, VM 내에 k8s를 설치한다.
내 PC에서 원격접속툴로 VM에 접속하고, VM에서 kubectl로 k8s에 명령을 내린다.
VM에 쿠버네티스 설치

- kubeadm은 쿠버네티스 클러스터를 빠르게 만들고 노드를 붙이는 데 쓰는 초기화 도구. 쉽게 말하면, 쿠버네티스 “설치 마법사”
주로 kubeadm init으로 컨트롤 플레인을 만들고, kubeadm join으로 워커 노드를 클러스터에 합친다.
다만 인프라를 직접 만들거나, 모니터링 같은 부가 기능까지 다 해주지는 않고, 클러스터 부트스트랩에 집중. - CRI: Container Runtime Interface
- CNI: Container Network Interface. 컨테이너들 간의 통신 관리에 관한 쿠버네티스 네트워크 인터페이스. calico는 솔루션.
쿠버네티스가 파드들에 IP 주소를 할당하고, 서로 다른 노드에 있는 파드들이 네트워크를 통해 통신할 수 있도록 하는 핵심 구성 요소. - iptabes: VM의 특정 포트와 Pod Network망 내 특정 파드 IP 연결
- 마스터 노드에 대시보드는 올려도 user pod는 안 올리는게 정석이나 학습용 예외처리.
- Metrics Server가 Container의 자원 사용량 측정하여 대시보드에 제공
트러블슈팅
event를 검색해보면 리소스 문제가 뜬다. 그게 아니라면 주로 app 기동 시 발생한 문제다. app의 로그를 봐라.
이벤트 로그(kubectl events)는 Pod 생성, 스케줄링, 볼륨 마운트 등 Pod 라이프사이클 관련 문제를 진단하는 데 중요한 단서를 제공
// kubelet 상태 확인
1) systemctl status kubelet // systemctl (restart or start) kubelet
2) journalctl -u kubelet | tail -10
// 상태 확인 -> 상세 로그 확인 -> 10분 구글링 -> VM 재기동 -> Cluster 재설치 -> 답을 찾을 때 까지 구글링
// containerd 상태 확인
1) systemctl status containerd
2) journalctl -u containerd | tail -10
// 노드 상태 확인
1) kubectl get nodes -o wide
2) kubectl describe node k8s-master
// Pod 상태 확인 (리소스 문제)
1) kubectl get pods -A -o wide
// Event 확인 (기본값: 1h)
2-1) kubectl get events -A
2-2) kubectl events -n anotherclass-123 --types=Warning (or Normal)
// Log 확인 (app이 기동하면서 발생한 문제)
3-1) kubectl logs -n anotherclass-123 <pod-name> --tail 10 // 10줄 만 조회하기
3-2) kubectl logs -n anotherclass-123 <pod-name> -f // 실시간으로 조회 걸어 놓기
3-3) kubectl logs -n anotherclass-123 <pod-name> --since=1m // 1분 이내에 생성된 로그만 보기
참고 자료 & 이미지 출처
쿠버네티스 어나더 클래스-Sprint 1, 2
'Infra > Kubernetes' 카테고리의 다른 글
| Label/Selector, Probe (0) | 2026.07.27 |
|---|---|
| 컨테이너 한방 정리 (0) | 2026.07.25 |
| EKS를 이용한 Spring Cloud MSA 서버 배포 (0) | 2026.07.19 |
| Argo CD, 프로메테우스/그라파나 (0) | 2026.07.17 |
| Auto Scale (Pod/Node) (0) | 2026.07.17 |
