Pods

Yu Sang Min·2025년 5월 19일

CKA

목록 보기
8/110
post-thumbnail

📌 Pods

✅ 전제사항
1. Docker Image
2. Kubernetes Cluster

  • Docker Image 를 Docker hub pull 할 수있는 런타임과 클러스터가 구성되어 있어야 함
  • 싱글 노드 든 멀티 노드든 셋업이 되어있어야함

🏁 최종 목표

컨테이너 형태로 노드로 구성된 Cluster에 응용 프로그램을 배포하는 것

  • 노드에 직접 컨테이너를 배포하지 않음
  • 컨테이너는 쿠버네티스라 불리는 캡슐 형태로 포장됨
  • Pod: 앱의 단일 인스턴스이며 K8S가 만들 수 있는 가장 작은 단위

❓액세스하는 사용자 수가 늘어 많은 인스턴스가 필요하다면?

  • 같은 Pod 내에서 인스턴스를 늘리는게 아닌 완전히 새로운 Pod를 생성함
  • 웹 응용 프로그램 인스턴스 2개가 쿠버네티스 시스템 또는 노드에서 분리되어 실행된다!
  • 더 많은 사용자가 액세스해 노드의 용량을 초과하면 클러스터의 새 노드에 추가 Pod를 배포
  • 보통 Pod는 앱을 실행하는 컨테이너와 1:1 관계를 맺음

💡Multi-Container Pods

  • 한 Pod에 다중 컨테이너가 들어가기도 함
  • 하지만 보통 같은 종류의 컨테이너가 여러개가 들어가지 않음
  • 응용 프로그램 규모를 늘릴 생각이면 Pod를 추가로 만든다
  • 하지만 응용 프로그램의 도우미 컨테이너 (로깅, 업로드 파일처리 등)가 같은 Pod안에 있기를 원함
  • 이때 컨테이너 두개를 같은 Pod안에 둘 수있음
  • 같은 Pod안에 있는 컨테이너는 직접 통신이 가능함 (로컬 호스트로서 같은 네트워크 공간 공유)
  • 같은 저장소 공간도 쉽게 공유함

⌨️ kubectl

$ kubectl run nginx
  • 이 명령이 실제로 하는 일은 Pod를 생성해 Docker Container를 배포함
  • Pod를 자동으로 생성해 nginx Docker Image의 인스턴스를 배포하는데 얻는 이미지는
    --image 파라미터를 사용해 명시하고 Docker Hub에서 내려받는다
$ kubectl run nginx --image nginx
  • Hub나 조직 내 개인 저장소에서 이미지를 끌어오도록 할 수 있다
$ kubectl get pods
  • 현재 외부 사용자에게 웹 서버 액세스를 제공하지 못한다
  • 하지만 노드에서 내적으로 액세스는 가능한 상태
profile
React, Node.js, AWS, Git, Github, Github Action, Docker, K8S

0개의 댓글