Kubernetes 실습 3 : 앱 조사하기

Gyullbb·2021년 3월 23일
0

K8S

목록 보기
3/5

3-1. Pod와 Node 보기

Pod

[^출처 : Kubernetes 공식 문서]: Kubernetes Deployment

위 실습에서 Deployment를 생성했을 때 쿠버네티스는 애플리케이션 인스턴스에 자동으로 Pod를 생성한다. Pod는 쿠버네티스 플랫폼에서의 최소 단위이며, Deployment를 생성할 때 Deployment는 컨테이너 내부에서 컨테이너와 함께 파드를 생성한다.

각 파드는 Deployment에 의해 스케줄되어진 노드에게 묶이며, 노드에 문제가 생길 경우 클러스터 내의 가용한 다른 노드들을 대상으로 스케줄링된다.

각 Pod는 각기 다른 IP 주소를 가지고 있으며 Pod 내에는 공유 스토리지(volume), 컨테이너화 된 앱 등이 포함되어 있다.

Node

[^출처 : Kubernetes 공식 문서]: Kubernetes Deployment

Pod는 항상 Node상에서 동작한다. Node는 Master Node에 의해 관리가 되며, 하나의 노드는 여러개의 Pod를 가질 수 있다. Master Node는 클러스터 내 Node를 통해서 Pod에 대한 스케줄링을 자동으로 처리한다.

Kubelet이란?

Master Node와 Worker Node 간 통신을 책임지는 프로세스이다.

Container Runtime이란?

레지스트리에서 컨테이너 이미지를 가져와 묶여 있는 것을 풀고 애플리케이션을 동작시키는 역할을 맡는다. 대표적으로 도커, CRI-O, containerd가 있다.

kubectl 대표 명령어

  • kubectl get - 자원을 나열한다
  • kubectl describe - 자원에 대해 상세한 정보를 보여준다.
  • kubectl logs - 파드 내 컨테이너의 로그들을 출력한다
  • kubectl exec - 파드 내 컨테이너에 대한 명령을 실행한다.

3-2. 앱 조사하기

앞선 실습에서 Deployment를 이용하여 Pod를 생성했었다. Pod 정보를 확인하는 명령어는 아래와 같다.

$ kubectl get pods
NAME                                   READY   STATUS    RESTARTS   AGE
kubernetes-bootcamp-765bf4c7b4-vxskv   0/1     Pending   0          5s

pod 컨테이너의 IP주소, 포트, 이벤트 리스트 등을 확인하기 위해서는 describe 명령어를 사용하면 된다.

$ kubectl describe pods

앞선 실습에서 시행한 것 처럼 외부 네트워크에서의 접근을 가능하게 하기 위해 새로운 탭에서 proxy를 설정해주고 curl 명령어를 통해서 애플리케이션의 결과를 확인한다.

//another tab
$ kubectl proxy

//original tab
$ curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-765bf4c7b4-jf7dn | v=1

컨테이너의 로그를 확인하기 위해서는 logs 명령어를 사용한다.

$ kubectl logs $POD_NAME
Kubernetes Bootcamp App Started At: 2021-03-23T04:55:26.798Z | Running On:  kubernetes-bootcamp-765bf4c7b4-wr5g9 

Running On: kubernetes-bootcamp-765bf4c7b4-wr5g9 | Total Requests: 1 | App Uptime: 12.526 seconds | Log Time: 2021-03-23T04:55:39.324Z
profile
🎈도전 속의 여유를 즐기자🎈

0개의 댓글