티스토리 뷰

이번 실습의 목표와 흐름

1. k8s 클러스터에 어떠한 것을 지시할 수 있는지 살펴본다.

  • 포드(pod)의 생성과 컨테이너(container)의 실행
  • 디플로이먼트를 이용하여 동일한 기능을 하는 포드의 레플리카셋을 실행
  • 클러스터 외부로부터 접근이 가능하도록 서비스를 실행
  • 생성된(현재 관리되고 있는) k8s오브젝트들을 삭제

 

2. k8s 클러스터의 현재 상태를 조회하는 방법을 알아본다

 

3. 오브젝트 스펙을 작성하는 기초를 익히고 실습해본다

 


실습

kubectl get nodes // 노드 정보 조회

kubectl get pods // 포드 정보 조회

\

kubectl run nginx-pod --image=nginx //nginx 이미지를 받아와 포드 생성
kubectl create deployment dpy-nginx --image=nginx // 이미지를 받아와 디폴로먼트 생성

 

 

Pod는 쿠버네티스에서 컨테이너 실행의 최소 단위이지만, 자체적으로는 복제가 불가능하다.

  • Pod는 쿠버네티스에서 복제(Scale)할 수 있는 리소스가 아닙니다.
  • kubectl scale 명령은 Deployment, ReplicaSet, StatefulSet 등 복제 가능한 리소스에만 사용할 수 있습니다.
  • 따라서 단일 Pod를 복제하려면, 그 Pod 정의를 기반으로 한 Deployment나 ReplicaSet을 생성한 뒤, 그 리소스를 scale 해야 합니다.

Deployment는 여러 Pod를 제어하고 복제할 수 있는 상위 리소스로, scale 명령을 통해 복제본을 만들 수 있다.

 

 

 pod를 외부에 노출할 수 있는 서비스를 생성

kubectl expose pod nginx-pod --type=NodePort --name=pod-svc --port=80

 

 

 

 

접근하기

브라우저에도 잘 뜨는 것을 확인할 수 있다.

 

 

Deployment도 서비스로 생성할 수 있다.

 

 

 

pods 삭제하기

kubectl delete service pod-svc

아까 나왔던 로컬호스트가 실행되지 않는다.

 

Deployment는 항상 지정된 수의 Pod를 유지하려고 하기 때문에, 직접 Pod를 삭제해도 다시 자동으로 생성된다.
Pod를 완전히 없애고 싶다면, 해당 Deployment 자체를 삭제해야 한다.
그렇게 하면 관련된 모든 Pod도 함께 제거된다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
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
글 보관함