Pod Object 특징 
: 1개의 pod는 내부에 여러 개의 컨테이너를 가질 수 있지만 대부분 1~2개의 컨테이너를 갖는다.
= "고래(Containers)들의 떼"

: 클러스터 내에서 사용할 수 있는 고유한 IP 주소를 할당 받지만, 이 ip는 Service에서 사용하지 않는다.
: Pod의 외부에서는 'Service'를 통해 Pod에 접근한다.(Service가 Pod의 Endpoint를 관리한다.)
: Pod 내부의 컨테이너들은 네트워크와 볼륨등을 공유하고 서로 localhost통신할 있다.

 

실습) watch 명령어 : pod 실행 상태를 2초마다 확인한다.

-  kubectl run mypod-cli --image=nginx:1.14 --port 80
-  kubectl create deployment mypod --image=nginx:1.14 --replicas=4

여러 개의 pod를 만들고 다른 창에서 watch 명령어를 통해 상태를 확인한다.

watch kubectl get pod -o wide

 동작중인 Pod 확인하기

- kubectl get pod -o wide
- kubectl get pod -o yaml
- kubectl get pod -o json

 

실습) 하나의 Pod여러개의 Container동작하는 Pod 생성

- wget http://down.cloudshell.kr/k8s/lab/pod-multicon.yaml
- kubectl apply -f pod-multicon.yaml
-
kubectl get pod -o wide
yaml 파일을 확인해보니 두 개의 컨테이너를 포함한다.
 

centos container를 동작시켜서 local로 curl을 실행한다.  웹 서버가 없지만, 잘 동작한다.

그 이유는, 같은 pod에 위치한 또 다른 컨테이너인 nginx container와 IP(네트워크)를 공유하기 때문이다.

 

nginx container에서 로그를 확인한 결과, 127.0.0.1 즉, localhost 자기 자신에서 curl 명령어를 실행한 것으로 나온다.


Pod Life Cycle 단계


PodLife CyclePod생성에서 삭제까지의 과정을 말한다

Pending Running Succeeded/Failed Unknown

Pod생명주기를 구체적으로 보기 위해서 describestatustype참고하면 된다

- kubectl get pod -o wide --watch : 실시간 생명 주기 확인
 

Troubleshooting

Pod생성하는데 실패하였다면 어느 단계에서 문제가 있었는지 필요가 있다

이럴 kubectl describe pod pod_name실행한다

 

'Study > Cloud' 카테고리의 다른 글

Kubernetes - Controller  (0) 2022.07.22
Kubernetes - Service  (0) 2022.07.22
Kubernetes - Namespace  (0) 2022.07.21
Kubernetes - yaml  (0) 2022.07.21
Kubernetes - Deployment & Service  (0) 2022.07.20

+ Recent posts