파드(POD)란 무엇인가?
파드는 하나 또는 그 이상의 애플리케이션 컨테이너 (도커 또는 rkt와 같은)들의 그룹을 나타내는 쿠버네티스의 추상적 개념으로 일부는 컨테이너에 대한 자원을 공유한다. 그 자원은 다음을 포함한다:
- 볼륨과 같은, 공유 스토리지
- 클러스터 IP 주소와 같은, 네트워킹
- 컨테이너 이미지 버전 또는 사용할 특정 포트와 같이, 각 컨테이너가 동작하는 방식에 대한 정보
만약 컨테이너들이 밀접하고 결합되어 있고 디스크와 같은 자원을 공유해야 한다면 오직 하나의 단일 파드에 함께 스케쥴되어져야 한다.
노드(Node)란 무엇인가?
노드는 쿠버네티스에서 워커 머신을 말하며 클러스터에 따라 가상 또는 물리 머신일 수 있다. 파드는 언제나 노드 상에서 동작한다.
- 각 노드는 마스터에 의해 관리된다.
- 하나의 노드는 여러 개의 파드를 가질 수 있고,
- 쿠버네티스 마스터는 클러스터 내 노드를 통해서 파드에 대한 스케쥴링을 자동으로 처리한다.
모든 쿠버네티스 노드는 최소한 다음과 같이 동작한다.
- Kubelet은, 쿠버네티스 마스터와 노드 간 통신을 책임지는 프로세스이며, 하나의 머신 상에서 동작하는 파드와 컨테이너를 관리한
- (도커, rkt)와 같은 컨테이너 런타임은 레지스트리에서 컨테이너 이미지를 가져와 묶여 있는 것을 풀고 애플리케이션을 동작시키는 책임을 맡는다.
Kubectl로 자원관리하기
- kubectl get - 자원을 나열한다
- kubectl describe - 자원에 대해 상세한 정보를 보여준다.
- kubectl logs - 파드 내 컨테이너의 로그들을 출력한다
- kubectl exec - 파드 내 컨테이너에 대한 명령을 실행한다.
실습
List Pods
kubectl get pods
Describe Pods
kubectl describe pods
Find the Pod Name
export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
echo Name of the Pod: $POD_NAME
// Curl Version
curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/
Show Pod Log
kubectl logs $POD_NAME
Show Environment Variables
kubectl exec $POD_NAME env
Start a Bash Session in the Pod's Container
kubectl exec -ti $POD_NAME bash
참고 : https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/explore/explore-intro/
'Infra > Kubernetes' 카테고리의 다른 글
2. 쿠버네티스로 컨테이너 실행하기 (0) | 2020.06.04 |
---|---|
1. 쿠버네티스 관련 설정 및 설치 (0) | 2020.06.03 |
3. Kubectl을 사용해서 디플로이먼트 생성하기 (0) | 2020.05.24 |
2. Minikube를 사용해서 클러스터 생성하기 (0) | 2020.05.21 |
1. 쿠버네티스란? (0) | 2020.05.21 |