11. Pod 배포 문제 해결
Source: Dev.to
실험실 정보
주니어 DevOps 팀원이 Kubernetes 클러스터에 스택을 배포하는 데 어려움을 겪었습니다. 파드가 시작되지 않고 오류가 발생합니다. 문제를 신속히 해결하고 바로 잡아봅시다.
- 파드 이름:
webserver - 주 컨테이너:
nginx-container(이미지nginx:latest) - 사이드카 컨테이너:
sidecar-container(이미지ubuntu:latest)
목표는 파드를 Running 상태로 만들고 애플리케이션에 접근할 수 있게 하는 것입니다.
Note:
jump_host에 있는kubectl유틸리티는 이미 Kubernetes 클러스터와 연동되도록 설정되어 있습니다.
초기 점검
kubectl get pods
kubectl describe pod webserver
파드가 멈춰 있다면, 수정된 정의를 적용하기 전에 삭제하세요:
kubectl delete pod webserver
수정된 파드 정의 만들기
apiVersion: v1
kind: Pod
metadata:
name: webserver
labels:
app: web-app
spec:
containers:
- name: nginx-container
image: nginx:latest # Fixed: removed extra 's'
ports:
- containerPort: 80
volumeMounts:
- name: shared-logs
mountPath: /var/log/nginx
- name: sidecar-container
image: ubuntu:latest
command:
- sh
- -c
args:
- while true; do cat /var/log/nginx/access.log /var/log/nginx/error.log; sleep 30; done
volumeMounts:
- name: shared-logs
mountPath: /var/log/nginx
volumes:
- name: shared-logs
emptyDir: {}
매니페스트 적용:
kubectl apply -f webserver-fixed.yaml
배포 확인
kubectl get pods
kubectl describe pod webserver
각 컨테이너의 로그 확인:
kubectl logs webserver -c nginx-container
kubectl logs webserver -c sidecar-container
파드 내부에서 웹 서버 테스트:
kubectl exec webserver -c nginx-container -- curl -s localhost:80 | head -n 5
출력에 기대한 HTML 내용이 표시되면 파드가 정상적으로 실행 중이며 애플리케이션에 접근할 수 있는 것입니다.
리소스 및 다음 단계
- 전체 코드 저장소: KodeKloud Learning Labs
- 추가 심층 학습: Whispering Cloud Insights – 다른 기술 기사 읽기
- 토론 참여: DEV Community – 생각과 질문 공유
- 연결: LinkedIn
크레딧
- 모든 실험실은 KodeKloud에서 제공되었습니다.
- 귀중한 리소스를 제공해 주셔서 감사합니다.