[Kubernetes] Kubernetes Architecture(3)[쿠버네티스 리소스 : 워크로드 오브젝트]
DevOps/Kubernetes

[Kubernetes] Kubernetes Architecture(3)[쿠버네티스 리소스 : 워크로드 오브젝트]

목차

- 쿠버네티스 리소스

  - 기본 명령어 실습

  - 워크로드 오브젝트

 


쿠버네티스 리소스

 

- POD : (고래 떼를 일컬음, 도커의 고래에서 유래) 하나 이상의 컨테이너로 구성

  - 스케일링의 단위, 어플리케이션에 친숙(환경변수 / 정상 여부 상태 검사 정의 등이 용이)

- 1개 파드에 2개 이상의 각각 다른 이미지 가진 컨테이너가 가능함

- 파드 리소스는 노드 IP와 별개로 파드 만의 고유한 IP를 할당받으며 파드 내의 컨테이너들은 IP를 공유함

- 파드 내의 컨테이너들은 동일한 볼륨과 연결이 가능

- 파드는 배포의 최소 단위이며 특정 네임스페이스에 실행됨

 

 

기본 명령어 실습

 

kubectl run test 명령어를 입력하게 되면

image를 set 하라고 합니다.

 

kubectl run test --image=nginx

이렇게 입력해주면 image기반으로 pod가 생성됩니다.

 

kubectl get pod test

생성된 pod를 가져옵니다.

 

 

naming한 이름을 베이스로 yaml파일만 생성되는 명령어입니다.

kubectl run test --image=nginx --dry-run=client -o yaml > 1.yaml

yaml 파일을 pod으로 구동

kubectl apply -f 1.yaml

 

kubectl get pod로 확인

 


- POD 명령어

kubectl get pod -o wide

-o wide 옵션을 추가해서 명령어를 입력하면

지금 pod가 할당된 NODE도 확인할 수 있습니다. 

 

kubectl describe pod test

현재 pod의 상태를 알 수 있는 명령어입니다.

 

kubectl logs test

현재 pod에 대해서 어떤 logs들이 있는지 알려줍니다.

 

kubectl exec -it test -- /bin/sh

하위 호완을 보장하면서 bash 셀로 접근합니다.

 


워크로드 오브젝트

 

- POD는 1개의 IP만 가짐 (CNI 플러그인이 할당)

  (참고) Multus를 활용 시 POD에 2개 네트워크도 연결 가능

 

- 2개 인터페이스 활용 사례

그림출처 : https://medium.com/@nitinbedazzled/introduction-and-setting-up-multus-34ece7ba780b

 

- 컨테이너 네트워크 인터페이스(CNI)

  네트워크로 연결될 파드는 동일 노드에, 다른 노드에 있을 수도 있음. CNI의 역할은 단순히 파드 간 연결을 용이하게 만드는 것

- 컨테이너 런타임(예: 도커)은 CNI 플러그인 실행파일(예: 칼리코)을 호출하여 컨테이너의 네트워킹 네임 스페이스에 인터페이스를 추가/ 제거

 

그림 출처 : https://www.docker.com/blog/networking-in-docker-enterprise-edition-2-0/

 

 


Reference

https://classlion.net/class/detail/21

 

도커/쿠버네티스 온라인 부트캠프 with 카카오엔터프라이즈

도커/쿠버네티스 온라인 부트캠프 with 카카오엔터프라이즈

www.classlion.net

 

https://www.docker.com/blog/networking-in-docker-enterprise-edition-2-0/

 

Scalable, Flexible Networking Included in Docker Enterprise Edition 2.0 - Docker Blog

Learn from Docker experts to simplify and advance your app development and management with Docker. Stay up to date on Docker events and new version announcements!

www.docker.com